Hi Jeremy, > This post covers some high-level smart contract concepts that different opcodes or proposals could have (or not). https://rubin.io/bitcoin/2021/12/04/advent-7/
Interesting post. I love the concept of recursion in programming. There is one Indian movie called 'Karthik calling Karthik' which is one of the ways I remember this concept. > Recursive is pretty much just a fancy way of saying “loops”. This is > sometimesalso called “Turing Complete”. Recently asked one dumb question on Stakexchange after reading a comment on reddit, maybe you can add anything new in this: https://bitcoin.stackexchange.com/questions/111337/loops-in-bitcoin-scripting > Here, the contract terminates after one canceled request by moving the > coinelsewhere. It’s possible to emulate recursive behavior a limited amount > by“unrolling” a loop. I think this is what I did in the above link where for loop was replaced with if-else statements. > However, unrolling has it’s limits. When choices(action A or B) are > introduced, unrolling can be less effective since you haveand exponential > blowup (that means unrolling even like 32 steps might be toomany). However, > there are some tricks that can be employed by a clever andcareful programmer > to reduce this complexity through, for example, memoization. Agree with limits and possibility of optimization. > The key difference being that in the fully enumerated case we must know the > exact specifics of the contract and how it will execute, and in the open > ended contract case there are bits and pieces we can dynamically specify. If > Alice is paid 1 BTC by December 25th, 2021 Midnight, then transfer 100 > tokensto one of Bob’s Address B1, B2, or B3 at Bob’s discretion. Interesting > Signing the transaction fee rate as a function of locktime TIL -- Prayank A3B1 E430 2298 178F
_______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev