以太坊标准

以太坊改进提案(EIPs)

https://eips.ethereum.org/

来自EIP-1:

EIP代表以太坊改进提案。EIP是一个设计文档,为以太坊社区提供信息,或描述以太坊或其过程或环境的新功能。EIP应提供该功能的简明技术规范和该功能的基本原理。EIP作者负责在社区内建立共识并记录不同意见。

Figure 1. Ethereum改进提案工作流程Figure 1. Ethereum改进提案工作流程

以太坊征求意见(ERCs)

Request for Comments(RFC)是一种用于为互联网引入技术和组织指南的方法,因为它们是由[https://www.ietf.orgInternet Engineering Task Force]提出的。ERCS包括为以太坊网络设置标准的类似指南。以下部分提供了由以太坊开发人员社区开发和接受的最新列表。

ERCs的增加是通过https://github.com/ethereum/EIPs[EIPs],以太坊改进协议来完成的,这是对比特币自己的BIP的致敬。EIP由开发人员编写并提交给同行评审,评估其有用性,并且能够增加现有ERC的实用性。如果他们被接受,他们最终将成为ERC标准的一部分。

最重要的EIP和ERC表

Table 1. Important EIPs and ERCs| EIP/ERC

Title Author Layer Status Created
EIP-1 EIP Purpose and Guidelines Martin Becze, Hudson Jameson Meta Final
EIP-2 Homestead Hard-fork Changes Vitalik Buterin Core Final
EIP-5 Gas Usage forRETURN and CALL Christian Reitwiessner Core Draft
EIP-6 Renaming Suicide Opcode Hudson Jameson Interface Final
EIP-7 DELEGATECALL Vitalik Buterin Core Final
EIP-8 devp2p Forward Compatibility Requirements for Homestead Felix Lange Networking Final
EIP-20 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:totalSupply(), balanceOf(address), transfer, transferFrom, approve, allowance. Events include: Transfer (triggered when tokens are transferred), Approval (triggered when approve is called). Fabian Vogelsteller, Vitalik Buterin ERC Final Frontier
EIP-55 ERC-55 Mixed-case checksum address encoding Vitalik Buterin ERC Final
EIP-86 Setting the stage for "abstracting out" account security, and allowing users creation of "account contracts" toward a model where in the long-term all accounts are contracts that can pay for gas, and users are free to defined their own security model (that perform any desired signature verification and nonce checks instead of using the in-protocol mechanism where ECDSA and default nonce scheme are the only "standard" way to secure an account, which is currently hard-coded into transaction processing). Vitalik Buterin Core Deferred (to be replaced) Constantinople
EIP-96 Setting the Blockhash and state root refactoring to store blockhashes in the state to reduce protocol complexity and need for client implementation complexity necessary to process theBLOCKHASH opcode. Extends range of how far back blockhash checking may go, with the side effect of creating direct links between blocks with very distant block numbers to facilitate much more efficient initial Light Client syncing. Vitalik Buterin Core Deferred Constantinople
EIP-100 Change formula that computes the difficulty of a block (difficulty adjustment algorithm) to target mean block time and take uncles into account. Vitalik Buterin Core Final Metropolis Byzantinium
EIP-101 Serenity Currency and Crypto Abstraction. Abstracting Ether up a level with the benefit of allowing Ether and sub-Tokens to be treated similarly by contracts, reducing level of indirection required for custom-policy accounts such as Multisigs, and purifying the underlying Ethereum protocol by reducing the minimal consensus implementation complexity Vitalik Buterin Active Serenity feature Serenity Casper
EIP-105 "Sharding scaffolding" EIP to allow Ethereum transactions to be parallelised using a binary tree sharding mechanism, and to set the stage for a later sharding scheme. Research in progress:https://github.com/ethereum/sharding Vitalik Buterin Active Serenity feature Serenity Casper
EIP-137 Ethereum Domain Name Service - Specification Nick Johnson ERC Final
EIP-140 AddREVERT opcode instruction, which stops execution and rolls back the EVM execution state changes without consuming all provided gas (instead the contract only has to pay for memory) or losing logs, and returning to the caller a pointer to the memory location with the error code or message. Alex Beregszaszi, Nikolai Mushegian Core Final Metropolis Byzantinium
EIP-141 Designated invalid EVM instruction Alex Beregszaszi Core Final
EIP-145 Bitwise shifting instructions in EVM Alex Beregszaszi, Paweł Bylica Core Deferred
EIP-150 Gas cost changes for IO-heavy operations Vitalik Buterin Core Final
EIP-155 Simple Replay Attack Protection. Replay Attack allows any transaction using a pre-EIP155 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
EIP-158 State clearing Vitalik Buterin Core Superseded
EIP-160 EXP cost increase Vitalik Buterin Core Final
EIP-161 State trie clearing (invariant-preserving alternative[EIP-161] Gavin Wood Core Final
EIP-162 ERC-162 ENS support for reverse resolution of Ethereum addresses Maurelian, Nick Johnson ERC Final
EIP-165 ERC-165 Standard Interface Detection Christian Reitwiessner Interface Draft
EIP-170 Contract code size limit Vitalik Buterin Core Final
EIP-181 ERC-181 ENS support for reverse resolution of Ethereum addresses Nick Johnson ERC Final
EIP-190 ERC-190 Ethereum Smart Contract Packaging Standard Merriam, Coulter, Erfurt, Catalano, Matias ERC Final
EIP-196 Precompiled contracts for addition and scalar multiplication operations on the elliptic curve alt_bn128, which are required in order to perform zkSNARK verification within the block gas limit Christian Reitwiessner Core Final Metropolis Byzantinium
EIP-197 Precompiled contracts for optimal Ate pairing check of a pairing function on a specific pairing-friendly elliptic curve alt_bn128 and is combined with EIP 196 Vitalik Buterin, Christian Reitwiessner Core Final Metropolis Byzantinium
EIP-198 Precompile to support big integer modular exponentiation enabling RSA signature verification and other cryptographic applications Vitalik Buterin Core Final Metropolis Byzantinium
EIP-211 New opcodes:RETURNDATASIZE and RETURNDATACOPY. Support for returning variable-length values inside the EVM with simple gas charging and minimal change to calling opcodes using new opcodes RETURNDATASIZE and RETURNDATACOPY. Handles similar to existing calldata, whereby after a call, return data is kept inside a virtual buffer from which the caller can copy it (or parts thereof) into memory, and upon the next call, the buffer is overwritten. Christian Reitwiessner Core Final Metropolis Byzantinium
EIP-214 New opcode:STATICCALL. Permits non-state-changing calls to itself or other contracts whilst disallowing any modifications to state during the call (and its sub-calls, if present) to increase smart contract security and assure developers that re-entrancy bugs cannot arise from the call. Calls the child with STATIC flag set true for execution of child, causing exception to be thrown upon any attempts to make state-changing operations inside an execution instance where STATIC is set true, and resets flag once call returns. Vitalik Buterin, Christian Reitwiessner Core Final Metropolis Byzantinium
EIP-225 Rinkeby Testnet using Proof-of-Authority where blocks only mined by trusted signers Homestead
EIP-234 AddblockHash to JSON-RPC filter options Micah Zoltu Interface Draft
EIP-615 Subroutines and Static Jumps for the EVM Greg Colvin Core Draft
EIP-616 SIMD Operations for the EVM Greg Colvin Core Draft
EIP-681 ERC-681 URL Format for Transaction Requests Daniel A. Nagy Interface Draft
EIP-649 Metropolis Difficulty Bomb Delay and Block Reward Reduction - Delay of the Ice Age (aka the Difficulty Bomb by 1 year), and reduction of the block reward from 5 to 3 ether. Afri Schoedon, Vitalik Buterin Core Final Metropolis Byzantinium
EIP-658 Embedding transaction status code in receipts. Fetch and embed status field indicative of success or failure state to transaction receipts for callers, as was no longer able to assume the transaction failed if and only if (iff) it consumed all gas after the introduction of theREVERT opcode in EIP-140. Nick Johnson Core Final Metropolis Byzantinium
EIP-706 DEVp2p snappy compression Péter Szilágyi Networking Final
EIP-721 ERC-721 Non-Fungible Token (NFT) Standard. It is a standard API that would allow smart contracts to operate as unique tradable non-fungible tokens (NFT) that may be tracked in standardised wallets and traded on exchanges as assets of value, similar to ERC-20. 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
EIP-758 Subscriptions and filters for transaction return data Jack Peterson Interface Draft
EIP-801 ERC-801 Canary Standard ligi Interface Draft
EIP-827 ERC-827 A extension of the standard interface ERC20 for tokens with methods that allows the execution of calls inside transfer and approvals. This standard provides basic functionality to transfer tokens, as well as allow tokens to be approved so they can be spent by another on-chain third party. Also it allows to execute calls on transfers and approvals. Augusto Lemble ERC Draft
EIP-930 ERC-930 The ES (Eternal Storage) contract is owned by an address that have write permissions. The storage is public, which means everyone has read permissions. It store the data on 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
下一节:大多数硬分叉计划作为路线图的一部分,并包含社区普遍认同的更新; 这通常被称为共识。然而,一些硬分叉并不总是保持共识,这导致多个不同的区块链。导致以太坊/以太坊经典分裂的事件就是这种情况。