What exactly are accounts?
The Ethereum global state is made up of accounts that communicate with one another via a message-passing framework. The most fundamental interaction is the transfer of value, such as ether, the native cryptocurrency of the Ethereum blockchain. Each account is identified by a 20-byte hex identifier known as an address, which is generated using the account's public key. There are two kinds of accounts:
- 1.Externally Owned Account - An account that is controlled by a private key, and if you own the private key associated with it, you can send tokens and messages from it.
- 2.Contract Owned Account - An account with a smart contract code and a private key that is not owned by anyone.
These are distinguished as follows:
Externally Owned Account
- Can transmit transactions (ether transfer or trigger contract code)
- Is governed by private keys
- Has no corresponding code
Contract Owned Account
- Has a corresponding code
- Transactions or messages (calls) received from other contracts trigger code execution.
- When executed, it can: - perform arbitrary complexity operations (Turing completeness) - manipulate its own persistent storage, i.e., have its own permanent state - call other contracts