What advantages and disadvantages does Ethereum have over Bitcoin? What can you do with Ethereum that you simply cannot with Bitcoin? What price do you pay for these additional functionalities?
1 Answer
I'll answer the middle question from the White Paper. Bitcoin can allow simple scripting and a weak version of smart contracts. The scripting that you can do has these limitations (quoting from the white paper, where UTXO means "unspent transaction outputs")
Lack of Turing-completeness - that is to say, while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything. The main category that is missing is loops. This is done to avoid infinite loops during transaction verification; theoretically it is a surmountable obstacle for script programmers, since any loop can be simulated by simply repeating the underlying code many times with an if statement, but it does lead to scripts that are very space-inefficient. For example, implementing an alternative elliptic curve signature algorithm would likely require 256 repeated multiplication rounds all individually included in the code.
Value-blindness - there is no way for a UTXO script to provide fine-grained control over the amount that can be withdrawn. For example, one powerful use case of an oracle contract would be a hedging contract, where A and B put in $1000 worth of BTC and after 30 days the script sends $1000 worth of BTC to A and the rest to B. This would require an oracle to determine the value of 1 BTC in USD, but even then it is a massive improvement in terms of trust and infrastructure requirement over the fully centralized solutions that are available now. However, because UTXO are all-or-nothing, the only way to achieve this is through the very inefficient hack of having many UTXO of varying denominations (eg. one UTXO of 2k for every k up to 30) and having O pick which UTXO to send to A and which to B.
Lack of state - UTXO can either be spent or unspent; there is no opportunity for multi-stage contracts or scripts which keep any other internal state beyond that. This makes it hard to make multi-stage options contracts, decentralized exchange offers or two-stage cryptographic commitment protocols (necessary for secure computational bounties). It also means that UTXO can only be used to build simple, one-off contracts and not more complex "stateful" contracts such as decentralized organizations, and makes meta-protocols difficult to implement. Binary state combined with value-blindness also mean that another important application, withdrawal limits, is impossible.
Blockchain-blindness - UTXO are blind to blockchain data such as the nonce, the timestamp and previous block hash. This severely limits applications in gambling, and several other categories, by depriving the scripting language of a potentially valuable source of randomness.
Ethereum is designed for contracts and in fact implements a Turing-complete virtual machine on the blockchain.
-
2Could you please elaborate on that? What does it mean to be "a Turing-complete virtual machine on the blockchain"? What does "Value Blindness" mean? What does "Blockchain blindness" mean? Where does the state lack (I mean, obviously the system as a whole has the state which bitcoin belongs to whom, doesn't it)? Oct 28, 2015 at 6:54
-
I've quoted from the white paper. Is there anything still unclear? Oct 28, 2015 at 10:44
-
2This is helpful, however I was hoping for a more abstract (hopefully balanced) assessment of the two. This post only answers part of my question and is somewhat biased due to mostly quoting one of the white papers. E.g. it would be interesting to read an assessment whether Turing Completeness is an advantage when including the security implications.– Murch ♦Nov 3, 2015 at 23:36
-
Actually there are primitive loops. They achieve safety by the inefficiency of the code size: files.acrobat.com/a/preview/…– MCCCSJul 12, 2018 at 8:46