亲爱的朋友们,大家好!欢迎阅读第38 期EIP Fun周刊。
介绍:EIP 与 EIP Fun
EIP 是 “Ethereum Improvement Proposal” 的缩写,翻译成中文为“以太坊改进提案”,也即以太坊的技术标准。EIP Fun 由 LXDAO 和 PlanckerDAO 支持创建。我们致力于连接以太坊的建设者与爱好者们,促进 EIP 的采用。
EIP Fun 周刊是为此所做的努力之一。一周一期,它关于以太坊改进提案(EIP),关注已经发生、正在发生、和将要发生的 EIP 故事。
为了阅读体验,我们在微信版周刊中略去了绝大部分链接。如果你有兴趣继续了解相关内容,请点击上方链接或点击文章左下角的“阅读原文”,进入 EIP Fun 的 Substack 以获得完整内容(英文版)。
正文
大家好!欢迎阅读 EIP Fun 周刊第 38 期。让我们来看看本周 EIP 社区都发生了什么吧。
1.EIP 更新
先来回顾本周的一些关键会议和 EIP 的正式状态变更吧。
AllCoreDevs 共识层会议(ACDC) :第 129 期
AllCoreDevs 会议分为两个部分:ACDC(关注共识层)和 ACDE(关注执行层)。这两个会议每周轮流召开,以协调和决定以太坊协议层以及硬分叉事务。协议层标准的创作者们通常会在这个会议上与核心开发者一起讨论 EIP。
录屏链接:
https://www.youtube.com/watch?v=imBLUhGYnWs
会议摘要:
1.Dencun 升级准备
(1)一些客户端团队分享了他们发布升级的新推荐版本的计划,包括 Prysm、Lighthouse 和 Teku 。
(2)验证者对于升级的准备也是一个关注的问题,根据 Metrika 和 Ethernets 等数据,大约 50% 的 Flashbots 中继验证者和整个以太坊节点已经接近完成状态。
(3)有人提出了希望一个专门跟踪验证者节点升级准备状况的数据工具。
2.Electra EIP 讨论
(1)EIP-7549 旨在提高验证效率,已经同意将其纳入 Pectra 升级中,将在 GitHub 上对其实施的进一步分析和反馈。
(2)同时,会议还讨论了 EIP-7547(包含列表)和 EIP-7251(增加最大有效余额 maxEB )期待客户端团队在下一个 ACDC 会议中对此做出明确的决定。
3.区块价值信标链 API 标准化
(1)在讨论中,Nimbus 开发者 Dustin 提出了对不同的 CL 客户端中 Beacon API 端点 "produceBlockV3" 和 "getBlockRewards" 缺乏标准化的担忧。Dustin 强调了计算块值时未明确的领域和不一致性。
(2)Ryan 同意在 Beacon API 中增加澄清说明,但其他开发者,包括来自 Prysm 团队的 Radosław Kapka 和 Potuz ,对标准化的必要性表示怀疑,因为这些端点的使用者数量有限。
(3)Nimbus 的 Jacek Sieka 认为 "produceBlockV3" 端点对于比较多个块来源是必要的。Ryan 建议 Dustin 提出一个提案来标准化这些端点,然后客户端团队可以讨论是否继续支持它们。
了解更多
第129次“以太坊全核心开发者共识层会议”总结,来自Christine Kim
https://www.galaxy.com/insights/research/ethereum-all-core-developers-consensus-call-129/
EIP 编辑问答会:第 33 期
EIP 编辑问答会每两周举行一次,旨在汇聚 EIP 编辑和作者们,就 EIP 创作过程中出现的任何问题进行讨论与合作。如果你在撰写和提交 EIP 时遇到任何困难,请随时在每次会议的固定议程帖中留言,或者直接加入会议。
录屏链接
https://www.youtube.com/watch?v=Mc5ElkMQYos&list=PL4cwHXAawZxqnDHxOyuwMpyt5s8F8gdmO&index=1
以下是在本周会议上获得状态变更的 EIP:
ERC-7590:用于 NFT 的 ERC-20 持有者扩展
状态:草稿 → 社区评议
摘要:本提案扩展了 ERC-721,以便方便地交换 ERC-20 代币。通过增强 ERC-721,它使得在一个单独的 NFT 内管理和交易可互换的 ERC-20 代币成为可能。这通过引入将 ERC-20 代币引入特定 NFT 合约并由 NFT 所有者转移出去的方法来实现。为了解决潜在的前置交易问题,还包括了一个转移出去的 nonce 。
ERC-7007: 可验证的 AI 生成内容代币
状态: 草稿 → 社区评议
摘要: 该提案引入了一个灵活且具有版本控制的容器格式,用于以太坊虚拟机(EVM),仅在部署时进行一次验证。我们在这里描述的版本具有将代码和数据分离的重要优势,使得未来实施各种变化更容易。此实现依赖于 EIP-3541 引入的保留字节。
ERC-7092:金融债券
状态: 终审 → 终稿
摘要: 本提案旨在引入具有特定功能的固定收益金融债券,以支持主要市场中的债券发行,并促进二级市场中的债券买卖。此外,它还包括跨链功能,以便在多个区块链上进行债券操作和管理。
2. EIP 一周热点
接下来,让我们一起看看本周与 EIP 相关的新应用或作品。
EIP-4672: NONCE opcode
该 EIP 引入了一个额外的 EVM 操作码,即 NONCE(0x47),它可以提供新的防止 Sybil 攻击的保护措施,并扩展智能合约的设计可能性。该操作码会返回特定的值,例如:对于未使用的外部拥有地址(EOA),返回 0 ;对于智能合约地址,返回 0 ;对于已发送了 3 笔交易的 EOA ,则返回 2 。account.nonce 操作码会准确跟踪最近一笔来自该地址的交易的 nonce 值。
潜在用例
增强智能合约设计:NONCE 操作码的可用性扩展了智能合约的设计空间。开发人员可以利用该操作码创建更复杂、更安全的合约功能。例如,可以使用它来实现访问控制机制,根据发送者地址的特定 nonce 只允许执行特定的操作。
增强 NFT 所有权验证:在 NFT 领域,可以利用 NONCE 操作码增强所有权验证,并防止唯一数字资产的重复消费。通过监控地址的 nonce ,更容易验证所有权,并确保令牌的安全转移和无重复。
DeFi 和用户管理:DeFi 应用可以通过 NONCE 操作码实现用户管理和协议治理。可以根据地址的 nonce 管理用户操作,例如投票或参与质押,确保仅执行经过授权和有效的操作。
账户状态验证:NONCE 操作码可以辅助验证用户账户的状态。通过将操作码返回的 nonce 与预期的 nonce 进行比较,应用程序可以确保账户状态一致,并防止任何未经授权的账户活动。
了解更多
FEM (Fellowship of Ethereum Magicians) 论坛中的相关讨论:
https://ethereum-magicians.org/t/eip-4672-nonce-opcode/8171
EIP-7069: 重构的 CALL 指令
提案引入了三个新的 CALL 指令(CALL2,DELEGATECALL2 和 STATICCALL2 ),具有简化的语义。还包括一个新的指令(RETURNDATALOAD),用于从返回值中加载数据,并删除了过时的功能。gas 限制由 "63/64th rule" 确定,并通过一系列代码返回执行状态。这些变化旨在提高合约执行效率和 gas 优化,同时保持对现有合约的兼容性。
提案背景
在以太坊生态系统中,gas 的可观察性一直是一个长期存在的问题。gas 系统必须保持灵活,以适应以太坊使用和底层硬件的变化。不幸的是,由于具有复杂语义,为了防止对 CALL 指令产生负面影响,经常需要做出妥协和变通的解决方法。这个提议旨在从新的指令中移除对 gas 的可观察性,使得可以创建不受 gas 重新定价影响的新合约。
此外,随着 EVM Object Format(EOF)的引入,可以在 EOF 合约中拒绝使用旧的 CALL 指令,确保 gas 费用的变化对合约的影响最小。在 EOF 存在的情况下,这些用于移除 gas 可观察性的操作将成为强制要求,取代现有的指令。值得注意的是,从 Solidity 0.4.21 开始,编译器已经将所有可用的 gas 传递给调用,除非开发人员明确使用 overrides 控制 gas。这表明大多数合约不依赖于控制 gas。
除了与 gas 相关的变化,这个提议引入了更详细的状态码的便利性,从简单的布尔选项转向了用于成功(0)、还原(1)和失败(2)的可扩展状态码。此外,根据 EIP-21 1提议,RETURNDATA 指令的引入大大减少了调用的输出参数的使用。过去在输出缓冲区的使用中曾引起问题,例如 ERC-20 合约中的冲突实现。依赖于 RETURNDATA 指令隐式地解决了这个问题。该提议还通过包括 "missing" 的 RETURNDATALOAD 指令,以获取全面的 returndata 缓冲区访问指令,解决了这个问题。
了解更多
FEM (Fellowship of Ethereum Magicians) 论坛中的相关讨论:
https://ethereum-magicians.org/t/eip-7069-revamped-call-instructions/14432/2
3.EIP 趣闻:Dencun 升级
图片来源:https://giphy.com/gifs/starwars-movie-star-wars-3ofSB5PPO4cbZMK796
在所有测试网络上成功激活后,Dencun 网络升级已准备好在以太坊主网上部署。其将于 2024 年 3 月 13 日 13:55 UTC ,在以太坊主网的第 269568 个区块上激活。本次升级主要包含三个方面:执行层的优化,共识层的优化和 protodanksharding。
执行层优化
EIP-1153 临时存储操作码:该提案引入了临时存储操作码,通过两个新的操作码 TLOAD 和 TSTORE ,智能合约可以访问临时存储,而无需从磁盘访问,因而更加便宜。
EIP-5656 MCOPY - 内存复制指令:该提案介绍了一种名为 MCOPY 的新内存复制指令。该指令允许智能合约在内存中进行数据复制操作,以提高执行效率和灵活性。通过使用 MCOPY 指令,智能合约可以更高效地在内存中复制数据,而无需使用传统的循环或其他复制方法。这可以减少合约代码的复杂性,并提高执行速度。MCOPY 指令为智能合约开发者提供了更多的选择和优化空间,以满足不同的内存操作需求。
EIP-4788 在以太坊虚拟机(EVM)中引入信标块根:信标块根是以太坊 2.0 中的一个关键概念,用于连接以太坊区块链和信标链。此提案的目标是使 EVM 能够访问和验证信标链的状态信息,包括验证人集合和共识规则。通过引入信标块根,智能合约可以与以太坊 2.0 网络进行更密切的互动,并为开发者提供更大的灵活性和创新空间。这将为智能合约开发者带来更多机会来利用以太坊 2.0 的功能和升级,并为以太坊生态系统带来更丰富的应用场景。
EIP-6780 仅在同一交易中允许使用 SELFDESTRUCT 指令:在当前的以太坊网络中, SELFDESTRUCT 可以在任何交易中使用,允许合约自我毁灭并释放占用的存储空间。然而,这种自我毁灭的功能也可能被滥用。根据 EIP-6780,该提案建议限制 SELFDESTRUCT 指令的使用,使其仅限于同一交易中进行。这意味着合约只能在当前交易的上下文中执行自我毁灭操作,并且不再允许在其他交易中使用 SELFDESTRUCT 。通过限制 SELFDESTRUCT 的使用范围,这个提案旨在提高合约的安全性和可预测性,减少潜在的滥用风险。
共识层优化
EIP-7044 永久有效的签名自愿退出:在以太坊 2.0 的信标链中,验证人可以选择自愿退出验证人角色。此提案的目标是确保由验证人签名的退出请求可以永久有效,并且不会受到将来的状态更改的影响。通过引入永久有效的签名自愿退出概念,EIP-7044 提案旨在提供更强大的退出机制,确保验证人可以自由地退出并获得他们应得的权益,而不会受到未来的变化或潜在的不公平影响。
EIP-7045 增加最大的证明包含槽位:当前以太坊网络的设计中,每个验证人只能将自己所在时间槽位的证明广播给网络。通过增加最大的证明包含槽位数量,验证人将有更大的灵活性,并能够广播多个时间槽位的证明。这个提案的目的是提高信标链的性能和扩展性,使验证人能够更高效地广播证明和参与网络活动。增加最大的证明包含槽位数量有助于减少网络通信的负担,并支持更多的验证人参与到信标链的运作中。
EIP-7514 增加最大时期变动限制:该提案引入了最大时期变动限制的概念,这个限制设定了每个时期中待验证验证人转变为活跃验证人的最大数量限制。如果在某个时期中待验证验证人的数量超过了最大限制,超过部分的待验证验证人将不会被选中成为活跃验证人,直到下一个时期。通过添加最大时期变动限制,EIP-7514 旨在控制验证人转换的速度,以确保网络的稳定性和安全性。这个限制可以防止过快的验证人转变,从而降低网络的不稳定性和潜在的攻击风险。总体而言,EIP-7514 提案旨在提供对验证人转变过程的更好控制,并增强信标链的性能和健壮性。
Protodanksharding
EIP-4844 分片 Blob 交易:在以太坊 2.0 中,分片是为了将区块链的负载分散到多个分片区域,以提高可扩展性和吞吐量。然而,目前的以太坊网络仅支持对整个分片进行操作,而不是对分片中的特定数据进行处理。通过引入 Blob 交易的概念,旨在提高以太坊 2.0 网络的灵活性和可扩展性。这使得在分片网络中处理特定数据变得更加高效和可行,提供了更多的数据操作选项,同时降低网络的负载和延迟。这有助于推动以太坊网络的进一步发展和广泛应用。
EIP-7516 BLOBBASEFEE 简介:该指令允许智能合约从当前的基础费用中读取信息。通过使用 BLOBBASEFEE 指令,智能合约可以获取当前交易执行的基础费用,并根据需要进行相应的操作。这个提案的目的是提供更高的灵活性和可访问性,使智能合约能够更有效地管理和调整费用。
4. 会议预告
Ethereum Cat Herders 会议 第 127 期
-
时间为 3 月 12 日,16:00 UTC+0(北京时间 24 点)
-
想要了解更详细的会议议程,可以浏览 GitHub 相关议题:
https://github.com/ethcatherders/PM/issues/394
EIPIP 会议 第 101 期
-
时间为 3 月 13 日,17:30 UTC+0(北京时间 3 月 14 日 1:30)
-
想要了解更详细的会议议程,可以浏览 GitHub 相关议题:
https://github.com/ethcatherders/EIPIP/issues/316
AllCoreDevs 执行层会议 第 183 期
-
时间为 3 月 14 日,14:00 UTC+0(北京时间 22 点)
-
想要了解更详细的会议议程,可以浏览 GitHub 相关议题:
https://github.com/ethereum/pm/issues/976
内容 | Zoe
编辑&排版 | Cikey, tiao, Zoe
设计 | WangTeng