当前位置:   article > 正文

ERC-6900协议

ERC-6900协议

ERC-6900 是一个名为“模块化智能合约账户和插件”的 EIP,提供了与 ERC-4337 兼容的账户标准。它基于一个模块化结构,允许用户轻松地向其账户安装或移除各种功能,类似于在 Android 上安装或卸载应用程序。包含要包含在账户中的功能的模块合约被称为插件

图片 4: 一个周围有以太坊图标的手机

通过其模块化结构,ERC-6900 使用户能够轻松地向其账户添加或移除各种插件(功能)。特别是,由于当前的合约账户通常仅限于特定应用程序,使用 ERC-6900 可以使单个合约账户轻松地在多个应用程序中使用。

虽然这是一个非常有趣的想法,但在实际代码中实现时,需要考虑以下内容,重点放在安全性和用户体验上:

1. 插件的安装和移除

第一个考虑因素应该是如何实现插件的安装和移除。ERC-6900 的开发人员从 Diamond 代理中汲取了灵感。Diamond 代理是典型可升级代理的扩展结构,将合约分为几个组件(或facet),只允许升级其中的一些。与简单的可升级代理结构不同,后者需要更改整个逻辑合约以进行升级,Diamond 代理允许仅选择和升级所需的组件。

在 Diamond 代理中,合约的各种功能被划分为称为facet的组件,并且代理使用delegatecall来调用它们。delegatecall是一个函数,通过它可以“借用”外部合约的函数并在其自身合约的上下文中使用它们,从而允许通过外部函数强大地操作其自身合约的存储

此外,Diamond 代理基于函数选择器维护映射,以指定对每个 facet 的访问路径。这使得代理合约可以自由访问每个facet内的函数。

图片 5: 一个钻石函数到facet映射的图表

(Diamond 代理的结构 | 来源:ERC-2535 官方文档 )

此外,为了安全起见,Diamond 代理将所有数据存储在代理合约中,并将可访问的数据分配给每个facet。如果facet使用的数据没有权限限制,可能会在某些情况下出现问题。例如,zkSync 在以太坊上部署了类似 Diamond 代理的合约,为治理、L1 ↔ L2 桥接和 Rollup 数据发布创建了facet。如果治理facet可以访问用于桥接的参数,可能会通过不当操作或攻击危及整个系统。

总之,Diamond 代理具有三个主要特征:

  1. 协议功能被划分为几个facet合约,通过delegatecall访问。
  2. 代理合约可以通过函数的选择器调用facet的函数。
  3. 每个facet可访问的数据受限制。

Diamond 代理具有这些特征,针对构建多功能合约系统进行了优化。这与 ERC-6900 的目标“创建具有各种功能的智能合约账户”非常契合。因此,ERC-6900 借鉴了 Diamond 代理的结构来实现安装和移除插件的功能。然而,ERC-6900 与 Diamond 代理之间存在重大差异,稍后将进行讨论。

2. 用户与账户之间的交互

假设建立了可以自由安装和移除插件的环境,需要考虑的第二个方面是用户如何与账户进行交互。合约账户与用户之间的交互可以分为两种主要类型:第一种是通过 ERC-4337 的入口合约通过用户操作进行交互,第二种是用户直接调用合约账户内的函数。ERC-6900 将这两种类型的交互区分为‘用户操作验证’和‘运行时验证’,并为每种类型的验证和执行提供单独的流程。

Image 6: 展示创建智能账户过程的流程图

(用户与智能账户之间的交互 | 来源: Seungmin)

3. 权限

考虑的第三个方面是权限。如果任何人都可以创建和安装插件,就必须考虑这些插件可能被滥用的可能性。例如,想象一个会将账户所有权借给某个期间的会话密钥插件。如果会话密钥所有者与恶意合约交互,账户的资金可能会完全丢失。因此,严格设置和验证插件可以访问的外部合约函数以及插件之间的交互的权限至关重要。

4. 保证模块化

最后要考虑的是如何确保模块化。在一个环境中,各种插件可以自由安装和从账户中移除的情况下,存在几种情况,包括相关函数。例如,插件 A 和 B 可能具有具有相同选择器的功能,这些功能具有相同的功能。鉴于插件 A 已经部署,建议插件 B 的部署者从插件 A '借用' 该功能,而不是在他们的插件中实现相同的代码。

为了解决这个问题,ERC-6900 引入了一个名为 '依赖性' 的功能。这种机制引入了一种巧妙的方式来形成插件的模块化生态系统,可以增加相关函数的可读性和可用性。

因此,ERC-6900 的特点可以总结为四点:

  1. 它遵循 Diamond 代理的结构(但有显著的差异࿰
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/693797
推荐阅读
相关标签
  

闽ICP备14008679号