Understanding Hedera for EVM Developers
Hedera vs Ethereum
While Hedera strives for EVM equivalence, it's important to recognize certain unique aspects and fundamental differences in its network architecture and operations, such as the handling of state data structures, hashing algorithms, and the management of accounts and transactions. These distinctions in network behaviors are intentional design choices made to align with EVM standards, thereby achieving EVM compatibility. This approach ensures that while Hedera aligns closely with Ethereum, it also maintains its distinctive features and optimization.
Network and Security Differences
Function | Hedera | Ethereum |
---|---|---|
Network State Data Structure | Virtual Merkle Tree | Merkle Patricia Trie |
Hashing Algorithm | SHA-384 | Keccak-256* |
Security | High security with aBFT | Secure with decentralized PoS network |
*Note: Hedera'a EVM supports Keccak-256. Transactions received through EthereumTransaction
(via the JSON-RPC relay) are hashed using Keccak-256. Only transactions using ED25519 keys through the Hedera API (HAPI) are hashed using SHA-384.
Account and Authorization Differences
Function | Hedera | Ethereum |
---|---|---|
Authorization Signatures | Used for transaction authorization outside of smart contracts | Typically used within smart contracts |
Special System Accounts | Available with unique properties | Not available |
Non-ECDSA Accounts | Non-ECDSA accounts (such as ED or multi-key) are supported by Hedera and ECDSA accounts are fully compatible | ECDSA accounts are supported by Ethereum and non-ECDSA accounts are not supported/compatible |
Account Deletion | Possible | Not possible |
Contract and Gas Differences
Function | Hedera | Ethereum |
---|---|---|
Data Return on Static Calls | Data retrieval must be done through the relay | Data returned directly |
Gas Fees | Charges at least 80% of gas fees regardless of transaction outcome | Gas fees depend on transaction outcome but typically 100% of the gas fees are charged and the unused portion is credited back |
Contract Lifecycle | Contract entities can expire, rent fees may apply | No expiration or rent fees |
Transactions and Queries Differences
Function | Hedera | Ethereum |
---|---|---|
Transaction Size Limit | 6kb | No limit |
Transaction Throttling | Transactions pending until future submission | |
Query Costs | Not free, can use mirror node for free queries | Free read-only calls |
Mempools | No mempools | Mempools available |
Cost | Low, predictable fees (fraction of a cent) | Variable, often high gas fees |
RPC Endpoint and Communication Differences
Function | Hedera | Ethereum |
---|---|---|
RPC Block Requests (e.g., | Return zero 32bytes hexadecimal value for the | Returns the |
Communication | Requires communication with both consensus and mirror nodes | Direct communication with nodes |
Note: Hedera Consensus and mirror nodes do not provide Ethereum RPC API endpoints.
Token and Fee Differences
Function | Hedera | Ethereum |
---|---|---|
Native Tokens | Supports native tokens in addition to ERC-20 and ERC-721 token standards | All ERC token standards but primarily ERC-20 and ERC-721 tokens. |
Fee Structure | Single gas price | |
Token Association** | No concept of token association | |
Keys for Token Functionality | Keys control access to token functionality ( | No equivalent native functionality |
**Note: Token Association only applies to native HTS tokens and does not affect ERC-20/721 tokens.
Other Differences
Function | Hedera | Ethereum |
---|---|---|
Precheck Failures | Typically single failure reason | |
HBAR Decimal Precision | 8 or 18 (varies across Hedera APIs) | Consistent 18 point decimal precision |
Last updated