An account is a structure used both to identify users and smart contracts and to verify the validity of transactions made on the Ethereum blockchain.
Each account, specifically, is associated with a wallet address and a state containing a set of information on the balance held by the user.
Depending on how they are managed, two types of accounts on the Ethereum blockchain can be distinguished:
- Externally Owned Account (EOA): controlled by the users themselves via the private keys associated with their wallet;
- Contract Accounts: managed through specific smart contracts.
When a transaction is initiated on a blockchain based on the account model, the system verifies the amount of ETH or tokens held by the user who initiated the transaction, ensuring that the wallet contains an equal or greater number of ETH than the amount to be sent.
The account model can be compared, very simplistically, to a bank checking account.
To explain this concept better, let’s take a practical example.
Andrea has 5 ETH within her wallet and decides to send Barbara 1 ETH. At the moment the transaction is initiated, the Ethereum network will check the available balance within Andrea’s wallet. Since in this case the amount of ETH is sufficient, the blockchain will approve the transaction.
Andrea will then be subtracted 1 ETH, while 1 ETH will be credited to Barbara’s wallet.
Compared to a UTXO model, used to settle transactions on Bitcoin’s blockchain, the account model has benefits in terms of ease of use and speed of implementation. Indeed, states and transactions on these models occupy less storage space and allow for greater scalability.