什么是EIP(Ethereum Improvement Proposal)?

中级Jan 17, 2023
Ethereum Improvenment Proposal(EIP),即以太坊改进提案。以太坊的每一项新的功能或者改进的提出,都会记录在EIP中,并由所有矿工在客户端中进行实现。本文带大家一起深入了解什么是EIP,以及EIP在以太坊的升级改造当中扮演了什么样的角色。 以太坊上欣欣向荣的生态吸引了庞大的用户群体,虽然其高昂的 gas 费与拥挤的网络时常受到诟病,但是因其安全、稳定、创新的机制,一直是诸多 Dapps 部署的首选公链。罗马不是一天建成的,以太坊自运行以来,也经历了大大小小的升级优化。出于去中心化治理的理念,这些升级优化的提案,均需要以 EIP 的形式在以太坊社区内达成广泛的共识,才能最终得以实施。
什么是EIP(Ethereum Improvement Proposal)?

以太坊上欣欣向荣的生态吸引了庞大的用户群体,虽然其高昂的 gas 费与拥挤的网络时常受到诟病,但是因其安全、稳定、创新的机制,一直是诸多 Dapps 部署的首选公链。罗马不是一天建成的,以太坊自运行以来,也经历了大大小小的升级优化。出于去中心化治理的理念,这些升级优化的提案,均需要以 EIP 的形式在以太坊社区内达成广泛的共识,才能最终得以实施。

EIP的基本概念

EIP即以太坊改进提案,是为以太坊潜在新功能或流程提出建议的标准。

EIP 的代码库创建于 2015 年 10 月,以太坊的所有改进都可以在以往的 EIP 提案中查询到。

一个 EIP 包含了对当前以太坊的改进提议,EIP 的作者需要在 EIP 中提供实现改进的基本原理以及技术标准。提议的最终采纳需要经过严谨的社区审核流程并在社区内建立共识。

以太坊效仿比特币的 BIP( Bitcoin Improvements Proposals),提出了 EIP 模式,其初衷是为了在去中心化治理模式下,高效地处理对以太坊的升级改进需求,并在项目中推广应用。

EIP的主要分类

EIP提案可以分为3类,分别是 Standard Track 、 Meta 和 Informational 。

Standard Track
Standard Track 类型的 EIP 提案指的是会对大多数或者整个以太坊实现产生影响(如网络协议的更改、块或交易的验证规则的更改、应用程序标准的更改等),或者对部署在以太坊上的应用交互产生影响的提案。Standard Track 类型的 EIP 提案还可以进一步细分为以下几种类型:

Core:提案包含需要产生共识分叉的改进,或者不是共识但是和核心开发有关的改进。比如改进以太坊Gas机制的EIP-1559提案,需要全网进行硬分叉来实现。

Networking:提案围绕 devp2p 、轻量级以太坊子协议以及 whisper 和 swarm 网络协议规范的改进,比如为了减少交易数据使用成本提出的EIP-2124提案。

Interface:提案针对客户端 API/RPC 规范、语言层级的标准规定(如方法名和合约 ABI)进行改进,比如定义了eth_chainId方法的EIP-695提案。

ERC:提案包含对应用层级的规范与调理的改进,包括合约标准(如代币标准)、名称注册、URI体系、库/包的格式以及钱包格式,比如我们熟知的ERC-20和ERC-721提案。

Meta
Meta 提案是定义一个围绕以太坊的过程,或者是对一个现存的过程进行修改。过程提案和Standard Track 类型的提案类似,但是作用对象是以太坊协议以外的内容,它可能会提出一种实现,但是并不会改变以太坊的代码库。

Meta 提案通常需要社区达成共识,它不仅仅是提出一种建议,用户通常不能随意忽略这些提案。Meta 提案包括一些程序、指南、决策过程调整以及以太坊开发工具的调整等。Meta 提案通常也被称为 Process 提案。

Informational
Informational提案对以太坊的设计问题进行描述或者为以太坊社区提供一般性的指南,其并不会提出新的特性。Informational提案不代表社区共识,用户可以自由决定是否采用提案。

EIP的运行机制


任何人都可以发起一个EIP提案。在发起正式提案之前,用户需要先在以太坊社区内进行讨论,以避免重复性的提案。

当这个初步想法在社区内讨论通过后,用户可以开始撰写一份提案的草案(Draft),并邀请一些团体、开发者、编辑来进行评审(Review)。在这个过程中,用户需要尽力说服社区来采纳自己的提案。

EIP提案在同行评审之后会进入到终审(Last Call)阶段。终审通常具有14天的窗口期,在终审期间,如果提案还有需要修改的地方,则返回评审(Review)阶段。如果终审通过,那么EIP提案成功通过,会被标记为 Final 状态。

一个处于草案、评审或终审阶段的提案,提案发起者可以选择撤销提案流程,并将提案标记为 Withdrawn 状态。

如果一个提案停滞于草案、评审或终审阶段长达6个月而没有被撤销,那么提案会被标记为停滞(Stagnant)状态。

对于一些需要持续保持更新的特殊提案(比如EIP-1),会被标记为 Living 状态。

EIP的典型提案

EIP-20

EIP-20提案创建于2015年11月,由 Fabian Vogelsteller 和 Vitalik Buterin 两位作者提出。该提案规定了 ERC-20 代币的实现标准,用户可以基于这套标准在以太坊上发布属于自己的代币。

基于 ERC-20 标准创建的代币具备转移(Transfer)、授权(Approve)、查询账户余额(balanceOf)等基本功能,并且有着固定的代币名称与总供应量,以便于钱包、交易所以及各种合约对代币的兼容。

