Accounts
Accounts in the Venom network can refer to two concepts:
- Smart contracts (with code for changing data storage).
- Unique identifiers for users (with a corresponding address, balance, and the ability to transfer funds and call smart contracts).
However, there is no distinction between smart contracts and accounts in the Venom network. The following table highlights the differences between accounts in Ethereum and in Venom:
Ethereum | Venom |
Distinction between accounts and smart contracts. | No distinction between smart contracts and accounts. |
Accounts can be implemented as smart contracts or externally owned by the owner of their private keys. | Every account is a smart contract. |
External accounts. | No concept of externally-owned accounts. |
Venom utilizes account abstraction as every account can hold a balance, call smart contracts, perform code, and call another account. This mechanism allows for authentication beyond external ownership via private keys. The increased smart contract code flexibility introduces a wide variety of different authentication options beyond traditional ownership through private keys.
Each account in the Venom network can:
- Send and receive messages from other accounts (within the network).
- Send and receive external messages (outside the network)
- Send external messages with no specific destination (comparable with events in Ethereum).
Accounts in the Venom network can have the following fields:
- address - The account's identifier by which it is stored in the blockchain
- storage - Data about the account's state, balance, transaction time, and initial code hash
- storage state - Fields for information about last paid, used, and due payment. The fields are used to calculate storage fees.