user120272: I want to know if BTC script will have loops in it in the future?

user114781: Bitcoin itself will never itself offer any kind of Smart Contract functionality, like the Turing complete EVM. Rootstock (RSK) however, is smart contracts platform (turing complete programming) that works alongside Bitcoin to offer the same functionality. It's been in development for some time and I suspect now it will integrate with Lightning, and thus work very well. I haven't tried it out though. https://www.rsk.co/Whitepapers/RSK-White-Paper-Updated.pdf

user-1: I cannot predict the future but below are some arguments against turing completeness in Bitcoin.

More data needs to be pushed in each transaction than a non-Turing-complete language like Bitcoin's stack-based SCRIPT. Fullnodes will need a lot of resources in order to operate, since they have to process a lot of data. Only few that can afford to run datacenters will host true fullnodes.

http://www.reddit.com/r/Bitcoin/comments/lgenu9/who_controls_the_fundamentals/gmrklox?context=3

Security: A self-paying covenant would be equivalent to allowing unbounded loops in computation. Each loop step would be a transaction, and each one would "jump to the top of the loop" by requiring a self-paying covenant. Unbounded loops mean that Bitcoin would now become Turing Complete (except that you would have to pay fees for every step of a loop), which is something we actually want to avoid because doing so would increase the scope for footguns (i.e. shooting your own foot off) similar to what are basically yearly things for some altcoins.
Thus, learning that we can enable covenants using only Taproot and OP_CAT is a concern, meaning we should really really pause and consider whether we want OP_CAT to ever be reactivated.


http://www.reddit.com/r/Bitcoin/comments/l3mkdz/op_cat_and_schnorr_tricks_i/gki78uu?context=3

Once a transaction enters the mempool of a Bitcoin fullnode, the fullnode knows it does not have to re-execute the Bitcoin SCRIPT, because SCRIPT is simple enough that once it is valid, it is known to always be valid. There are no failed transactions in Bitcoin that pay fees to miners: Do we have failed transactions in bitcoin?

http://www.reddit.com/r/Bitcoin/comments/jlyk97/some_concerns_i_have_about_holding_bitcoin_long_term./gasc3bj?context=3
My opinion: Bitcoin Sidechains like Liquid and Rootstock can be used for things that are not possible using Bitcoin scripts.
Not all smart contracts use turing completeness according to a pie-chart shared in https://levelup.gitconnected.com/should-smart-contracts-be-non-turing-complete-fe304203a49e

Greg Maxwell's opinion: Difference in functionality comes from the amount of resources the smart contracts are allowed to use and IO mechanisms, and NOT from turing-completeness or not. Anyone who tells you otherwise is defrauding you in order to sell you on a scam.

user38618: Turing completeness includes the capability to run programs that might not terminate or that might terminate after a very long time. This would cause the blockchain to stall, hence it is a must to keep the number of instructions to be run predetermined (like BTC) or to be run according to a budget (like ETH).

120272: <p>I want to know if BTC script will have loops in it in the future?</p>
 114781: <p>Bitcoin itself will never itself offer any kind of Smart Contract functionality, like the Turing complete EVM. Rootstock (RSK) however, is smart contracts platform (turing complete programming) that works alongside Bitcoin to offer the same functionality. It's been in development for some time and I suspect now it will integrate with Lightning, and thus work very well. I haven't tried it out though. <a href="https://www.rsk.co/Whitepapers/RSK-White-Paper-Updated.pdf" rel="nofollow noreferrer">https://www.rsk.co/Whitepapers/RSK-White-Paper-Updated.pdf</a></p>
 -1: <p>I cannot predict the future but below are some arguments against turing completeness in Bitcoin.</p>
<ol>
<li><strong>More data needs to be pushed in each transaction</strong> than a non-Turing-complete language like Bitcoin's stack-based SCRIPT. Fullnodes will need a lot of resources in order to operate, since they have to process a lot of data. Only few that can afford to run datacenters will host true fullnodes.</li>
</ol>
<p><a href="http://www.reddit.com/r/Bitcoin/comments/lgenu9/who_controls_the_fundamentals/gmrklox?context=3" rel="noreferrer"><sup>http://www.reddit.com/r/Bitcoin/comments/lgenu9/who_controls_the_fundamentals/gmrklox?context=3</sup></a></p>
<ol start="2">
<li><p><strong>Security</strong>: A self-paying covenant would be equivalent to allowing unbounded loops in computation. Each loop step would be a transaction, and each one would &quot;jump to the top of the loop&quot; by requiring a self-paying covenant. Unbounded loops mean that Bitcoin would now become Turing Complete (except that you would have to pay fees for every step of a loop), which is something we actually want to avoid because doing so would increase the scope for footguns (i.e. shooting your own foot off) similar to what are basically yearly things for some altcoins.</p>
<p>Thus, learning that we can enable covenants using only Taproot and OP_CAT is a concern, meaning we should really really pause and consider whether we want OP_CAT to ever be reactivated.</p>
</li>
</ol>
<p><a href="http://www.reddit.com/r/Bitcoin/comments/l3mkdz/op_cat_and_schnorr_tricks_i/gki78uu?context=3" rel="noreferrer"><sup>http://www.reddit.com/r/Bitcoin/comments/l3mkdz/op_cat_and_schnorr_tricks_i/gki78uu?context=3</sup></a></p>
<ol start="3">
<li>Once a transaction enters the mempool of a Bitcoin fullnode, the fullnode knows it does not have to re-execute the Bitcoin SCRIPT, because SCRIPT is simple enough that once it is valid, it is known to always be valid. <strong>There are no failed transactions in Bitcoin that pay fees to miners</strong>: <a href="https://bitcoin.stackexchange.com/questions/101103/do-we-have-failed-transactions-in-bitcoin">Do we have failed transactions in bitcoin?</a></li>
</ol>
<p><a href="http://www.reddit.com/r/Bitcoin/comments/jlyk97/some_concerns_i_have_about_holding_bitcoin_long_term./gasc3bj?context=3" rel="noreferrer"><sup>http://www.reddit.com/r/Bitcoin/comments/jlyk97/some_concerns_i_have_about_holding_bitcoin_long_term./gasc3bj?context=3</sup></a></p>
<p>My opinion: Bitcoin Sidechains like <a href="https://medium.com/chain-accelerator/i-tested-elements-simplicity-22c3189a725c" rel="noreferrer">Liquid</a> and <a href="https://developers.rsk.co/tutorials/" rel="noreferrer">Rootstock</a> can be used for things that are not possible using Bitcoin scripts.</p>
<p>Not all smart contracts use turing completeness according to a pie-chart shared in <a href="https://levelup.gitconnected.com/should-smart-contracts-be-non-turing-complete-fe304203a49e" rel="noreferrer">https://levelup.gitconnected.com/should-smart-contracts-be-non-turing-complete-fe304203a49e</a></p>
<p><a href="https://i.stack.imgur.com/Ovfoc.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Ovfoc.png" alt="turing-complete" /></a></p>
<p>Greg Maxwell's <a href="https://i.imgur.com/8dWmqDO.png" rel="noreferrer">opinion</a>: Difference in functionality comes from the amount of resources the smart contracts are allowed to use and IO mechanisms, and NOT from turing-completeness or not. Anyone who tells you otherwise is defrauding you in order to sell you on a scam.</p>
 38618: <p>Turing completeness includes the capability to run programs that might not terminate or that might terminate after a very long time. This would cause the blockchain to stall, hence it is a must to keep the number of instructions to be run predetermined (like BTC) or to be run according to a budget (like ETH).</p>
