script – The Bitcoin scripting system is purposefully not Turing-complete – why?

0
59


Query is, at which degree would Turing-completeness be helpful?

If a single transaction was Turing-complete, then it will have unknowable verification time and might be used as a DoS vector on nodes that might try to confirm it.
With any single transaction having a knowable worst-case verification time, there is no drawback of a transaction’s validity being unknowable.

However what about transaction chains? The Bitcoin (BTC) community’s ScriptVM does not have the primitives wanted to hold the computation over to the subsequent transaction as a result of there is no manner for a locking script to implement constraints on the outputs (a sort of locking script often called “covenant”).

If the ScriptVM could be upgraded with transaction introspection opcodes (which is possible as a soft-fork), then a transaction chain would develop into Turing-complete by way of using recursive covenants. There’s been some work discussing why that is so: Self-Reproducing Cash as Common Turing Machine, A. Chepurnoy, Vasily Kharin, D. Meshkov

Be aware that nodes would not be robotically evolving the multi-TX program. Some blockchain-external agent must assemble the subsequent transaction that satisfies the covenant after which broadcast it to the community. This system may code-in a reward for this and incentivize anybody to assemble and submit the subsequent transaction, or exterior brokers may do it free of charge. This system would halt when it runs out of cash for the charges/incentives, however then once more, different exterior brokers may give it more cash to proceed evolving.

Introspection opcodes had been proposed (Jan ’21) and activated (Could ’22) on Bitcoin Money (BCH), a code and blockchain fork of the primary Bitcoin blockchain (blocks 0 to 478558 are the identical on each blockchains).

Such opcodes had been additionally proposed (Jun ’21) as Tapscript opcodes for the Components experimental Bitcoin sidechain.

LEAVE A REPLY

Please enter your comment!
Please enter your name here