截至发文,目前一共有 585,773 种 ERC-20 代币部署在以太坊上。我们平时熟知的 USDT、BNB、UNI、SHIB 等都属于 ERC-20 代币。 ERC-20 代币是诸多区块链项目进行融资、治理、运行的基础,是以太坊生态系统的重要资产。

EIP-721

EIP-721 提案提出一种 REC-721 标准,即非同质化代币标准,也就是我们所说的 NFT 标准。 EIP-721 以 EIP-20 提案为基础,由 William Entriken 等人于 2018 年 1 月提出。

ERC-20 代币可以划分为很多个小的单位,并且每个代币都是等价的。而 ERC-721 代币都是不可拆分、独一无二的。 ERC-721 代币最大的特点在于每一个代币都对应一个 Owner 以及一个 MetaData 。 Owner 赋予其不可拆分性, MetaData 规定了其独一无二性。

截至发文,目前一共有 118,438 种 ERC-721 代币部署在以太坊上。 ERC-721 代币在市场上交易额达到数十亿美元,比较著名的 ERC-721 项目有 CryptoKitties 、 CryptoPunks 、 Bored Ape Yacht Club 等。

EIP-779

EIP-779 提案可能是以太坊历史上最具有争议的提案之一。 2016 年 6 月,以太坊上的项目 the DAO 由于合约安全漏洞的存在,导致约 360万 枚 ETH 被黑客窃取,被盗 ETH 的数量占到了当时 ETH 总量的 4.4% ,这对于刚刚创建 1 年左右的以太坊的影响是非常大的。于是,以太坊开发团队推出了备受争议的 EIP-779 提案。

EIP-779 提案让每个用户可以从 the DAO 合约中提取出原本属于自己的 ETH 。虽然这样可以为用户们挽回损失,但是一些矿工认为这样的做法有违区块链去中心化的初衷,一旦打开这个潘多拉魔盒,会导致加密货币在未来失去用户的信任,影响区块链的健康发展。

最终, 2016 年 7 月 20 日,大多数矿工同意了 EIP-779 提案,以太坊硬升级成功。但是,由于还有小部分矿工拒绝 EIP-779 升级提案,以太坊阵营由此一分为二,以太链也分为了旧链和新链两条链。采纳了 EIP-779 提案的矿工运行以太坊新链,而拒绝采纳 EIP-779 提案的矿工运行着原先版本的旧链,旧链改名为以太坊经典,旧链上的 ETH 改名为 ETC 。

EIP-1559

EIP-1559 提案是以太坊历史上一次非常重要的升级。Vitalik Buterin 于 2019 年提出 EIP-1599 提案,主要对以太坊 gas 机制进行改进。提案的提出遭到了大量矿工的反对,但也得到了诸多以太坊用户,尤其是 Defi 用户的支持。

在 EIP-1599 提案提出之前,以太坊链上操作的 gas 费全部支付给矿工。受限于以太坊的区块容量,用户想要让自己的交易尽快上链,需要支付高额的 gas 费才能让矿工将自己的交易打包到区块中去。交易的 gas 费成为矿工收入的主要来源,因此诱发了矿工集体哄抬 gas 费的潜在风险。

EIP-1599 提案将 gas 费用拆分为两部分,即基本费用(base fee)和小费(priority fee)。基本费用由固定的算法产生,并且会直接销毁,不会给到矿工。当前区块的负荷越高,则下一个区块的基本费用会随之上涨,从而过滤掉一部分对gas费用敏感的用户。反之,当前区块负荷越低,下一个区块的基本费用随之降低。小费是用户直接支付给矿工的费用,用户小费给的越高,矿工会更倾向于将用户的交易进行打包上链。

由于每个区块的基本费用是通过算法产生的,因此用户在提交交易请求的时候并不能预知基本费用。因此, EIP-1599 提案还引入了 gas 费上限(fee cap)。用户可以规定愿意支付的 gas 费上限,如果下一个区块的基本费用加上用户愿意支付给矿工的小费小于这个数值,并且矿工将交易打包到了区块当中,那么多余的 gas 费会退还给用户,以帮助用户节省不必要的 gas 费。

EIP-1599 的 gas 燃烧机制可以降低以太坊的供应量,缓解以太坊的通货膨胀。虽然 EIP-1599 提案并不意味着用户所需支付 gas 费用的降低,但是可以让用户更清楚地了解他们提交交易时需要支付的费用,并避免支付不必要的 gas 费用,进而改善用户体验。

2021 年 8 月,以太坊“伦敦”硬分叉升级的完成,表明了绝大多数矿工接受了 EIP-1599 提案, EIP-1599 提案正式生效。

结论

以太坊作为一个去中心化的、由多人维护的网络,想要在社区内达成共识相当不易。尤其是以太坊的每次升级或改进提案均可能来自不同的声音,因此提案格式化、流程标准化以及让更多人认识到提案的重要性显得尤为重要。

自 2015 年以太坊诞生以来,来自世界各地的开发者们提出了诸多的 EIP 提案以帮助改进以太坊网络。参与者越来越多,提案也各有侧重,标准化的提案流程更显重要,每一项提案都需要经过社区成员的检验并达成共识才可通过。正是借助 EIP 提案这样的机制,以太坊得以持续优化,坐实了如今第一公链的地位。

作者: Pigfly
译者: Yuanyuan
文章审校: Edward, hugo, Cecilia
* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。
* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。