Accounts play an essential role in Ethereum. Ethereum introduces two types of accounts:
- One is the Externally Owned Account (EOA), which is used for ether transfer and is controlled by private keys. There is no code associated with EOA.
- Another one is a Contract Account (CA), which is used for contract creation and smart code execution. The EVM activates and executes the smart contract code logic whenever the contract account receives a message. Beyond normal operations, it may read from and write to internal storage or invoke smart contracts on the other contracts.
They are both state objects; an EOA has a balance, and a CA has both a balance and storage. Without CAs, Ethereum would be limited to the mere transfer ...