4 ms·
It's sad to see the "Bitcoin doesn't do smart contracts" line repeated so faithfully - even implicitly as in your question. It's rubbish. Bitcoin supports smar
by apo 9y ago
It's sad to see the "Bitcoin doesn't do smart contracts" line repeated so faithfully - even implicitly as in your question. It's rubbish.
Bitcoin supports smart contracts, and has done so since launched in 2009. Even the simplest Alice-pays-Bob transaction is actually running a smart contract written in Script, a Forth-like language custom built for Bitcoin.
Bitcoin also supports metacoin protocols that create tradeable tokens, and has done so for a long time (e.g., ColoredCoins and MasterCoin).
Only a fraction of Bitcoin's full range of features are used today. This leads me to suspect that Ethereum's much-hyped VM will turn out to be mostly unused.
And, the majority of the interesting use cases for smart contracts require extrinsic (non-blockchain) state to operate. The price per barrel of Brent. Whether it rained over a piece of farmland. Randomness. Notice of the publication of a death certificate. All of these applications rely on a trusted server (or a federated system of them) for input. And they can be corrupted or shut down by a powerful adversary. Ethereum might be able to free itself from oracles to a small degree, but the difference will be negligible for many practical purposes.
In other words, Ethereum offers little more for day-to-day use than Bitcoin does. Ethereum does, however, enjoy a massive marketing advantage.
- aoeusnth1 9y ago> And, the majority of the interesting use cases for smart contracts require extrinsic (non-blockchain) state to operate. The price per barrel of Brent. Whether it rained over a piece of farmland. Randomness. Notice of the publication of a death certificate. All of these applications rely on a trusted server (or a federated system of them) for input. And they can be corrupted or shut down by a powerful adversary. Ethereum might be able to free itself from oracles to a small degree, but the difference will be negligible for many practical purposes. Interesting point, but can't randomness be read from hash of the next block? I'm not familiar with Ethereum's VM - does it not have access to that?
- apo 9y agoInteresting point, but can't randomness be read from hash of the next block? Miners can get into the act to twiddle the next block hash. There are some ideas on this topic here: https://ethereum.stackexchange.com/questions/191/how-can-i-securely-generate-a-random-number-in-my-smart-contract https://ethereum.stackexchange.com/questions/191/how-can-i-s...
- ErikAugust 9y ago"In other words, Ethereum offers little more for day-to-day use than Bitcoin does." Except for faster transaction confirmations, and lower fees. A network with close to three times (28756 versus 11788) as many nodes behind it. If you want to look at fundamentals, Ethereum is offering more for day-to-day use than Bitcoin does.
- apo 9y agoExcept for faster transaction confirmations, and lower fees. That may well turn out to be a temporary feature. Until 2015 (its sixth year of existence), Bitcoin had negligible transaction fees. Ethereum and Bitcoin are subject to the same limitations: namely that every node requires every transaction to fully validate the chain. Both systems are also subject to the same limitations that will throttle "mass adoption:" the need to secure cryptographic material from network-based attacks.
- zeroxfe 9y agoThe difference is that Bitcoin supports a limited number of smart contract types (due to limitations in its scripting language.) To create new types, it requires changes to the Bitcoin scripting language, protocol, and runtime, followed by a coordinated soft fork. This is a pretty heavyweight process. Ethereum is effectively a generalized distributed computer -- so new types of contracts can be written, tested, and iterated on readily, without requiring a change to Ethereum itself. > Ethereum does, however, enjoy a massive marketing advantage. I really don't think that's true. I'd wager that the majority of the public that is aware of Bitcoin has no idea what Ethereum is.
- apo 9y agoBitcoin smart contracts are based on the language Script: https://en.bitcoin.it/wiki/Script https://en.bitcoin.it/wiki/Script Opcodes and values can be combined to yield a vast array of possible contracts, just like any programming language. Templates are not used, except to activate the full language capabilities (i.e., P2SH). Ethereum is effectively a generalized distributed computer -- so new types of contracts can be written, tested, and iterated on readily, without requiring a change to Ethereum itself. Bitcoin is not a generalized distributed computer, but it does allow new types of contracts to be written, tested, and iterated on readily, without requiring a change to Bitcoin itself. I really don't think that's true. I'd wager that the majority of the public that is aware of Bitcoin has no idea what Ethereum is. Nevertheless, Ethereum - through the Ethereum Foundation and is sizable war chest, has a far more concerted marketing effort.
- vadimberman 9y ago> Opcodes and values can be combined to yield a vast array of possible contracts, just like any programming language. It's not Turing-complete and doesn't even have loops (or goto to provide an alternative). Definitely not "like any programming language", you could as well try to use Brainfuck (which is, BTW, Turing-complete).