Pages:
Author

Topic: The Bitcoin scripting system is purposefully not Turing-complete - why? - page 4. (Read 3455 times)

donator
Activity: 1218
Merit: 1079
Gerald Davis
I believe Ethereum is backing off from that claim and it will not be Turing complete.   Generally the higher the complexity of the environment the higher the chance of undetected flaws, bugs, and exploits.   The idea that one would want a complex Turing complete (or quasi turing complete) scripting language, combined with the overhead of a decentralized network, to process the transfer of money seems a very dubious proposition.   I want my financial processing engine to be as lightweight and simple as possible.  Higher level functionality can be built on top of the network.
full member
Activity: 173
Merit: 101
Thanks. But I guess there must be tools that convert high level Turing-complete languages to low-level BTCscript code. Right?

One of the main selling point of Ethereum, as I understand, is that their Turing-complete programmable system permits writing complex contracts.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Can somebody explain to me why the Bitcoin scripting system is purposefully not Turing-complete? To make malicious programs difficult to develop (I guess)? Or because it was difficult to make it Turing-complete?

Bitcoin uses a scripting system for transactions. Forth-like, Script is simple, stack-based, and processed from left to right. It is purposefully not Turing-complete, with no loops. (https://en.bitcoin.it/wiki/Script)

Attack prevention.  With loops and recursion it becomes more difficult to limit the resources required by a script.  It would be possible to create scripts which crash nodes, scripts which take hours to validate, scripts which consume the host memory.   Any looped code can be unrolled.  The execution time of unrolled code is easy to control by limiting the length of the script.
full member
Activity: 173
Merit: 101
Can somebody explain to me why the Bitcoin scripting system is purposefully not Turing-complete? To make malicious programs difficult to develop (I guess)? Or because it was difficult to make it Turing-complete?

Bitcoin uses a scripting system for transactions. Forth-like, Script is simple, stack-based, and processed from left to right. It is purposefully not Turing-complete, with no loops. (https://en.bitcoin.it/wiki/Script)
Pages:
Jump to: