navigation

以太坊改进提案(EIP)

EIP 是 Ethereum Improvement Proposal的缩写,表示以太坊改进提案。

以太坊改进提案(EIPs)描述了以太坊平台的标准,包括核心协议规范,客户端 API和合同标准。 任何人都可以参与以太坊的改进,参与的方式是向以太坊EIPs GitHub库提交改进提案的pull request,大家可以阅读EIP-1 了解如何提交改进提案。

关于提案分类可以阅读以太坊改进提案概要EIP-1: EIP 用途及指导原则

EIP 状态(status terms)

一个“成功的”EIP会经过以下几个状态:

草案(Draft -> 最后召集(Last Call) -> 已接受(Accepte) -> 最终(Final)
  • 草案 Draft - 说明此提案还在开放讨论,正在进行快速迭代和更改的EIP。
  • 最后召集 Last Call - 完成了初始迭代,并准备好供更大受众查阅。
  • 已接受 Accepted - 核心EIP(core EIP) 至少在 最后召集 状态至少两周。并且作者已解决了所要求的任何技术变更。核心开发团队决定是否将EIP作为硬分叉的一部分编码到客户端(硬分叉的过程不是EIP过程的一部分)。 如果做出这样的决定,EIP将进入最终决定。
  • 最终 Final (non-Core) - EIP 至少在 最后召集 状态至少两周。并且作者已解决了所要求的任何技术变更。
  • 最终 Final (Core) - 核心开发团队决定实现此EIP并作为将来/或已经硬分叉的一部分。

EIP 分类(Types)

EIP 分为多种类型,每种类型都有自己的EIP列表。

标准跟踪 Standard Track (202)

描述影响以太坊实现的任何更改,例如网络协议的更改、块或交易有效性规则的更改、应用程序标准或约定,或影响以太坊应用程序交互的任何更改或添加。标准跟踪EIP 细分为以下几类。

核心 Core (84)

核心提案包含产生共识分叉的改进(如:EIP5, EIP101),以及一些也许不是共识部分但可能与“核心开发”讨论相关的变更(例如,矿工/节点策略更改EIP86的2,3和4))。

网络 Networking (7)

包括围绕devp2p (EIP8) 和轻客户端子协议的改进,以及对 whisper 和 swarm 网络协议规范的改进建议。

接口 Interface (18)

包括有关客户端API/RPC规范和标准的改进,以及某些语言级别标准,如方法名(EIP6)和合约ABI。

应用标准提案 ERC (93)

ERC 是 Ethereum Request for Comment 的缩写,原本是征求大家意见的意思,主要是应用程序标准或约定,包含如:代币标准合约(ERC20),名称注册(ERC137),URI schemes (ERC681),库/包格式 (EIP190), 钱包格式 (EIP85)等。

元提案 Meta (14)

描述以太坊的改进过程(或事件),也被视为过程EIP(Process EIP)。 流程EIP类似于标准跟踪EIP,但流程EIP描述以太坊协议外的内容(而不是协议本身)。 他们可能会提出一个实现,但不会加入到以太坊的代码库; 这些提案经常需要社区共识; 与信息EIP不同,它们不仅仅是建议,用户通常也不能忽略它们。 提案包括程序,指南,决策过程的变更以及以太坊开发中使用的工具或环境的变更。

信息提案 Informational (1)

描述以太坊设计问题,或向以太坊社区提供一般指导信息,但不提出新功能。 信息提案不一定代表以太坊社区的共识或推荐,因此用户和实施者可以自由地忽略信息EIP或遵循他们的建议。

最后召集(Last Call)

序号标题作者
615Subroutines and Static Jumps for the EVMGreg Colvin , Brooklyn Zelenka , Paweł Bylica , Christian Reitwiessner ,
695Create `eth_chainId` method for JSON-RPCIsaac Ardis , Wei Tang , Fan Torchz ,
875可批量即原子交换的简单非同质代币Weiwu Zhang , James Sangalli ,
2159Common Prometheus Metrics Names for ClientsAdrian Sutton ,

最终(Final)

序号标题作者
2Homestead 硬分叉变更Vitalik Buterin ,
6重命名 SUICIDE 操作码Hudson Jameson ,
7DELEGATECALL 委托调用操作码Vitalik Buterin ,
8devp2p Forward Compatibility Requirements for HomesteadFelix Lange ,
20ERC-20 代币标准(Token Standard)Fabian Vogelsteller , Vitalik Buterin ,
55混合大小写校验和地址编码Vitalik Buterin , Alex Van de Sande ,
100调整区块难度计算Vitalik Buterin ,
137以太坊命名服务 - 规范Nick Johnson ,
140REVERT (还原状态)指令Alex Beregszaszi , Nikolai Mushegian ,
141确定EVM无效指令 INVALIDAlex Beregszaszi ,
145EVM 按位移位指令Alex Beregszaszi , Paweł Bylica ,
150调整重IO操作的Gas 消耗Vitalik Buterin ,
155简单的重放攻击保护Vitalik Buterin ,
160EXP cost increaseVitalik Buterin ,
161State trie clearing (invariant-preserving alternative)Gavin Wood ,
162Initial ENS Hash RegistrarMaurelian , Nick Johnson , Alex Van de Sande ,
165ERC-165 标准接口检测Christian Reitwießner , Nick Johnson , Fabian Vogelsteller , Jordi Baylina , Konrad Feldmeier , William Entriken ,
170合约代码大小限制Vitalik Buterin ,
181ENS 支持反向解析以太坊地址Nick Johnson ,
190Ethereum Smart Contract Packaging StandardPiper Merriam , Tim Coulter , Denis Erfurt , RJ Catalano , Iuri Matias ,
196在椭圆曲线alt_bn128上进行加法和标量乘法的预编译合约Christian Reitwiessner ,
197在椭圆曲线alt_bn128上进行最佳配对检查的预编译合约Vitalik Buterin , Christian Reitwiessner ,
198大整数模幂运算Vitalik Buterin ,
211操作码 RETURNDATASIZE 及 RETURNDATACOPYChristian Reitwiessner ,
214操作码 STATICCALLVitalik Buterin , Christian Reitwiessner ,
225Clique POA(权威证明)共识协议Péter Szilágyi ,
606Hardfork Meta: HomesteadAlex Beregszaszi ,
607Hardfork Meta: Spurious DragonAlex Beregszaszi ,
608Hardfork Meta: Tangerine WhistleAlex Beregszaszi ,
609Hardfork Meta: ByzantiumAlex Beregszaszi ,
627Whisper 规范Vlad Gluhovsky ,
649大都会分叉难度炸弹延迟和区块奖励减少Afri Schoedon , Vitalik Buterin ,
658在收据中嵌入交易状态代码Nick Johnson ,
706DEVp2p snappy compressionPéter Szilágyi ,
721ERC-721 非同质化代币标准William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs ,
777ERC777 代币(通证)标准Jacques Dafflon , Jordi Baylina , Thomas Shababi ,
779Hardfork Meta: DAO ForkCasey Detrio ,
1013Hardfork Meta: ConstantinopleNick Savers ,
1014瘦身 CREATE2 指令Vitalik Buterin ,
1052EXTCODEHASH 操作码Nick Johnson , Paweł Bylica ,
1155ERC-1155 多代币标准Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet , Ronan Sandford ,
1167最小代理合约Peter Murray , Nate Welch , Joe Messerman ,
1234君士坦丁堡难度炸弹延迟和区块奖励调整Afri Schoedon ,
1283优化SSTORE操作码的Gas消耗Wei Tang ,
1344ChainID 操作码Richard Meissner , Bryant Eisenbach ,
1716Hardfork Meta: PetersburgAfri Schoedon , Marius van der Wijden ,
1820伪自省注册表合约Jordi Baylina , Jacques Dafflon ,

草稿(Draft)

序号标题作者
3Addition of CALLDEPTH opcodeMartin Holst Swende ,
86Abstraction of transaction origin and signatureVitalik Buterin ,
101Serenity Currency and Crypto AbstractionVitalik Buterin ,
107safe "eth_sendTransaction" authorization via html popupRonan Sandford ,
152Add Blake2 compression function `F` precompileTjaden Hess , Matt Luongo , Piotr Dyraga , James Hancock ,
173ERC-173 Contract Ownership StandardNick Mudge , Dan Finlay ,
191Signed Data StandardMartin Holst Swende , Nick Johnson ,
205ENS support for contract ABIsNick Johnson ,
210Blockhash refactoringVitalik Buterin ,
233Formal process of hard forksAlex Beregszaszi ,
234Add `blockHash` to JSON-RPC filter options.Micah Zoltu ,
600Ethereum purpose allocation for Deterministic WalletsNick Johnson , Micah Zoltu ,
601Ethereum hierarchy for deterministic walletsNick Johnson , Micah Zoltu ,
616SIMD Operations for the EVMGreg Colvin ,
634Storage of text records in ENSRichard Moore ,
663Unlimited SWAP and DUP instructionsAlex Beregszaszi ,
665Add precompiled contract for Ed25519 signature verificationTobias Oberstein ,
681URL Format for Transaction RequestsDaniel A. Nagy ,
689Address Collision of Contract Address Causes Exceptional HaltYoichi Hirai ,
698OPCODE 0x46 BLOCKREWARDCody Burns ,
712Ethereum typed structured data hashing and signingRemco Bloemen , Leonid Logvinov , Jacob Evans ,
725Proxy AccountFabian Vogelsteller , Tyler Yasaka ,
747Add wallet_watchAsset to ProviderDan Finlay , Esteban Mino ,
758Subscriptions and filters for completed transactionsJack Peterson ,
778Ethereum Node Records (ENR)Felix Lange ,
801ERC-801 Canary Standardligi ,
823Token Exchange StandardKashish Khullar ,
831URI Format for Ethereumligi ,
858Reduce block reward and delay difficulty bombCarl Larson ,
867Standardized Ethereum Recovery ProposalsDan Phifer , James Levy , Reuben Youngblom ,
868Node Discovery v4 ENR ExtensionFelix Lange ,
884DGCL TokenDave Sag ,
897ERC DelegateProxyJorge Izquierdo , Manuel Araoz ,
900Simple Staking InterfaceDean Eigenmann , Jorge Izquierdo ,
902Token ValidationBrooklyn Zelenka , Tom Carchrae , Gleb Naumenko ,
908Reward clients for a sustainable networkJames Ray , Micah Zoltu ,
918Mineable Token StandardJay Logelin , Infernal_toast , Michael Seiler , Brandon Grill ,
926Address metadata registryNick Johnson ,
927Generalised authorisationsNick Johnson ,
969Modifications to ethash to invalidate existing dedicated hardware implementationsDavid Stanfill ,
998ERC-998 Composable Non-Fungible Token StandardMatt Lockyer , Nick Mudge , Jordan Schalm ,
999Restore Contract Code at 0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4Afri Schoedon ,
1010Uniformity Between 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B and 0x15E55EF43efA8348dDaeAa455F16C43B64917e3cAnderson Wesley ,
1011Hybrid Casper FFGDanny Ryan , Chih-Cheng Liang ,
1015Configurable On Chain IssuanceAlex Van de Sande ,
1046ERC20 Metadata ExtensionTommy Nicholas , Matt Russo , John Zettler , Matt Condon ,
1047Token Metadata JSON SchemaTommy Nicholas , Matt Russo , John Zettler ,
1051Overflow checking for the EVMNick Johnson ,
1056Ethereum Lightweight IdentityPelle Braendgaard , Joel Torstensson ,
1057ProgPoW, a Programmatic Proof-of-WorkIfDefElse ,
1062Formalize IPFS hash into ENS(Ethereum Name Service) resolverPhyrex Tsai , Portal Network Team ,
1066Status CodesBrooklyn Zelenka , Tom Carchrae , Gleb Naumenko ,
1077Executable Signed Messages refunded by the contractAlex Van de Sande , Ricardo Guilherme Schmidt ,
1078Universal login / signup using ENS subdomainsAlex Van de Sande ,
1080Recoverable TokenBradley Leatherwood ,
1081Standard BountiesMark Beylin , Kevin Owocki , Ricardo Guilherme Schmidt ,
1087Net gas metering for SSTORE operationsNick Johnson ,
1102Opt-in account exposurePaul Bouchon ,
1108Reduce alt_bn128 precompile gas costsAntonio Salazar Cardozo , Zachary Williamson ,
1109PRECOMPILEDCALL opcode (Remove CALL costs for precompiled contracts)Jordi Baylina ,
1123Revised Ethereum Smart Contract Packaging Standardg. nicholas d’andrea , Piper Merriam , Nick Gheorghita , Danny Ryan ,
1129Standardised DAPP announcementsJan Turk ,
1132Extending ERC20 with token locking capabilitynitika-goel ,
1153Transient storage opcodesAlexey Akhunov ,
1175Wallet & shop standard for all tokens (erc20)Jet Lim ,
1178Multi-class Token StandardAlbert Chon ,
1185Storage of DNS Records in ENSJim McDonald ,
1186RPC-Method to get Merkle Proofs - eth_getProofSimon Jentzsch , Christoph Jentzsch ,
1191Add chain id to mixed-case checksum address encodingJuliano Rizzo ,
1193Ethereum Provider JavaScript APIFabian Vogelsteller , Ryan Ghods , Marc Garreau , Victor Maia ,
1202Voting StandardZainan Victor Zhou , Evan , Yin Xu ,
1203ERC-1203 Multi-Class Token Standard (ERC-20 Extension)Jeff Huang , Min Zu ,
1207DAuth Access Delegation StandardXiaoyu Wang , Bicong Wang ,
1227Defuse Difficulty Bomb and Reset Block RewardSmeargleUsedFly ,
1240Remove Difficulty BombMicah Zoltu ,
1261Membership Verification Token (MVT)Chaitanya Potti , Partha Bhattacharya ,
1271Standard Signature Validation Method for ContractsFrancisco Giordano , Matt Condon , Philippe Castonguay , Amir Bandeali , Jorge Izquierdo , Bertrand Masius ,
1276Eliminate Difficulty Bomb and Adjust Block Reward on Constantinople ShiftEOS Classic ,
1285Increase Gcallstipend gas in the CALL OPCODEBen Kaufman , Adam Levi ,
1295Modify Ethereum PoW Incentive Structure and Delay Difficulty BombBrian Venturo ,
1319Smart Contract Package Registry InterfacePiper Merriam , Christopher Gewecke , g. nicholas d'andrea , Nick Gheorghita ,
1328WalletConnect Standard URI Formatligi , Pedro Gomes ,
1352Specify restricted address range for precompiles/system contractsAlex Beregszaszi ,
1380Reduced gas cost for call to selfAlex Beregszaszi , Jacques Wagener ,
1386Attestation management contractWeiwu Zhang , James Sangalli ,
1387Merkle Tree Attestations with Privacy enabledWeiwu Zhang , James Sangalli ,
1388Attestation Issuers Management ListWeiwu Zhang , James Sangalli ,
1417Poll StandardChaitanya Potti , Partha Bhattacharya ,
1418Blockchain Storage Rent PaymentWilliam Entriken ,
1438dApp Components (avatar) & Universal WalletJet Lim ,
1444Localized Messaging with Signal-to-TextBrooklyn Zelenka , Jennifer Cooper ,
1450ERC-1450John Shiple , Howard Marks , David Zhang ,
1459Node Discovery via DNSFelix Lange , Péter Szilágyi ,
1462Base Security TokenMaxim Kupriianov , Julian Svirsky ,
1470Smart Contract Weakness Classification (SWC)Gerhard Wagner ,
1474Remote procedure call specificationPaul Bouchon ,
1482Define a maximum block timestamp driftMaurelian ,
1484Digital Identity AggregatorAnurag Angara , Andy Chorlian , Shane Hampton , Noah Zinsmeister ,
1485TEthashV1trustfarm (KT Ahn - 안씨아저씨) , trustfarm ,
1491Human Cost Accounting Standard (Like Gas but for humans)Iamnot Chris ,
1504ERC-1504 Upgradable Smart ContractKaidong Wu , Chuqiao Ren , Ruthia He , Yun Ma , Xuanzhe Liu ,
1523Standard for Insurance Policies as ERC-721 Non Fungible TokensChristoph Mussenbrock ,
1538Transparent Contract StandardNick Mudge ,
1559Fee market change for ETH 1.0 chainVitalik Buterin , Eric Conner ,
1571EthereumStratum/2.0.0Andrea Lanfranchi (@AndreaLanfranchi) , Pawel Bylica (@chfast) , Marius Van Der Wijden ,
1577contenthash field for ENSDean Eigenmann , Nick Johnson ,
1581Non-wallet usage of keys derived from BIP-32 treesMichele Balistreri ,
1588Hardfork Meta: Ethereum ProgPoWIkmyeong Na ,
1592Address and ERC20-compliant transfer rulesCyril Lapinte , Laurent Aapro ,
1613Gas stations networkYoav Weiss , Dror Tirosh , Alex Forshtat ,
1616ERC-1616 Attribute Registry Standard0age , Santiago Palladino , Leo Arias , Alejo Salles , Stephane Gosselin ,
1620ERC-1620 Money StreamingPaul Berg (@PaulRBerg) ,
1679Hardfork Meta: IstanbulAlex Beregszaszi , Afri Schoedon ,
1681Temporal Replay ProtectionMartin Holst Swende ,
1702Generalized Account Versioning SchemeWei Tang ,
1706Disable SSTORE with gasleft lower than call stipendAlex Forshtat , Yoav Weiss ,
1710URL Format for Web3 BrowsersBruno Barbieri ,
1753Smart Contract Interface for LicencesLucas Cullen , Kai Yeung , Anna Crowley , Caroline Marshall , Katrina Donaghy ,
1761ERC-1761 Scoped Approval InterfaceWitek Radomski , Andrew Cooke , James Therien , Eric Binet ,
1767GraphQL interface to Ethereum node dataNick Johnson , Raúl Kripalani , Kris Shinn ,
1775App Keys, application specific wallet accountsVincent Eli , Dan Finlay ,
1803Rename opcodes for clarityAlex Beregszaszi ,
1812Ethereum Verifiable ClaimsPelle Braendgaard ,
1822Universal Upgradeable Proxy Standard (UUPS)Gabriel Barros , Patrick Gallagher ,
1829Precompile for Elliptic Curve Linear CombinationsRemco Bloemen ,
1844ENS Interface DiscoveryNick Johnson ,
1872Ethereum Network Upgrade WindowsDanno Ferrin ,
1884Repricing for trie-size-dependent opcodesMartin Holst Swende ,
1890Commitment to Sustainable Ecosystem FundingGregory Markou , Kevin Owocki , Lane Rettig ,
1895Support for an Elliptic Curve CycleAlexandre Belling ,
1898Add `blockHash` to JSON-RPC methods which accept a default block parameter.Charles Cooper ,
1900dType - Decentralized Type System for EVMLoredana Cirstea , Christian Tzurcanu ,
1901Add OpenRPC Service Discovery To JSON-RPC ServicesShane Jonas , Zachary Belford ,
1922zk-SNARK Verifier StandardMichael Connor , Chaitanya Konda , Duncan Westland ,
1923zk-SNARK Verifier Registry StandardMichael Connor , Chaitanya Konda , Duncan Westland ,
1930CALLs with strict gas semantic. Revert if not enough gas available.Ronan Sandford ,
1948Non-fungible Data TokenJohann Barbie , Ben Bollen , pinkiebell ,
1959New Opcode to check if a chainID is part of the history of chainIDsRonan Sandford ,
1962EC arithmetic and pairings with runtime definitionsAlex Vlasov ,
1965Method to check if a chainID is valid at a specific block NumberRonan Sandford ,
1967Standard Proxy Storage SlotsSantiago Palladino ,
1973Scalable RewardsLee Raj , Qin Jian ,
1985Sane limits for certain EVM parametersAlex Beregszaszi , Paweł Bylica ,
2003EVMC modules for implementations of precompiled contractsPaweł Bylica , Alex Beregszaszi ,
2014Extended State OracleAlex Beregszaszi ,
2015Wallet Update Chain JSON-RPC Method (`wallet_updateChain`)Pedro Gomes ,
2025Block Rewards Proposal for funding Eth1.xJames Hancock ,
2026State Rent H - Fixed Prepayment for accountsAlexey Akhunov ,
2027State Rent C - Net contract size accountingAlexey Akhunov ,
2028Transaction data gas cost reductionAlexey Akhunov , Eli Ben Sasson , Tom Brand , Louis Guthmann , Avihu Levy ,
2029State Rent A - State counters contractAlexey Akhunov ,
2031State Rent B - Net transaction counterAlexey Akhunov ,
2035Stateless Clients - Repricing SLOAD and SSTORE to pay for block proofsAlexey Akhunov ,
2045Particle gas costs for EVM opcodesCasey Detrio , Alex Beregszaszi ,
2046Reduced gas cost for static calls made to precompilesAlex Beregszaszi ,
2124Fork identifier for chain compatibility checksPéter Szilágyi , Felix Lange ,
2135Consumable InterfaceZainan Victor Zhou ,
2157dType Storage Extension - Decentralized Type System for EVMLoredana Cirstea , Christian Tzurcanu ,
2193dType Alias Extension - Decentralized Type SystemLoredana Cirstea , Christian Tzurcanu ,

被丢弃(Abandoned)

序号标题作者
1154Oracle InterfaceAlan Lu ,
1355Ethash 1aPaweł Bylica (@chfast) , Jean M. Cyr ,