Blockchain is a stateful system.
The purpose of the blockchain is to record past events and user interactions.
With each new block, the system changes the state that occurs according to the state transition logic defined in the protocol.
The state storage method of the blockchain can be divided into two main types: the UTXO model (including the extended UTXO model), which is performed by Bitcoin and Cardano, and the account model, which is the method performed by Ethereum.
What the UTXO or account model has in common is that user interactions (mostly referring to transactions) are broadcast to the network, a set of transactions (transactions) is permanently recorded with each new block, and the balances of the parties to the transaction are transferred to the new state by the system. It will be updated when it becomes available.
In the UTXO model, if you look at the transactions recorded on the blockchain, each transaction has its transaction input and output, and the overall graph of the transaction output that has been used or not yet used represents the global state. Here, among the global states of the entire graph, all unused transaction outputs will represent the state. In other words, if we collect the transaction output that has not yet been used in the ledger recorded in the blockchain, it will be in the state of the UTXO set.
On the other hand, in the account model used by Ethereum, only the current set of accounts and their balances represent the global state. Ethereum’s transaction is what provides the cause of changing this global state, and the transaction itself is simple compared to Cardano. These Ethereum transactions are information recorded on the Ethereum blockchain. However, the global state that shows the aggregate of all accounts in Ethereum is constantly being updated. Shall we store this global state in the blockchain? Ethereum changed the blockchain operation method from the existing UTXO model to the account model to be advantageous for smart contract processing. On the other hand, the problem faced by Ethereum is how to record this vast and updated set of all accounts on the blockchain. No matter how much you read Ethereum’s white paper, it’s not clear what technology handles this part. The Ethereum blockchain is advantageous for smart contract processing because only the changed part of the global account status is reflected in the added block of the blockchain, and the unchanged global account status is expressed only in points. It claims to be able to maintain the blockchain while using the account model. This part seems to have a top secret of Ethereum development that even outside experts of Ethereum do not know well. It seems that this technique has the potential to be made by trickery. The reason seems to be that 19-year-old Vitaric has put all his efforts into improving the operational efficiency of smart contracts using this account model. If so, it is speculated that decentralization may have been sacrificed to some extent. Is Ethereum recording global account status on a decentralized blockchain and is it constantly being updated? It seems that only Cardano’s Charles Hoskinson can reveal this.
Each transaction in the UTXO model can switch the system (UTXO set) to a new state, but the state transition is that whenever a new block is created, the node downloads the latest block and based on the unused output information of the transaction added to this block. Attempt to transition UTXO state. Therefore, in the end, since the UTXO set is recorded as a storage document of transactions in the blockchain, each node in the distributed environment owns and updates the UTXO set.
However, the blockchain in the UTXO model does not create “accounts” to maintain balances, and there is no final balance stored in the ledger.
The blockchain only stores individual transactions (PubKey and signature scripts exist on the UTXO model blockchain), but what can users do to check their balance? Whenever a user opens a wallet, the wallet automatically scans the blockchain’s transaction output for all transactions to the user’s address and checks the balance.
Transactions in the account model are also batched into blocks at regular time intervals, and with each new block, the global account state transitions to a new state. In the account model, all balances are tracked in a global state.
The state corresponds to a database of all accounts, private keys, and contract codes that are controlled along with the current balances of various assets in the network.
Transactions in the account model have only a sender, a recipient, a transfer amount, and a single digital signature.
Whenever a new block is created, transactions during the slot time are bundled and mounted on the block.
PubKey and signature scripts for verification do not exist on account-based blockchains. So the UTXO model is called the validation model and the account model is called the computational model.
A user generates a transaction that sends funds for the recipient to be able to process the deposit means that they submit a transaction that guarantees the state transition result (corresponding UTXO) defined by this transaction output.
The node that receives this submitted transaction checks the state information it owns (UTXO set) and confirms that the input to be consumed (output of the previous transaction to be brought) has not been used and that the signature meets the consumption conditions of the person who submitted the transaction. The electronic signature will be verified and verified.
Users submit transactions that instruct the node what a state transition should look like. The node that received this transaction checks the global account status information (balance status) and checks whether the sender’s balance is greater than or equal to the amount to be transferred.
The most suspicious part of Ethereum is the concern that Ethereum’s global account state is not stored on the blockchain but may be computed and stored locally on the node. If this concern is true, there is no problem with the overall operation of Ethereum. However, if this is true, it will be the biggest weakness of Ethereum using the account model in terms of the completeness of blockchain technology because it is so different from the UTXO model. If so, Ethereum deserves recognition for pioneering a new application field called smart contracts, but it is difficult to see it as a cutting-edge technology that leads blockchain technology.
Of course, the Ethereum blockchain stores instructions in the blockchain, called transactions, on how the system (global account state) transitions from one state to another.
In an eUTXO model like Cardano, the connection between blockchain (ledger record of transactions) and state (UTXO set) is clear. This means that the UTXO set can be derived from the blockchain. This means that all decentralized nodes always have the same UTXO set, without mistakes, and can update it neatly.
On the other hand, in an account model such as Ethereum, the transaction ledger of the blockchain and the global account state information have different roles. Of course, account status information varies depending on the transaction. However, global account state information cannot be derived from the blockchain’s transaction ledger. The question is how can Ethereum’s distributed nodes always have the same information about this global account state information? According to Ethereum’s claim, some claim that this global account status information also maintains synchronization after consensus is made on the blockchain, or it is not. Ethereum should be transparent about this issue in a clear way.