OpenZeppelin合约 v5.2 发布

OpenZeppelin发布了5.2版合约,增强了跨链互操作性和账户抽象框架,推出了ERC-4337和ERC-7579等新功能。社区合约库加强了这些标准的实验性实现,支持跨链消息传递,并提供了易于使用的工具和文档,旨在促进智能合约开发者的快速迭代和协作。

OpenZeppelin 团队很高兴发布 Contracts 5.2 版本,这个版本包括了一组由我们提供 跨链 功能和 账户抽象 框架的倡议驱动的变化。这次发布具有 ERC-4337 合约、ERC-7579 账户模块和用于运行时独立识别的 CAIP 标识符的实用工具。 本次发布与社区拥有的 OpenZeppelin Community Contracts library 中托管的更多实验性开发并行进行。这个更实验性的版本旨在更快地迭代上述倡议。

这些新版本为开发者提供了一个开发平台,开发者能够构建账户并通过 Axelar Network 发送跨链消息,并通过智能合约开发的黄金标准库保障其安全性。

新特性

Solidity 合约

  • ERC-4337 合约和 ERC-7579 模块的实用工具
  • 使用 GovernorCountingOverridable 和 VotesExtended 扩展治理功能
  • 通过 CAIP-2 和 CAIP-10 标识符构建和操作以更好地实现 chainId 和地址的互操作性
  • Strings 库中的新解析函数
  • 使用 Clones 库部署带有不可变参数的克隆

https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.2.0

社区合约

  • ERC-7786 Axelar Network 网关适配器的实现,以在链之间发送和接收通用消息
  • 使用 ERC7786Receiver 接收通过 ERC-7786 网关转发的消息
  • 遵循 ERC-7802 的 ERC20Bridgeable 代币实现
  • 支持 ERC-7702 账户的灵活且可扩展的账户抽象框架,以及 ECDSA、P256 和 RSA 等多种签名方案的支持
  • 最小化逻辑的 ERC-7821 执行者实现,用于批处理调用
  • 使用 ERC7739Utils 和 ERC7739Signer 为智能账户提供签名重放保护
  • 适用于机构用例的 ERC-20 拓展,如 ERC20Allowlist、ERC20Blocklist、ERC20Custodian 和 ERC20Collateral

https://github.com/OpenZeppelin/openzeppelin-community-contracts

社区合约

多个努力已经出现,以通过以太坊请求评注(ERC)提案更好地协调兼容性。同时,我们识别了需要我们合约库的更实验性版本,以放松向后兼容性限制,从而促进这些新兴 ERC 的更快迭代。

为构建一个与社区共同拥有的项目,团队参与了以下两个目标的努力:

  • 确保通过标准化机制、实用工具和智能合约实现 跨链互操作性
  • 在高度多样化的智能账户实现市场中提供 账户抽象 框架

基于本次发布的倡议,OpenZeppelin 提供了并接收了构建在标准如:

  • ERC-7786 用于发送和接收跨链消息
  • CAIP-2 和 CAIP-10 使开发者更容易识别地址和链
  • ERC-4337 用于账户抽象功能
  • ERC-7579 用于智能账户的模块化
  • ERC-7739 用于签名重放保护
  • ERC-7821 用于最小批量执行

这些标准的实现可以在 OpenZeppelin Community Contracts 中找到。

由 Axelar Network 提供的跨链互操作性

最近,OpenZeppelin 和 Axelar 宣布联合努力 开发开源实现和标准,以解决跨链互操作性挑战。因此,我们与 Axelar 和 Interop Labs 合作发布了 ERC-7786,旨在为智能合约应用提供最佳开发者体验,处理通用消息传递。

ERC-7786 定义了一项提案,允许用户利用具有自定义属性的桥接特性,同时提供“只需通过一个消息”的通用访问。

该标准在 Axelar Network 的基础上实施,并与 Interop Labs 共同努力设计和实现允许开发者在其智能合约应用上发送和接收消息的协议适配器。

carbon (36)

开发者可以从 AxelarGatewaySource 调用 sendMessage 函数,该函数包含在 AxelarGatewayDuplex 中。

为了启用消息接收,智能合约可以从 ERC7786Receiver 继承,该类也包含在库中:

carbon (37)

构建 ERC-4337 账户的表达框架

ERC-4337 作为实现账户抽象的首选方法已逐渐成型。该提案提供了一个替代的内存池,通过入口合约处理用户操作,已经引起了流行账户实现和基础设施提供者的极大关注。

过去,这些实施背后的大多数团队要么协调提出标准以通过模块支持自包含的账户功能,要么实施自己的 Solidity 版本来满足自身基础设施的需求,导致了用于构建智能账户的各种替代设计。

考虑到这种情况,OpenZeppelin Community Contracts 发布了一个构建兼容 ERC-4337 账户的框架,具有详细文档的 API,开发者可以利用它来加速新账户设计的开发。

该框架目前包括处理用户操作的基本账户逻辑,最小批量执行逻辑,具有相同所有者的账户的重放保护等。

carbon (38)

开发者可以通过我们提供的 ECDSA、P256 和 RSA 签名算法自定义其验证逻辑,允许为常用方案创建账户:

carbon (39)未来,该库将通过遵循流行模块化账户标准的标准化模块提供增强功能。

覆盖委托投票

链上治理委托已经存在多年并获得了显著的关注,但用户往往对在投票开始后被绑定于一位代表感到不满。代表可能在关键投票时变为非活跃状态,或者代表与被委托人对有争议的投票意见不合。为了解决这些问题,我们发布了一对治理扩展:GovernorCountingOverridable 和 VotesExtended,这两者共同允许被委托人覆盖其代表的投票。

GovernorCountingOverridable 是 OpenZeppelin Governor 的一种新的计数扩展,公开新函数供被委托人调用并覆盖其代表的投票——代表的投票权重将根据需要减少,并更新统计。然而,该功能将无法适用于现有的治理系统,因为其 IVotes 合约必须继承 VotesExtended。

要使用 覆盖委托投票 特性,只需在你的治理合约中继承 GovernorCountingOverridable,并在你的 Votes 合约中继承 VotesExtended。

新的 ERC-4337、ERC-7579、ERC-7786 和 CAIP 实用程序

为满足在社区拥有的库中构建进一步 ERC-4337 智能合约的需求,主要 OpenZeppelin 合约库包括了为开发者构建账户和 ERC-7579 模块所需的实用工具库。

这些实用工具旨在使开发者轻松处理与这些标准相关的类型并进行操作。

carbon (40)另一方面,链无关改进提案(CAIP)在 ERC-7786 中用于识别网络和账户。此次新发布包括解析 CAIP-2 网络标识符和 CAIP-10 账户标识符的库。

接下来是什么

OpenZeppelin 合约团队将继续与社区合作,开发最安全的 Solidity 开源实现。

在接下来的几个月里,团队将专注于对 OpenZeppelin Community Repository 的更多增强,同时实施的 ERC 继续接收反馈。

我们的未来路线图包括:

  • ERC20Bridgeable 代币,用于在不同链上以不可知的方式传递价值
  • ERC-7579 和 ERC-6900智能账户的模块化
  • 改进的治理模块,配合新的设计
  • 针对 ERC-7702 兼容性的账户抽象示例
  • 跨链治理和访问控制
  • 原文链接: blog.openzeppelin.com/in...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OpenZeppelin
OpenZeppelin
江湖只有他的大名,没有他的介绍。