利用EIP-7702和不可撤销签名解锁链抽象EOA

文章探讨了不可撤销签名在链抽象中的重要性,特别是对于EOA和智能账户。智能账户允许密钥轮换,但会损害不可撤销签名。而Omni Account通过确保智能账户和智能EOA都能在同一系统下进行链抽象,从而解决了这些问题。EIP-7702下的智能EOA会受到损害,需要仔细处理以防止双重支付攻击。

链抽象中不可撤销签名复杂性的入门,以及 Omni 账户如何为智能账户和智能 EOA 解决这个问题

概要

  • 不可撤销签名是链抽象最重要的元素之一。它经常被忽视并归类到资源锁定问题中。本文旨在强调不可撤销签名对于 EOA 和智能账户的复杂性,以及链抽象这两种账户类型的设计影响。
  • EOA 的不可撤销签名是既定的,但在 EIP-7702 下会受到影响。这需要仔细处理,以确保链抽象的智能 EOA 无法通过双重支付攻击来攻击求解器。
  • 智能账户支持密钥轮换,这是一个很好的安全功能,但会损害不可撤销签名。链抽象这些智能账户的系统也需要启用不可撤销签名。
  • Omni 账户解决了所有这些问题,确保智能账户和智能 EOA 都可以通过一个通用系统进行链抽象。

介绍

EOA 的一个未被充分认识的特性是它们提供不可撤销签名的能力。这意味着一旦 EOA 签署了一段数据并传播了结果签名,该签名将始终有效,这意味着它将始终恢复到同一个 EOA。虽然可以允许签名仅供特定协议使用一次,例如通过使签名数据唯一,然后在验证一次后使其失效,但 EOA 私钥的持有者无法撤销其签名,除非这是专门构建在恢复签名的协议中。

鉴于智能账户的核心功能之一是密钥轮换,很容易看出这种范式不一定适用于智能账户。按照定义,密钥轮换是为了使签名(无论是已签名还是尚未签名)在签名密钥泄露的情况下无法使用。然而,智能账户通常可以实现不可撤销签名,这取决于开发者愿意做出的权衡。在深入探讨具体细节以及这种范式如何应用于“智能 EOA”(我们指的是通过 EIP-7702 暂时转换为智能账户的 EOA)之前,首先详细说明哪些用例需要不可撤销签名是有用的。

不可撤销签名的重要性

一般来说,每当签名在签名后经过一段时间的延迟才被验证时,拥有不可撤销签名就很有用。一个清晰而最近的例子是在 intents 和链抽象领域。对于这个领域的用例,通常的做法是让用户签署一个 payload,该 payload 被传播给求解器,并且仅在稍后在链上验证。在链抽象中,甚至可能在更晚的时间验证签名,例如在 target 链上完成一个 intent 后,求解器才在源链上回收他们的资金。事实上,这就是我们的链抽象解决方案 Omni 账户的工作方式。Omni 账户允许用户通过一个签名立即在 target 链上花费资金,这些资金分散在许多 origin 链上。对用户侧的无信任意味着求解器也会使用相同的用户签名作为授权,在 origin 链上回收他们的资金。这里的一个攻击向量是在求解器返回认领你的资金之前,在 origin 链上撤销签名,本质上是双重支付。

智能账户

如上所述,智能账户通常能够不受限制地进行密钥轮换,以便为用户提供一种减少密钥丢失或泄露的方法。然而,智能账户(尤其是模块化智能账户)的可编程性意味着可以根据权衡以不同的方式限制密钥轮换。例如,可以对密钥轮换进行时间锁定,以便用户需要等待一定的时间才能真正轮换他们的密钥。这可以解决上面提到的问题,即确保持名至少在一定时间内有效。

智能 EOA (EIP-7702)

对于智能 EOA,问题变得更加棘手。原因是虽然账户是可编程的,但它不是完全可编程的,这意味着一些逻辑位于账户本身之外,因此部署在账户上的代码无法看到它。此逻辑是账户的重新委托或取消委托。作为代理部署的完整智能账户没有这个问题,因为即使是代理的升级也是通过账户进行的操作,因此可以在某些方面受到限制。因此,可以有逻辑来监视和强制检查可能导致签名撤销的任何操作,并且可以保证此逻辑将始终运行。由于智能 EOA 的情况并非如此,因此这对任何依赖这种保证的系统提出了挑战。

一种解决方案是回退到 EOA 的签名,即使在账户被委托时,该签名也将继续有效。主要的注意事项是,合约和库(例如 solady)通常会首先检查账户是否具有代码,然后在尝试使用 ecrecover 之前尝试使用 ERC-1271。如果在协议中打算使用的情况是这样,那么似乎无法使用智能 EOA 实现不可撤销签名。但是,如果签名逻辑由协议控制,那么开发人员可以选择先尝试 ecrecover,然后再检查账户是否已部署代码。例如,这就是 Uniswaps TheCompact 所做的。

结论

不可撤销签名是一个有用的构造,尤其是在多个执行环境(即 rollup)的上下文中,并且希望在多个环境中验证签名并可能存在时间延迟。例如,这就是 Omni 账户允许用户通过一个签名立即且无需信任地跨链花费资金的方式。然而,尽管 EOA 和智能账户可以保证不可撤销签名,但智能 EOA 不能,这限制了它们的用处,或者至少降低了它们的用户体验。

  • 原文链接: blog.rhinestone.wtf/unlo...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Rhinestone
Rhinestone
Infrastructure and APIs for seamless wallet abstraction. Built on smart accounts. Powered by intents. https://linktr.ee/rhinestonewtf