8 ms·
One limitation of Bitcoin script is that it's not turing complete. But there are sidechains like rsk with defi apps like sovryn that bring smart contracts and d
by rawtxapp 6y ago
One limitation of Bitcoin script is that it's not turing complete. But there are sidechains like rsk with defi apps like sovryn that bring smart contracts and defi to BTC.
- mrkramer 6y agoI'm not an expert in Computer Theory but other people proved Bitcoin and Bitcoin Script are Turing Complete: [1] https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3160279 https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3160279 [2] https://coingeek.com/bitcoin-script-is-turing-complete-scrypts-game-of-life-is-proof/ https://coingeek.com/bitcoin-script-is-turing-complete-scryp... [3] https://www.youtube.com/watch?v=M6j-11H2O7c https://www.youtube.com/watch?v=M6j-11H2O7c
- tom_mellior 6y agoThese are deliberate redefinitions of the term "Turing complete". The reasonable interpretation is that evaluating a single block can involve an arbitrary computation (if given enough gas). Ethereum has this property, Bitcoin doesn't. These redefinitions say that you can take a few computation steps per Bitcoin block and save their state such that a later block can take a few more steps, so over time, very slowly, spread out over many blocks, Bitcoin can also implement an arbitrary computation. This is theoretically cute but otherwise useless.
- antimatter15 6y agoEthereum blocks have a gas limit so it wouldn't be Turing complete under your definition either.
- jude- 6y agoThe EVM is TC in that you cannot determine if a snippet of code will halt, given sufficient gas. EVM code is undecidable, whereas Bitcoin script is not.
- tom_mellior 6y agoThe universe is finite so no Turing complete computing devices can ever exist. Ethereum has a Turing complete language that is only limited in practice by external constraints like the gas limit. Bitcoin doesn't have such a language.
- tenuousemphasis 6y agoCraig Wright is a moron and a fraud.
- SkyMarshal 6y agoBitcoin is deliberately and wisely not Turing complete. That gives a lot of power and mischief-making ability to anonymous entities in an adversarial environment. It's partly why Bitcoin is 5x Ethereum's market cap, despite technically being less capable. It's less capable of losing money, of DAO attacks, or other serious failures too.
- mminer237 6y agoBitcoin is five times the price of Etherium because it was the first cryptocurrency and everyone knows its name. It has nothing to do with the technical abilities of either.
- chrisco255 6y agoI generally agree with this. But Ethereum is "less finished" than Bitcoin. I feel like this situation might be different in a year or two once ETH2 is fully rolled out. Right now, ETH is a bit more risky. There's no doubt that more economic activity is happening on the ETH chain, though
- SkyMarshal 6y agoIt'll take longer than a year or two for something as complex as ETH2 to mature to a point where it can be considered as finished as Bitcoin.
- garmaine 6y agoThat's not a limitation. There is absolutely no reason to have a Turing-complete language in bitcoin. This can even be proved from first principles: bitcoin, and blockchains generally exist to validate the execution of contracts which have already occurred in meat-space. Basically you and I agree to conditions under which some money is transferred from me to you and vice-versa, which is the actual contract, then write a program (the "smart" contract) which validates that those rules were faithfully executed. It can be shown though that any Turing-complete contract rules can be validated using a non-Turing-complete language like Bitcoin script (ignoring runtime limits). The block chain doesn't need to run every contract, it just needs to validate that every contract ran correctly. A different problem, for which Turing completeness is not required. Edit: For the down-voters, show me a Turing-complete contract that can't have its execution trace validated in a non-Turing complete language. In the 10 years I've been in this space I've yet to encounter a single one.
- keymone 6y agoTuring completeness is an anti feature in financial system like bitcoin. And pretty much zero contracts currently deployed to ethereum require Turing completeness. It’s just a buzzword to sell you this gigantic pre-mine scam.
- everfree 6y agoI can't think of a single Ethereum dapp that could be implemented without an expressive scripting language.
- keymone 6y agoWell, you’re misguided. It’s not the language, it’s platform features like kv store attached to blockchain that make these dapps possible to implement. And none of them require Turing completeness.
- everfree 6y agoThey may not require turing completeness in the strictest sense, but they do require branching logic and loops.
- keymone 6y agoBranching and looping are constructs that you can have in non-Turing complete language with some limitations that don’t matter in practice for the purpose of ethereum or bitcoin scripts.
- riffraff 6y agoa non-turing complete language can still be useful and "expressive" in a loose sense. SPARK[0] isn't Turing complete but it's still pretty useful, and likely a better language than Solidity. [0] https://en.wikipedia.org/wiki/SPARK_(programming_language) https://en.wikipedia.org/wiki/SPARK_(programming_language)