SCA采用势头强劲,但仍面临诸多挑战,如熊市影响、迁移难度、签名问题等。Biconomy正在构建bundler和SDK,以解决账户抽象的困境。Safe和Diamond架构是模块化智能账户基础设施,ERC-6900标准为ERC-4337量身定制,提供通用接口。模块注册表的概念为插件和模块开发人员开辟了盈利途径,可以进一步为「模块市场」铺平道路。
原文标题:Modular Smart Contract Account Architecture andChallenges
原文作者:SevenX Ventures投资者和研究员@Rui
原文来源:mirror
编译:odaily星球日报
感谢 Safe 的联合创始人 Lukas、 Alchemy 的工程主管 Noam、Rhinestone 的联合创始人 Kurt 和 Konrad 以及 HashKey Capital 的投资人 Arnav。
编者按:智能合约账户(SCA)的发展势头强劲,得到了包括 Vitalik 在内的许多核心创业者的支持,然而 SCA 的采用仍面临诸多挑战。账户抽象(AA)的优势在于使用代码自定义功能,但其非互操作性带来了集成和供应商锁定问题。模块化账户抽象旨在创建一个模块化结构,以开发具有多样功能、安全且无缝集成的钱包。
SevenX Ventures 投资人 Rui 指出了采用 SCA 面临的五大挑战,即熊市影响、迁移难度、签名问题、高昂的 Gas 成本和工程难题,并对工程难题做了更进一步的讨论。此外,在对模块化智能合约账户的架构进行分析后指出,模块化 SCA 只是采用难题的一小部分。
为了充分发挥 SCA 的潜力,需要 Layer 2 解决方案提供额外的协议层支持,强大的 bundler 基础设施和点对点内存池、更具成本效益和可行的 SCA 签名机制、跨链 SCA 同步和管理机制,以及开发用户友好的界面等。
在未来,目前的挑战逐步解决,会有更多人采用 SCA,那么接下来又会发生什么?Rui 对此也提出了一些有趣的问题。BlockBeats 将原文编译如下:
从外部拥有账户(EOA)向智能合约账户(SCA)的转变势头强劲,并已经得到了包括 Vitalik 等许多核心创业者的支持。尽管如此,SCA 的采用却并不像 EOA 那样广泛。这其中的主要问题包括熊市带来的影响、eoa 到 sca 的迁移难度、签名问题、Gas 成本过高以及最为关键的开发难题。
账户抽象(AA)的最显著优势是能够使用代码自定义功能。然而,AA 功能的非互操作性带来了主要挑战,这种分散性会阻碍 AA 集成,并且加强了供应商锁定。除此之外,在可升级与可组合同时保障安全性也是重要挑战。
模块化账户抽象的出现是 AA 发展趋势中的一个细分领域,这种创新的方法可以将智能账户与其自定义功能分离。其目标是创建一个模块化结构,来开发具有多样功能、安全、无缝集成的钱包。未来,模块化账户抽象可以实现一个自由的智能合约账户「应用商店」,使钱包和 dApp 专注于改进用户体验,而不必在构建功能上花费太多精力。
在人们接触区块链的过程中,传统的 EOA 带来了许多挑战,如助记词、Gas 费用、跨链操作和多发交易等。
账户抽象利用智能合约账户,允许可编程验证(validation)和执行(execution)。这意味着用户将能够一次性批准一系列交易,而不再需要对每个交易都签名和广播。账户抽象还可以实现更多功能,如改进用户体验(如 Gas 抽象和会话密钥)、降低成本(如批量交易)和提高安全性(如社交恢复、多重签名)。目前,有两种实现账户抽象的方式:
自 2015 年以来,账户抽象(AA)的话题一直被讨论,并在今年由 ERC 4337 进一步将其推进人们的视线中。然而,已部署的智能合约账户数量仍然远远不及 EOA。
让我们深入研究这个困境:
尽管 AA 拥有了诸如无缝登录和 Gas 抽象等优势,在当下的熊市,所有用户都是已被教育的 EOA 用户,而没有太多新用户,因此 dApp 和钱包并没有动力去采用 SCA。即便如此,一些领先的 dApp 在逐步采用 AA,例如 Cyberconnect 通过引入他们的 AA 系统和无 Gas 解决方案,仅一个月就带动了约 36 万次 UserOps(AA 交易)。
对于已经积累了用户和资产的钱包和应用程序来说,安全、便捷地迁移资产仍然是一个挑战。不过,像 EIP-7377 这样的方案可允许 EOA 发起一次性迁移交易。
智能合约本身无法签署消息,因为它没有像 EOA 那样的私钥。类似 ERC 1271 的尝试使之成为可能,但消息签名在第一笔交易之前不起作用的,这又对于使用反事实部署的钱包提出了挑战。由 Ambire 提出的 ERC-6492 是 ERC-1271 向后兼容的继任者,也许能够解决之前的问题。
与标准 EOA 相比,部署、模拟和执行 SCA 会产生更高的成本,这也成为了采用障碍之一。不过,目前已经进行了一些测试,例如将账户创建与用户操作分离、消除与某个账户相关的 "salt" 等。
ERC-4337 团队已经建立了 eth-infinitism repo,为开发人员提供了基础实现。然而,随着开发者针对不同的用例扩展到更细致和具体的功能时,集成和解码会面临更多挑战。在本文中,我们将深入探讨工程难题。
工程难题可进一步阐述为碎片化、安全性和可升级性三个方面。
为了应对这些问题,我们需要可升级的合约以确保安全高效的升级、可复用的核心以提高整体开发效率、以及标准化的接口来确保合约账户能够在不同的前端之间平稳过渡。
这些术语汇聚于一个共同的概念:构建模块化账户抽象架构(模块化 AA)。
模块化账户抽象是广泛的 AA 发展中的一个细分领域,它设想将智能账户模块化,以定制化地为用户提供服务,并使开发者能够在最小限制下无缝增强功能。
然而,在任何行业中建立和推广新的标准都是一个巨大的挑战。在大家都接受同一标准之前,初始阶段可能会出现许多不同的解决方案。令人鼓舞的是看到那些致力于完善和推广账户抽象的人们,无论是 4337 SDK、钱包、基础设施团队还是协议层设计师,他们都在共同努力加快这一进程。
账户如何调用模块实现功能
外部调用和委托调用:
关于委托调用
虽然「委托调用」与「调用」类似,但它不是在目标合约的 context 中执行,而是在调用合约的当前状态的 context 执行它。这意味着目标合约所做的任何状态更改都会更改调用合约的存储。
代理合约和委托调用
要实现可组合、可升级的结构,需要引入一个基础概念「代理合约」。
Safe 架构
什么是 Safe :
Safe 是领先的模块化智能账户基础设施,旨在提供经过实战考验的安全性和灵活性,它使开发人员能够创建多样化的应用程序和钱包。许多团队正在 Safe 基础上(或受 Safe 启发)构建应用。例如,Biconomy 在推出其智能合约账户时,使用原生 4337 和 1/1 多重签名来拓展 Safe。Safe 见证了超过 164, 000 份合约的部署并锁定了超过 307 亿美元的价值,毫无疑问是该领域的佼佼者。
Safe 的结构包括安全账户合约、单例合约、模块合约。
采用 Safe 后带来的改变:
关于 ERC 2535、 Diamond 代理:
什么是 Diamond 结构:
采用 Diamond 后带来的改变:
Safe 和 Diamond 架构之间存在很多相似之处,两者都依赖于其核心的代理合约并引用逻辑合约来实现可升级性和模块化。
两者的主要区别在于逻辑契约的处理。具体来说:
「Safe 智能账户方法」和「Diamond 方法」是涉及代理和模块的不同结构的示例。如何平衡灵活性和安全性至关重要,这两种方法未来也将会不断演变、相互补充。
让我们通过介绍 ERC-6900 来进一步讨论,这是 Alchemy 团队提出的、受 Diamond 启发、专门为 ERC-4337 量身定制的标准。它通过提供通用接口来解决智能账户模块化的挑战,并协调插件和钱包开发人员之间的工作。
说到 AA 的交易流程,主要有三个流程:验证、执行、挂钩。正如我们前面所讨论的,这些步骤都可以通过使用代理帐户调用模块来管理。虽然不同的项目可能使用不同的名称,但掌握相似的底层逻辑很重要。
不同设计中的函数名称
ERC 6900
根据不同的逻辑来分离模块至关重要。标准化方法应该规定如何编写智能合约帐户的验证、执行和挂钩函数。无论是 Safe 还是 ERC-6900 ,标准化都有助于减少特定于某些实施或生态系统的独特开发工作的需求,并防止供应商锁定。
如何以开放的方式查找和验证模块:一个正在推进的解决方案涉及创建一个允许用户发现可验证模块的区域,可以将其称为「注册表」。该注册表的功能类似于「应用程序商店」,旨在培育一个简化但蓬勃发展的模块化市场。
Safe{Core} 协议是一种针对智能合约账户的开源、可互操作的协议,旨在增强各种供应商和开发人员的可访问性,同时通过明确定义的标准和规则来保持强大的安全性。
该过程展开如下:
虽然该模式还处于早期阶段,但它具有以分散和协作的方式建立标准的潜力。注册表使开发人员能够注册他们的模块,审计员能够验证其安全性,钱包能够进行集成,并使用户能够轻松找到模块并验证其证明信息。未来的几种用途可能是:
「模块注册表」的概念为插件和模块开发人员开辟了盈利途径。它可以进一步为「模块市场」铺平道路。某些方面可能由 Safe 团队监督,而其他方面可能表现为去中心化市场,邀请所有人做出贡献并提供透明的审计记录。整合这一点可以避免供应商锁定,并通过添加能够吸引更广泛受众的增强用户体验来支持 EVM 的扩展。
虽然这些方法能保证单个模块的安全,但在更广泛的安全性方面,智能合约账户并不是万无一失的。与合规模块结合并证明它们没有存储冲突可能是一个挑战,这凸显了钱包或 AA 基础设施在解决此类问题方面的重要性。
通过利用模块化智能合约账户堆栈,钱包提供商和 dApp 可以从技术维护的复杂性中解放出来。同时,外部模块开发人员有机会提供个性化的专业服务。然而,需要解决的挑战包括在灵活性和安全性之间取得平衡,推动模块化标准,以及实施标准化接口,使用户能够轻松升级和修改其智能帐户。
此外,模块化智能合约账户(SCA)只是采用难题的一小部分。为了充分发挥 SCA 的潜力,需要 Layer 2 解决方案提供额外的协议层支持,例如强壮的 bundler 基础设施和点对点内存池、更具成本效益和可行的 SCA 签名机制、跨链 SCA 同步和管理机制,以及开发用户友好的界面。
未来,将会有更多人采用 SCA,但也会引发一些有趣的问题:一旦 SCA 订单流变得有足够利益可图,传统的矿工可提取价值 (MEV) 机制将如何进入该领域构建捆绑器并获取价值?当基础设施成熟后,账户抽象(AA)如何作为「基于意图」交易的基础层?让我们拭目以待。