EIPs 翻译
由于时间和精力有限,我们会先筛选一些大家认为重要的 EIP 进行翻译,最后和官方合并。你可以从这儿简单地看到各个 EIP 的状态:https://eips.ethlibrary.io/
翻译入口
方法 1: 通过 GitHub PR(推荐)
方法 2: 直接在 Notion 上进行操作
你只需将翻译的文档(google doc)/ notion 页面,放在对应的文档链接即可
Default view
ERC 相关 EIP
Name
翻译文档链接
翻译者
状态
Default view
硬分叉相关 EIP
😛 Code Name
⏭ Related EIP
遇到的问题
翻译者
状态
🇨🇳 Related EIP - CN version
⏳ Phases
⏰ Releasing Block
翻译文档链接
testnet
🤔 Impact
📆 Releasing date
🔗 reference
All core dev meeting
🇨🇳 Impact - CN version
0
The Frontier protocol contained a series of crucial characteristics:
Block Reward: When miners successfully mines a block into existence on the Ethereum blockchain, they receive a reward in ETH. Frontier was launched with block reward of 5 ETH per block.
Gas: During the first few days of Frontier’s existence, the gas limit per block was hardcoded at 5000 gas. Basically, this meant nothing could happen on the network. This was purposefully implemented to give a few days of buffer time to allow miners to start their operations on Ethereum and to allow early adopters to install their clients. After a few days, the gas limit was automatically removed and the network became capable of handling transactions and smart contracts as it was meant to.
Canary Contracts: Canary contracts were included into Frontier to notify users that a particular chain was bad or vulnerable. Canary contracts were given either a 0 or a 1. Contracts that had an issue were given a 1 and clients were notified so they would not mine off that broken chain. Essentially, the canary contracts capabilities gave the core Ethereum dev group the ability to stop an operation or transaction on the network should something begin to go wrong. Canary contracts were a heavily centralized but necessary protection mechanism early in Ethereum’s existence.
Usability: All developer actions were done with command lines; there was no Graphical User Interface in existence. The network was usable, but the UI was rough and its capabilities were largely limited to people with existing knowledge and experience with Ethereum. (source)
2015-07-30
Frontier 协议包含以下几个关键特性:
区块奖励:当矿工们在以太坊区块链上成功挖到一个区块时,他们将收到以 ETH 发放的奖励。在 Frontier 阶段,矿工的区块奖励是每区块 5 ETH。
Gas:在 Frontier 发布后的初期,每个区块的 Gas 上限被硬编码为 5000 gas。说白了,这就意味着网络上不会有什么大动作。这样就留出了一段缓冲期,以便矿工开始在以太坊上工作,并让早期用户安装客户端。几天后,该 Gas 上限自动解除,网络可以按照计划开始处理交易和智能合约。
Canary 合约:Canary 合约被纳入了 Frontier ,用以告知用户哪些链已遭受或易遭受攻击。Canary 合约被会赋予 0 或 1 的值。如果合约被赋值 1,客户端就能识别出这是一条出错的链,并在挖矿时避开这条无效链。本质上来说,Canary 合约的这些功能使得以太坊核心开发团队在网络出现问题时能够暂停网络的运行。在以太坊早期阶段,Canary 合约是一个极度中心化却又不可或缺的保护机制。
可用性:所有开发者的操作均通过命令行来执行,因为没有图形用户界面。整个网络是可用的,但用户界面非常粗糙,只有熟悉以太坊并具备操作经验的人才有能力使用。
EIP-2: Homestead Hard-fork Changes
EIP-7: DELEGATECALL
EIP-8: devp2p Forward Compatibility Requirements for Homestead
0xmiracle
✅
EIP-606:硬分叉修改提案:Homestead
1,150,000
First, it removed the canary contract functionality, removing that point of centralization on the network. Second, it introduced new codes in Solidity, the programming language used on Ethereum. Last, it introduced the Mist wallet, which allowed users to hold/transact ETH and write/deploy smart contracts.
The Homestead upgrade was one of the earliest implementations of Ethereum Improvement Proposals. EIPs are recommendations made to the community that then, if approved, are included in network upgrades. The Homestead upgrade included three
EIPs:
EIP-2: Main Homestead upgrades
EIP 2.1: Increased the cost for creating smart contracts via a transaction from 21,000 gas to 53,000 gas. The cost to create a contract via another contract — the preferred method — had cost more than creating it via a transaction. By increasing the gas cost to create contracts via transactions, EIP 2.1 incentivized users to return to creating contracts via other contracts.
EIP 2.2: “All transaction signatures whose s-value is greater than secp256k1n/2 considered invalid. The ECDSA recover precompiled contract remained unchanged and kept accepting high s-values; this is useful e.g. if a contract recovers old Bitcoin signatures.” [source]
EIP 2.3: Dictated that if a contract did not have enough gas to complete the operation, the contract would “fail” rather than create an empty contract. This changed the possible outputs of a transaction from [success] [fail] or [empty] to just [success] or [fail].
EIP 2.4: Eliminated an incentive that allowed users to create blocks with slightly higher difficulty — i.e. blocks that would be more likely to be mined. This upgrade stabilized block times between 10–20 seconds and restored the network to its overall target time of ~15 seconds per block.
EIP-7
“Adds a new opcode, DELEGATECALL at 0xf4, which is similar in idea to CALLCODE, except that it propagates the sender and value from the parent scope to the child scope, ie. the call created has the same sender and value as the original call.” [source]
EIP-8: Future Upgrades
EIP-8 was an Improvement Proposal with an eye towards future, planned network upgrades. The improvement ensured all client software on Ethereum could accommodate future network protocol updates.
2016-03-15
Homestead 升级主要包括对以太坊的三大重要改进措施。首先,它移除了 Canary 合约,去除了网络中的中心化部分。其次,它在以太坊的合约编程语言 Solidity 中引入了新代码。最后,它引入了 Mist 钱包,让用户能持有/交易 ETH 并编写/ 部署智能合约。
EIP-2:Homestead 核心升级
EIP 2.1:将通过交易创建智能合约的成本从 21000 Gas 提高到 53000 Gas。之前,通过合约来创建合约(首选办法)的成本比通过交易创建合约的成本更高。由于通过交易创建合约的 gas 成本提高,EIP 2.1 激励用户重新采用通过合约来创建合约的方法。
EIP 2.2:“所有 s 值大于 secp256k1n/2 的交易签名被视为无效。ECDSA 恢复预编译合约保持不变并接受较高的 s 值;在有合约需要恢复旧的比特币签名之类的情况下,这一功能就派上用场了。” [来源]
EIP 2.3:明确规定了,如果一个合约没有收到足够的 Gas 来完成整个操作过程,合约创建将 会“失败”,而非创建一个空白合约,使得交易可能的输出结果由原来的 [成功]、[失败] 或 [空] 变为 [成功] 或 [失败]。
EIP 2.4:取消了对用户创建难度值较高的区块的激励,从而增加挖到区块的概率。这一升级将出块时间稳定在 10 秒到 20 秒,并将整个网络恢复到大约 15 秒的目标出块时间。
EIP-7
“在 0xf4 中新增了一个操作码,DELEGATECALL。该操作码与 CALLCODE 类似,不同之处在于它将发送方和数值从父作用域发送到子作用域,也就是说,被创建的调用与原始调用拥有相同的发送方和数值。”[来源]
EIP-8:面向未来的升级
EIP-8 是一项着眼于未来的网络升级计划改进提案。这一改进确保以太坊网络上所有的客户端软件都能适应未来的网络协议升级。
EIP-779: Hardfork Meta: DAO Fork
0xmiracle
✅
EIP-779: Hardfork Meta: DAO 分叉
1,920,000
In 2016, a Decentralized Autonomous Organization called The DAO raised $150 million USD in a token sale for funding. In June, the DAO was hacked and $50 million worth of ETH was stolen by an unknown hacker. The Ethereum community at large decided to hard fork the chain in order to restore the funds to their original wallets and patch the vulnerability. The hard fork, however, was contentious, and some in the Ethereum community continued to mine and transact on the original chain.
The original chain — with the stolen ether not returned — became Ethereum Classic, which has become weaker and subject to exploitation over time. The majority of the community and the core developers continued working off the forked chain — with the stolen ETH returned to their original owners — which is what we now know as the Ethereum blockchain.
2016-07-20
在 2016 年,一个名为 The DAO 的去中心化自治组织通过代币发售筹集了 1.5 亿美元资金。在6 月,The DAO 被黑客攻击,有价值 5000 万美元的 ETH 被一位不知名的黑客劫走。以太坊社区的大多数参与者决定实行硬分叉,恢复钱包中被盗的 ETH 并修补漏洞。然而,硬分叉没有得到社区内所有参与者的一致认可,还有部分参与者继续在那条 原始 链上挖矿并交易。
未恢复被盗 ETH 的 原始 链被称为以太经典(ETC),久而久之,其安全性逐渐降低,挖矿难度也在下降。社区的大部分参与者以及核心开发者则继续在分叉链上工作——被窃的 ETH 回到了它们原本的持有者手中——这就是我们现在熟知的以太坊区块链。
EIP-608: Hardfork Meta: Tangerine Whistle
EIP-150: Anti-DoS
预计 block 2457000,但是为了避免漏洞,增加和拓展更多漏洞
EIP-608: Hardfork Meta: 橘子口哨
2,463,000
2016-10-18
EIP-608: Hardfork Meta: Tangerine Whistle
EIP-155: Simple replay attack protection
EIP-160: EXP cost increase
EIP-161: State trie clearing (invariant-preserving alternative)
EIP-170: Contract code size limit
EIP 607: Hardfork Meta: Spurious Dragon 伪龙硬分叉
2,675,000
2016-11-23
以下的 EIP 描述了这次硬分叉所做的协议变更。
EIP 155:重放攻击保护 —— 防止了在一个以太坊链上的交易被重复广播到另外一条链。例如:如果你在 Morden 测试网络上发送了 150 测试以太币给某人,同一个交易无法被从重复发送在以太坊主链上。重要标注:EIP 155 是向后兼容的,所以在”伪龙“之前的交易格式也被接受。然而,为了保证你被保护不会被重放攻击,你应该使用一个使用了 EIP 155 构架的钱包解决方案。注意:这里的向后兼容也表示,发生在没有使用 EIP 155 的基于以太坊的区块链(例如以太坊经典)上的交易仍可能重放攻击以太坊主链。
EIP 160:EXP 费用增加——调整了‘EXP’ opcode 的价格,这个改变平衡了 ‘EXP’ 的价格和它的计算复杂性,总的来说提升了使用这种复杂性计算合约来拖慢整个网络的难度。
EIP 161:状态打扫——让清除大量由于先前 DoS 攻击生成的空账号。在这个改造提议下,”空账号“会在被另一个交易”接触后“被清除。清除这些空账号会大量减少区块链状态的大小,这会提供客户端优化方案来提升同步时间。真正的清除过程会在分叉之后,当我们系统性得开始”CALL“这些因为攻击而生成的空账号。
EIP 170:合约代码大小限制——改变了一个同月在区块脸上代码大小限制的上限。这次更新可以阻止大量账户代码在定量的gas花费下来攻击网络的场景。大小的上限被设置为24576比特,这比所有现在被部署的合约都大。(来源)
EIP 100: Change difficulty adjustment to target mean block time including uncles
EIP 140: REVERT instruction
EIP 196: Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128
EIP 197: Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128
EIP 198: Big integer modular exponentiation
EIP 211: New opcodes: RETURNDATASIZE and RETURNDATACOPY
EIP 214: New opcode STATICCALL
EIP 649: Metropolis Difficulty Bomb Delay and Block Reward Reduction
EIP 658: Embedding transaction status code in receipts
✅
4,370,000
EIP 100
Adjusted the formula to assess the difficulty of a block to take into account uncle blocks. The new formula provided stability to the issuance rate, ensuring it could not be forced upward by manipulating uncle blocks.
EIP 658
For blocks following the Byzantium upgrade, transaction receipts included a status field to indicate success (represented by 1) or failure (represented by 0).
EIP 649
The Difficulty Bomb is a mechanism that, if activated, would increase the energy required (i.e. the ‘difficulty) to mine a new block until it becomes impossible and no new blocks can be mined. At this point, the Ethereum network would become ‘frozen.’ The Difficulty Bomb was originally included in the network in September 2015. Its purpose is to support the eventual transition away from Proof of Work towards Proof of Stake. When PoS is implemented, miners could theoretically choose to support the old PoW chain, thus causing a split in the community and the creation of two separate chains — one maintained by stakers and one maintained by miners. The solution for this not to happen is to implement the Difficulty Bomb, which would eventually phase out the efficacy of mining and allow for the complete transition of the network over to PoS without the threat of a contentious hard fork. Delay of the ice age / difficulty bomb by 1 year, and reduction of block reward from 5 ETH to 3 ETH
An overview of the remaining Byzantium EIPs (140, 196, 197, 198, 211, 214) found here.
2017-10-16
其中包括 9 个 EIPs:
EIP 100
调整公式以评估将叔块考虑在内的区块难度。新公式为保证了区块产生速度的稳定性,确保无法通过操纵叔块来强制增加区块高度。
EIP 658
对于拜占庭硬分叉升级后的区块,交易收据包括了一个状态字段,用于表示成功(由 1 表示)或失败(由 0 表示)。
EIP 649
“难度炸弹”(Difficulty Bomb)是这样一种机制:一旦被激活,将增加挖掘新区块所耗费的成本(即“难度”),直到难度系数变为不可能或者没有新区块等待挖掘。此时,以太坊网络将处于“冻结”状态。“难度炸弹”机制最初于2015年9月被引入以太坊网络。它的目的是为以太坊最终从工作量证明(PoW)转向权益证明(PoS)提供支持。从理论上来说,未来在 PoS 机制下,矿工仍然可以选择在旧的 PoW 链上作业,而这种行为将导致社区分裂,从而形成两条独立的链:PoS 链由验证人(stakers)维护,PoW 条则由矿工维护。为了预防这种情况的发生,“难度炸弹”机制应运而生。通过增加难度,它将最终淘汰 PoW 挖矿,并催使网络完全过渡到PoS机制,并且在这个过程中避免了产生具有争议的硬分叉。在此建议中,也被称作“冰河时期”的“难度炸弹”时期将延迟一年,并且区块奖励从 5 ETH 减少到 3 ETH。
了解其他拜占庭硬分叉 EIPs(140, 196, 197, 198, 211, 214)可以查看这里。
EIP 145: Bitwise shifting instructions in EVM
EIP 1014: Skinny CREATE2
EIP 1052: EXTCODEHASH opcode
EIP 1234: Constantinople Difficulty Bomb Delay and Block Reward Adjustment
EIP 1283: Net gas metering for SSTORE without dirty maps
7,280,000
EIP 145: Bitwise Shifting Instructions
Added Bitwise shifting instructions to the Ethereum Virtual Machine (EVM). The instructions allow for bits of binary information to move to the left and to the right. This improvement means the execution of shifts in smart contracts will be 10x cheaper.
EIP 1052: Smart Contract Verification
Allowed for smart contracts to verify one another by pulling just the hash of the other smart contract. Before Constantinople, smart contracts would have to pull the entire code of another in order to verify, which took time and energy to perform.
EIP 1014: CREATE2
Improved the enablement of state channels, an Ethereum scaling solution based on off-chain transactions.
EIP 1283: SSTORE
Reduced the gas cost for the SSTORE operation. This reduction enables multiple updates to occur within a transaction more cheaply.
EIP 1234: Block Rewards & Difficulty Bomb Delay
Comprised of two components: Block Reward Reduction and Difficulty Bomb Delay.
Block Reward Reduction
Rewards for miners were reduced from 3 ETH per block to 2 ETH per block. This reduction is known as the “Thirdening.”
Difficulty Bomb Delay
EIP 1234 delays the implementation of the Difficulty Bomb for another twelve months, at which point it will be voted upon again.
2019-02-28
其中主要的 EIPs 包括:
EIP 145:按位移动指令
在以太坊虚拟机(EVM)上增加按位移动指令。这个指令允许二进制信息左右移动。这个改进意味着智能合约的变更执行将便宜 10 倍。
EIP 1052:智能合约验证
允许智能合约只需通过检查另一个智能合约的哈希值来验证彼此。在君士坦丁堡升级之前,智能合约必须提取另一个合约的整个代码才能进行验证,而这样的验证方式需要花费大量时间和精力。
EIP 1014:智能合约函数 CREATE2
使得状态信道更易实现。状态信道是基于“链下”(off-chain)交易的以太坊扩容解决方案。
EIP 1283:SSTORE 操作码
减少 SStore 操作码的 GAS 耗费。这使得交易中多个更新操作的价格更加友好。
EIP 1234:区块奖励&难度炸弹
此改进提案包含两大内容:减少区块奖励和延迟难度炸弹。
减少区块奖励:
将区块采矿奖励从每块3 ETH减少到2 ETH。这个改变也被称作“Thirdening”,即以太坊第三次区块奖励减半。
推迟“难度炸弹”:
EIP 1234 将“难度炸弹”时期推迟 12 个月,届时将会进行再次投票。
EIP 152: Add BLAKE2 compression function
F
precompile
EIP 1108: Reduce alt_bn128 precompile gas costs
EIP 1344: ChainID opcode
EIP 1884: Repricing for trie-size-dependent opcodes
EIP 2028: Transaction data gas cost reduction
EIP 2200: Structured Definitions for Net Gas Metering- Ropsten 测试链出现分裂,分成了两个独立的链,此外 680 个Aragon 智能合约也遭到破坏。
EIP 152: 添加 BLAKE2 压缩函数 (compression function)
F
预编译7,280,000
2019-12-08
EIP-2387: Hardfork Meta: Muir Glacier
EIP-2384: Muir Glacier Difficulty Bomb Delay
EIP-2387: Hardfork Meta: 缪尔冰川
9,200,000
2020-01-01
EIP-2565: ModExp Gas Cost
EIP-2929: Gas cost increases for state access opcodes
EIP-2718: Typed Transaction Envelope
EIP-2930: Optional access lists
预计 2020 年 7 月分叉,延迟分叉:客户端用户过于集中,减少对 Geth 客户端的依赖
EIP-2565: 变更 求模/求幂 运算的 Gas 开销
12,244,000
Ropsten I 9 812 189 I 10 Mar 2021
Goerli I 4 460 644 I 17 Mar 2021
Rinkeby I 8 290 928 I 24 Mar 2021
2021-04-15
EIP-1559: Fee market change for ETH 1.0 chain
EIP-3198: BASEFEE opcode
EIP-3529: Reduction in refunds
EIP-3541: Reject new contract code starting with the 0xEF byte
EIP-3554: Difficulty Bomb Delay to December 2021
难度大,实现和测试的时间都比以往的短
Shawn
✅
EIP-1559: ETH 1.0 链的费用市场改革
12,965,000
Ropsten I 10499401 I June 24, 2021
Goerli I 5062605 I June 30, 2021
Rinkeby I 8897988 I July 7, 2021
2021-08-05