Ethereum and Transactions as Balances and not UTXO
Bitcoin and Ethereum are both open blockchain systems. The similarities between them are numerous.
Ethereum is a direct descendant of Bitcoin. Ethereum was born out of frustration with Bitcoin, primarily stemming from its limited scripting language. This limitation in protocol can lead to convoluted results during the creation of higher level applications.
Anyone can use either system; all a user needs is token access. Both networks run in the public domain and rely on open source software. However, there are key differences between Ethereum and Bitcoin, mainly with the system architecture and approach. Ethereum is not simply a clone of Bitcoin. It is a genuine and innovative evolution.
This piece acts as a primer on Ethereum’s balance-based approach, particularly in relation to Bitcoin’s UTXO architecture. In engineering, there are always trade-offs. There is no right or wrong approach. Technique is purely individual. It is a network’s means of expression and experimentation.
Bitcoin and UTXO
With Bitcoin, there is no common storage of user balances. Instead, there are objects called Unspent Transaction Outputs (UTXO). It is easiest to think of UTXOs each as a ‘coin’. Your Bitcoin wallet balance is the sum of all your UTXOs.
To send ‘coins’ to another user, your wallet will sum a greater amount than the transaction and send it. Simultaneously, it will create a new return address for the ‘change’ you are owed. This is returned to the change address automatically to complete the transaction.
The UTXO model of Bitcoin is stateless. This presents unique challenges for creating and executing decentralized applications.
Ethereum, instead, uses an architecture relying on global state storage of accounts, balances, code, and storage. The balances of user accounts are kept as a global state.
It’s a more intuitive approach for a lay user. You have an account, and it has a balance. Simply, a Tx is valid if your balance has sufficient funds. With a transaction, there is a debit and corresponding credit to the state. In this regard, it is analogous to a bank account without overdrafts.
The principle is the same for smart contract execution. Sending an amount to an account that has corresponding code will cause the code to execute. There is a rich variety of options with what the code can do once it runs.
Understanding the Benefits
Primarily, the Ethereum developers have gone with the balance model because it provides certain desirable benefits for making decentralized applications.
Ethereum was always envisaged as a smart contracting platform first and foremost. The underlying token is a means to that end.
One of the largest benefits is greater simplicity. For a developer, it is easier to reference and understand what is happening with more complicated scripts, a situation that can easily occur with a complete scripting language like Ethereum.
In addition to its simplicity, Ethereum is more efficient than Bitcoin. There is only one output for any given transaction.
Simplicity and efficiency are the primary benefits that relate to Ethereum’s main goal.
The Best of Both World’s
The Serenity release of Ethereum plans on bringing together the best of both worlds. The idea is that individual users will decide which method they wish to use for their account. This is the final release for the Ethereum network, which is still in the proof of concept stage.