Bitcoin is the most popular and valuable cryptocurrency in the world while Ethereum has the most applications based on the d-apps and tokens built under its technology. Understanding how either of these currencies works is fundamental to comprehend the broad cryptocurrency concept.
At the center of any cryptocurrency is the model of transactions and these two behemoths built generally for different purposes have different transaction models. Interestingly, each model can be related to existing financial models which makes it easier for anybody to understand the complicated computing behind the scenes enabling these blockchain technologies.
Bitcoin’s UTXO Model
UTXO which stands for Unspent Transaction Output is a model where ‘unspent’ bitcoin amounts that had been sent to a user (transacted) are kept in a fully synchronized node.
On the bitcoin blockchain, each transaction spends output from a prior transaction and generates a new output that can be spent in future transactions. If the output of a certain transaction is not spent, it is considered an unspent token.
Essentially, an owner does not directly own the tokens, but rather owns the output of a specific number of tokens that can then be signed over as an input to a new owner who then controls the new outputs.
On the blockchain, they appear like a collection of bitcoin amounts on different addresses and any owner must have the requisite address, digital signature, and digital key necessary to prove ownership over the new output.
From this explanation, the simple job of a Bitcoin wallet is to deduce which addresses a user has the keys to and thus give him/her permissions to conduct transactions.
Three basic rules apply in the UTXO Model
- Every transaction must prove that the sum of its inputs is greater than the sum of its outputs.
- Every referenced input must be valid and unspent.
- The transaction must have a signature matching the owner of the input for every input.
UTXO In layman’s language
The UTXO system is like a digital recreation of the cash economy which involves actual notes or coins and wallets. Let’s put this into perspective using two subjects Fatuma and Odhiambo
|Bitcoin Transaction||Cash Transaction|
|Fatuma has 10 BTC; the system recognizes that there is 10 BTC signed to her and they have not been spent. Meanwhile, Odhiambo has 5 BTC; recognized and unspent||Fatuma has Ksh 1000 note in her wallet Odhiambo has Ksh 500 note in his wallet|
|Fatuma sends 2 BTC to Odhiambo: Fatuma’s wallet opens a UTXO using the entire 10 BTC as the input to the transaction. This transaction sends 2 BTC to Odhiambo and returns 8 BTC to Fatuma in the form of a new UTXO to a newly-created address||Fatuma gives Odhiambo the Ksh 1000 note. Odhiambo takes Ksh 200 and returns Ksh 800 to Fatuma.|
|Odhiambo’s wallet now keeps track of 2 UTXOs; the original 5 BTC and the new 2 BTC sent by Fatuma. His balance now reads 7 BTC.||Odhiambo’s wallet now has two notes; the original Ksh 500 note and the newly acquired Ksh 200 note which brings the total balance to Ksh 700|
This is just a simple illustration of how the UTXO model functions. Take note that in the bitcoin blockchain, you don’t actually own the coins, instead you own transaction details that assign coins to you.
Ethereum’s Account Balance Model
Ethereum is different from bitcoin fundamentally because it is mostly an open-source blockchain platform for decentralized applications while the latter is majorly a cryptocurrency. Ethereum was therefore built to perform more functions above enabling the transfer of value through the internet.
Consequently, certain concepts applied by developers of its predecessor (bitcoin) were bound to be discarded and more applicable concepts used instead. One of these concepts is the UTXO model which was replaced by the account balance model of transaction.
This simpler and space-saving model is critical in enabling the Ethereum ecosystem which uses smart contracts to perform complex transactions. Other advantages of the model include familiarity and fungibility (equal value between assets).
Ethereum’s Account Balance model stores information about the entire balance associated with a user’s account and keeps track of the balance of each as a global state. Every account in Ethereum has its balance, storage and code-space for calling other accounts or addresses
For a transaction to occur, a user has to prove ownership over the account and the account’s balance has to be enough to support the transaction and transaction fee. Once these conditions are met, the sending account is debited and the receiving account is credited
Additionally, if the receiving account has code, it runs and makes changes such as to the internal storage or creates additional messages to other accounts that may result in further debit and credit transactions.
Account balance model in layman’s language
This model is based on the banking system that utilizes accounts that contain money in form of numbers and transactions are conducted based on proof of ownership of accounts (by entering bank pins or passwords) and whether the account balance is enough to perform the transactions.
Again let’s use our two subjects once again
|Ethereum Transaction||Bank Transaction|
|Odhiambo has 100 ETH on his Ethereum wallet, while Fatuma has 20 ETH on hers. The system recognizes that both Odhiambo and Fatuma own their respective accounts||Odhiambo has Ksh 50,000 in his bank account while Fatuma has Ksh 20,000 in hers.|
|Odhiambo sends Fatuma 30 ETH; The system first confirms that Odhiambo owns the account used to request the transfer, then checks whether it contains more Ethers than 30 ETH plus a transaction fee. If both conditions are true, it debits 30 ETH plus (transaction fee) from Odhiambo’s account and credits Fatuma’s account with 30 ETH||Odhiambo requests the bank to send Ksh 10,000. The bank first asks Odhiambo to input his bank pin to initiate the transaction. If the pin is correct, the bank then checks if the account has enough money to enable the transaction. If it does, it debits the account with Ksh 10,000 and a small transaction fee and credits Fatuma’s account with Ksh 10,000|
|Odhiambo’s account now reads a balance between 69 ETH and 70 ETH (due to the transaction cost) while Fatuma’s account reads 50 ETH||Odhiambo’s account now reads a little less than Ksh 40,000 while Fatuma’s account reads Ksh 30,000|
As illustrated, Ethereum’s account balance is just a reflection of the banking system. However, the additional functionalities enabled by the Ethereum blockchain such as smart contracts enable functionalities beyond just debiting and crediting accounts.
Despite using different concepts, both models achieve the same goal of keeping track of account balances in a consensus system.
Advantages of UTXO
- It is possible to process multiple transactions outputs at the same time hence enabling parallel transactions an provides a scalable infrastructure
- High level of privacy since users acquire new addresses for each transaction
Advantages of Account Balance Model
- Each transaction needs to make only one reference and one signature to produce on output, less space is consumed
- Ease and simplicity in coding
- Since there exists no blockchain-level concept of the source of a specific set of coins, blacklisting coins used for illicit purposes is impractical. Hence each coin is as valuable as the next; fungibility.
On the other hand, each model contains its shortcomings. While UTXO model has certain restrictions that make it hard to build applications on the blockchain and incompatibility with smart contracts, account balance model faces scalability issues and is exposed to double spending unless an incremental nonce is implemented to counteract such attacks.