Appendix A: Ethereum Standards
Ethereum Improvement Proposals (EIPs)
The Ethereum Improvement Proposal repository is located at https://github.com/ethereum/EIPs/. The workflow is illustrated in Ethereum Improvement Proposal workflow.
From EIP-1:
EIP stands for Ethereum Improvement Proposal. An EIP is a design document providing information to the Ethereum community, or describing a new feature for Ethereum or its processes or environment. The EIP should provide a concise technical specification of the feature and a rationale for the feature. The EIP author is responsible for building consensus within the community and documenting dissenting opinions.
Table of Most Important EIPs and ERCs
EIP/ERC # | Title/Description | Author | Layer | Status | Created |
---|---|---|---|---|---|
EIP Purpose and Guidelines |
Martin Becze, Hudson Jameson |
Meta |
Final |
||
Homestead Hard-fork Changes |
Vitalik Buterin |
Core |
Final |
||
Gas Usage for |
Christian Reitwiessner |
Core |
Draft |
||
Renaming SUICIDE Opcode |
Hudson Jameson |
Interface |
Final |
||
|
Vitalik Buterin |
Core |
Final |
||
devp2p Forward Compatibility Requirements for Homestead |
Felix Lange |
Networking |
Final |
||
ERC-20 Token Standard. Describes standard functions a token contract may implement to allow DApps and wallets to handle tokens across multiple interfaces/DApps. Methods include: |
Fabian Vogelsteller, Vitalik Buterin |
ERC |
Final |
Frontier |
|
Mixed-case checksum address encoding |
Vitalik Buterin |
ERC |
Final |
||
Abstraction of transaction origin and signature. Sets the stage for "abstracting out" account security and allowing users to create "account contracts," moving toward a model where in the long term all accounts are contracts that can pay for gas, and users are free to define their own security models that perform any desired signature verification and nonce checks (instead of using the in-protocol mechanism where ECDSA and the default nonce scheme are the only "standard" way to secure an account, which is currently hardcoded into transaction processing). |
Vitalik Buterin |
Core |
Deferred (to be replaced) |
Constantinople |
|
Blockhash and state root changes. Stores blockhashes in the state to reduce protocol complexity and need for complex client implementations to process the |
Vitalik Buterin |
Core |
Deferred |
Constantinople |
|
Change difficulty adjustment to target mean block time and including uncles. |
Vitalik Buterin |
Core |
Final |
Metropolis Byzantinium |
|
Serenity Currency and Crypto Abstraction. Abstracts ether up a level with the benefit of allowing ether and subtokens to be treated similarly by contracts, reduces the level of indirection required for custom-policy accounts such as multisigs, and purifies the underlying Ethereum protocol by reducing the minimal consensus implementation complexity. |
Vitalik Buterin |
Active |
Serenity feature |
Serenity Casper |
|
Binary sharding plus contract calling semantics. "Sharding scaffolding" EIP to allow Ethereum transactions to be parallelized using a binary tree sharding mechanism, and to set the stage for a later sharding scheme. Research in progress; see https://github.com/ethereum/sharding. |
Vitalik Buterin |
Active |
Serenity feature |
Serenity Casper |
|
Ethereum Domain Name Service - Specification |
Nick Johnson |
ERC |
Final |
||
New Opcode: REVERT. Adds |
Alex Beregszaszi, Nikolai Mushegian |
Core |
Final |
Metropolis Byzantinium |
|
Designated invalid EVM instruction |
Alex Beregszaszi |
Core |
Final |
||
Bitwise shifting instructions in EVM |
Alex Beregszaszi, Paweł Bylica |
Core |
Deferred |
||
Gas cost changes for IO-heavy operations |
Vitalik Buterin |
Core |
Final |
||
Simple replay attack protection. Replay Attack allows any transaction using a pre-EIP-155 Ethereum node or client to become signed so it is valid and executed on both the Ethereum and Ethereum Classic chains. |
Vitalik Buterin |
Core |
Final |
Homestead |
|
State clearing |
Vitalik Buterin |
Core |
Superseded |
||
EXP cost increase |
Vitalik Buterin |
Core |
Final |
||
State trie clearing (invariant-preserving alternative) |
Gavin Wood |
Core |
Final |
||
Initial ENS Hash Registrar |
Maurelian, Nick Johnson, Alex Van de Sande |
ERC |
Final |
||
ERC-165 Standard Interface Detection |
Christian Reitwiessner et al. |
Interface |
Draft |
||
Contract code size limit |
Vitalik Buterin |
Core |
Final |
||
ENS support for reverse resolution of Ethereum addresses |
Nick Johnson |
ERC |
Final |
||
Ethereum Smart Contract Packaging Standard |
Piper Merriam et al. |
ERC |
Final |
||
Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128. Required in order to perform zkSNARK verification within the block gas limit. |
Christian Reitwiessner |
Core |
Final |
Metropolis Byzantinium |
|
Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128. Combined with EIP-196. |
Vitalik Buterin, Christian Reitwiessner |
Core |
Final |
Metropolis Byzantinium |
|
Big integer modular exponentiation. Precompile enabling RSA signature verification and other cryptographic applications. |
Vitalik Buterin |
Core |
Final |
Metropolis Byzantinium |
|
New opcodes: |
Christian Reitwiessner |
Core |
Final |
Metropolis Byzantinium |
|
New opcode: |
Vitalik Buterin, Christian Reitwiessner |
Core |
Final |
Metropolis Byzantinium |
|
Rinkeby testnet using proof of authority where blocks are only mined by trusted signers. |
Péter Szilágyi |
Homestead |
|||
Add |
Micah Zoltu |
Interface |
Draft |
||
Subroutines and Static Jumps for the EVM |
Greg Colvin, Paweł Bylica, Christian Reitwiessner |
Core |
Draft |
||
SIMD Operations for the EVM |
Greg Colvin |
Core |
Draft |
||
URL Format for Transaction Requests |
Daniel A. Nagy |
Interface |
Draft |
||
Metropolis Difficulty Bomb Delay and Block Reward Reduction. Delayed the Ice Age (aka Difficulty Bomb) by 1 year, and reduced the block reward from 5 to 3 ether. |
Afri Schoedon, Vitalik Buterin |
Core |
Final |
Metropolis Byzantinium |
|
Embedding transaction status code in receipts. Fetches and embeds a status field indicative of success or failure state to transaction receipts for callers, as it’s no longer possible to assume the transaction failed if and only if it consumed all gas after the introduction of the |
Nick Johnson |
Core |
Final |
Metropolis Byzantinium |
|
DEVp2p snappy compression |
Péter Szilágyi |
Networking |
Final |
||
ERC-721 Non-Fungible Token Standard. A standard API that allows smart contracts to operate as unique tradable non-fungible tokens (NFTs) that may be tracked in standardized wallets and traded on exchanges as assets of value, similar to ERC20. CryptoKitties was the first popularly adopted implementation of a digital NFT in the Ethereum ecosystem. |
William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs |
Standard |
Draft |
||
Subscriptions and filters for completed transactions |
Jack Peterson |
Interface |
Draft |
||
ERC-801 Canary Standard |
ligi |
Interface |
Draft |
||
ERC827 Token Standard. An extension of the standard interface ERC20 for tokens with methods that allow the execution of calls inside transfer and approvals. This standard provides basic functionality to transfer tokens, as well as allowing tokens to be approved so they can be spent by another on-chain third party. Also, it allows the developer to execute calls on transfers and approvals. |
Augusto Lemble |
ERC |
Draft |
||
ERC930 Eternal Storage. The ES (Eternal Storage) contract is owned by an address that has write permissions. The storage is public, which means everyone has read permissions. It stores the data in mappings, using one mapping per type of variable. The use of this contract allows the developer to migrate the storage easily to another contract if needed. |
Augusto Lemble |
ERC |
Draft |