账户抽象:提升区块链交互体验的关键

进阶Jun 18, 2024
除了以太坊提出的 ERC-4337、EIP-3074 和 EIP-7702 等账户抽象解决方案。其他公链也存在类似账户抽象的方案,例如 Solana 的 Program Derived Addresses (PDA) ,Cosmos 的 x/authz 这类相似设计。本
账户抽象:提升区块链交互体验的关键

为什么我们需要账户抽象?

当前区块链领域还有很多未解决的问题。其中,区块链的使用难度,即与链交互的用户体验(UX)一定是最受大众诟病的领域。

例如,很多人认为使用密钥管理账户比使用电子邮件更复杂;密钥管理困难且不安全;而且每次转账(如 USDC)都需要消耗原生代币(如 Ether 和 Sol),这是违反直觉的。

在这种情况下,越来越多的人将目光转向账户抽象领域,以改善链上交互的用户体验,促进大规模应用。

在探索过程中,以太坊提出了ERC-4337、ERP-3074、ERP-7702等账户抽象解决方案。其他 L1(如 Solana)也有实现协议级账户抽象的功能,如程序派生地址(PDA),Cosmos 也有类似的设计,如 x/authz 和费用抽象模块(Fee Abstraction Module)。本文将对上述解决方案进行介绍和比较,梳理不同解决方案设计的精妙之处,并展示不同解决方案的权衡和注意事项。

背景

EOA 与合约账户

外部拥有账户(EOA)和合约账户是以太坊白皮书中定义的两种账户类型。 EOA账户由私钥控制,用户可以通过私钥签署各种交易来控制账户内的资产。合约账户由账户本身的代码控制,其他账户可以通过调用合约账户的代码让合约账户执行特定的逻辑。

账户抽象 (Account Abstraction)

抽象账户的概念可以追溯到2016年(https://github.com/ethereum/EIPs/issues/86)。账户抽象是基于以太坊当前的两种账户类型--EOA 和合约账户—并在此基础上发展起来的。这将通过以下方式改善以太坊用户的交互体验:

  1. 允许用户使用多种签名,例如Schnorr、BLS、后量子签名等;
  2. 允许用户使用ERC20代币或自定义支付逻辑支付gas费;
  3. 允许用户使用电子邮件、社交媒体等检索自己的帐户;
  4. 允许用户对账户内的资金进行细粒度的权限管理,例如设置每日提现限额;
  5. 允许在一个原子交易中执行多个链上操作。例如,用户只需一个签名,就能在一个 DEX 交易中完成批准和交换操作。

以太坊路线图

以太坊路线图(https://ethereum.org/en/roadmap/)重点介绍了以太坊未来的升级路线。目前,以太坊社区的大多数研究都围绕以太坊路线图展开。帐户抽象是其中必不可少的一部分:

来源: https://x.com/VitalikButerin/status/1741190491578810445

以太坊社区希望以ERC-4337为基础,在协议内实现账户抽象解决方案,通过EIP-3074或EIP-7702等提案,最终达到 Endgame 账户抽象。

尽管增强了用户体验,Endgame 账户抽象对于以太坊的反量子计算也至关重要,因为当前EOA 账户使用的 ECDSA 算法在量子计算时代是不安全的。采用帐户抽象支持后量子签名,保护用户帐户免受量子计算不断演变的威胁。

EIP-3074 与 ERC-4337

要了解账户抽象账户,我们需要了解 EOA 的工作原理。下图是链上最常见的代币买卖流程:

一般来说,用户在买卖时需要发出两笔交易:先授权 Uniswap 转出自己的 USDC 进行交换,然后再发送另一笔交易请求让 Uniswap 执行操作。Uniswap 会转移用户账户中的 USDC,并根据当前价格向用户发送相应数量的 ETH。

ERC-4337 将上述两笔交易合并为一笔:

从上图可以看出,用户需要两次签名授权捆绑程序(Bundler)操作用户 4337 账户中的资产,该账户与用户的 EOA 账户不同。捆绑器获得授权后,会将授权内容合并为一个捆绑包并发出,完成交易。同时,如果用户没有以太坊代币来支付燃气费,也可以引入支付者的角色,让支付者支付燃气费,并从用户处获得等值的ERC20代币。

EIP-3074和ERC-4337有一些相似之处,但EIP-3074的实现方法在以太坊协议中:

在 ERC-4337 中,我们授权 Bundler 通过签名处理链上智能合约钱包中的资产。在 EIP-3074 中,我们授权 Bundler 通过签名直接处理 EOA 钱包中的资产。为此,以太坊社区需要在以太坊协议中添加两个新的操作码: AUTH 和 AUTHCALL。

AUTH 用于验证捆绑程序处理用户 EOA 账户资产的行为是否经过授权,而 AUTHCALL 用于 “欺骗 “用户交互的智能合约(在我们的例子中是 USDC 和 Uniswap),使智能合约认为交易来自用户的 EOA 账户。这样做的好处是,Uniswap 和 USDC 的维护者无需升级已部署的智能合约,同时 EOA 账户可以享受账户抽象的功能。

EIP-3074 和 ERC-4337 之间的比较

在以太坊社区中,EIP一般是指需要以太坊升级才能支持的提案,而ERC则是指无需以太坊升级即可支持的规范。

因此,从这两个账户抽象方案的命名可以看出,ERC-4337 比 EIP-3074 更容易实现,因为 ERC-4337 不需要对以太坊网络进行硬分叉。这也是ERC-4337已经推出并在多边形和基础上被越来越多地使用,但ERC-4337刚刚被第183次以太坊全核心开发者执行调用(ACDE)接受的原因之一。

来源: https://dune.com/niftytable/account-abstraction

此外,ERC-4337 要求用户将其当前账户迁移到新的合同账户,并需要 DApp 支持才能使 EIP-1271 正常运行。EIP-3074 则不需要这些额外的支持。这是 ERC-4337 采用率低的主要原因。同时,ERC-4337 无法在不引入中间多调用合约的情况下支持一个签名授权多个链上操作,而 EIP-3074 却可以,这也造成了 ERC-4337 的局限性。

不过,ERP-3074 也有自己的问题。最重要的一个问题是操作码 AUTH 的权限过高,这可能会让攻击者完全控制用户的 EOA 账户。毕竟,只要黑客盗用了您的 AUTH 签名,他就可以处置您 EOA 钱包中的资产。考虑到目前网络钓鱼攻击猖獗,其中大部分都是欺骗用户签名,一旦 EIP-3074 实施,这将成为一个更加严重的问题。

对此,EIP-3074 的作者之一 lightclient 提出了一种在钱包层面拦截恶意签名的缓解方法。详情请参考: https://x.com/lightclients/status/1778823652584120497。 ERC-4337不存在这个问题,尽管黑客仍然可以欺骗用户签署恶意UserOps。这是由于 UserOp 难以获得对用户账户中所有资产的处置权。截至本文撰写之时,ACDE 的开发人员已同意将 EIP-3704 从 Pectra Dev 0 中移除,并将 EIP-7702 纳入下一个 Pectra Devnet 1 中。

EIP-7702 发生了什么变化?

EIP-7702 尝试整合 EIP-3074 和 ERC-4337 的优点,形成一条中间路径。用户将签名的操作发送到捆绑器。当捆绑器将交易发送到链上时,用户的 EOA 账户将暂时成为像 4337 账户一样的智能合约账户。接下来,与 EIP-3074 中的 AUTH 进程类似,智能合约账户将验证用户授权的捆绑程序操作。然后,就像AUTHCALL一样,执行用户授权的操作。执行交易后,用户账户将回滚至普通EOA账户。

EIP-7702的优点如下:

  1. 继承EIP-3074的所有优点:不需要用户从EOA账户切换到新地址的智能合约账户;可以在一个原子事务中执行多个操作;
  2. ERC-4337的智能合约账户代码和基础设施可以复用;
  3. 以ERC-4337为代表的智能合约账户抽象和以EIP-3074为代表的EOA账户抽象解决方案可以合并,防止以太坊分裂成两个不同的账户抽象系统,为以太坊路线图中的Endgame抽象账户铺平道路;
  4. AUTH 和 AUTHCALL 这两个操作码不会被添加到以太坊的 EVM 中:考虑到以太坊路线图,未来 EOA 账户将转换为账户抽象,这两个操作码将变得多余。

除此之外,EIP-7702 还继承了 EIP-3074 的所有安全风险。

社区决定在 2025 年的下一次 Pectra 升级中加入 EIP-7702。如果实施,它将极大地改变以太坊生态系统,并对当前ERC-4337 版本的账户抽象基础设施带来增量改进。

Solana 的程序衍生地址(Program Derived Address)

Solana 上的帐户抽象

Solana 的账户抽象类似于以太坊的 ERC-4337。它们是从原始账户(类似于 EOA 账户)衍生的账户,类似于 4337 合约账户。在了解 Solana 的账户抽象之前,有必要了解 Solana 使用的账户模型。

从广义上讲,帐户可以分为可以执行代码的可执行帐户或无法执行代码的非可执行帐户。进一步研究一下,Solana 上存在三种类型的帐户:本机程序(Native Program)、程序帐户(Program Account)和数据帐户(Data Account)。

本机程序是验证器实现的一部分,并为 Solana 网络提供核心功能,例如创建新数据帐户和自定义程序。程序帐户是包含可执行代码的自定义程序。数据帐户可以按照其所有者程序帐户的定义存储数据并管理程序状态。

这种账户模型原生支持程序账户创建和管理特定账户,为开发人员提供了定义自定义规则和管理逻辑的能力。通过这种账户模型,程序衍生地址(PDA)(一种数据账户)扩展了 Solana 账户抽象功能的可能性,包括通过多位钱包和双因素身份验证增强用户安全性,以及启用社交恢复机制等。

程序衍生地址

根据上下文,所有账户都位于 Ed25519 曲线上,都有一对公钥-私钥。PDA 位于 Ed25519 曲线之外,是一个确定导出的 32 字节字符串,看起来像一个公钥,但没有相应的私钥。PDA 允许开发人员创建自定义规则和交易签名机制,允许 PDA 的程序账户所有者代表 PDA 自主执行交易,并得到 Solana 网络的完全认可和支持。

PDA 和帐户抽象

现在我们已经了解了 PDA 是如何衍生的,您可能想知道这些概念如何与帐户抽象相关联。帐户抽象是通过执行称为“跨程序调用”(CPI,Cross Program Invocation) 的函数在后台发生的。

CPI 是使程序能够调用其他程序指令的函数,从而实现 Solana 程序的可组合性。当程序通过 invoke_signed 启动 CPI 时,程序可以代表衍生的 PDA 签名。

来源:Solana

为了验证涉及 PDA 的交易的合法性,Solana 运行时在内部调用创建程序地址(create_program_address) 使用 签名者种子 (signers_seeds)和 程序编号(program_id) 的调用程序。如果找到有效的 PDA,运行时会将 PDA 与调用程序关联起来,并将该程序识别为授权签名者。

目前,Squads 正在 Solana 上开发基于 PDA 的账户抽象解决方案。不过,Squads 提供的产品目前更类似于 Gnosis Safe 的智能合约账户解决方案,尚未完全开发出账户抽象功能。

PDA 的优点

  1. 自动智能合约执行:PDA 允许更复杂的智能合约设计,可以通过跨程序调用代表用户自主执行多个操作。
  2. 增强的用户体验:用户无需管理多个交易或面临技术复杂性。
  3. 增强的安全性和灵活性:无需私钥,就可以降低密钥泄露的风险。 PDA 可用于多重签名钱包或适应其他灵活的治理模型,以减少单点风险,对于管理大型共享资源的组织特别有用。

PDA 的局限性

  1. PDA 虽然有利于为帐户抽象功能奠定基础,但与密钥对帐户相比,实施起来可能比较复杂。
  2. 与 ERC-4337 一样,它要求用户将帐户迁移到新帐户,这可能会抑制 Solana 帐户抽象的采用率。

Cosmos 上的账户抽象(Authz 和 Fee Grant)

Cosmos x/authz

随着账户抽象越来越受到开发者的重视,作为 Cosmos SDK 核心部分的 Authz 被推出,允许一个账户通过使用授权来代表另一个账户执行某些操作,这与 EIP-3074 和 EIP 类似-7702。

Authz 附带了几种预定义的授权类型,这些类型将某些操作的执行委托给受让人,从而增强用户体验。

使用 Authz,可以给出 3 种类型的授权:

  1. 通用授权(GenericAuthorization)。 此授权授予授予受让人代表授予者执行消息的不受限制的权限。
  2. 发送授权(SendAuthorization)。 此授权与 ERC20 中的批准类似,旨在让受让人获得正支出限额,该限额定义了可以代表授予人支出的最大金额。
  3. 股权授权(StakeAuthorization)。 该赠款允许受赠者代表赠款人管理委托、取消委托或重新委托等质押操作。

补助金包括 授予者的地址字节、被授予者的地址字节以及授权类型。 还可以定义时间段,限制特定时间段内的权限。在每个块结束时,网络将通过称为修剪的过程删除过期的授权。

了解运营框架

Authz 可用于对各种操作进行授权,但是为了简单起见,我们将研究 authz 如何工作以启用通用投票交易。

  1. 在执行任何授权之前实现授权接口。在此阶段,还将定义消息类型,在本例中为 MsgVote。在这里,我们看到 Alice 授予治理投票行动的授权。
  2. Bob 生成未签名的投票交易。
  3. Bob 生成受资助者投票的已签名并执行的交易。交易完成,授权过期将被取消。

Authz 带来的好处?

  1. 操作安全:验证者和其他用户可以向单独的账户授予权限,以对治理提案进行投票或执行某些操作,从而增强账户安全性并减轻安全负担。
  2. 简化操作:可以在需要访问验证器密钥的情况下执行交易,也可以使用单个交易将 Authz 授予受让人帐户来简化多重签名钱包交易。
  3. 无需迁移:与EIP-3074和EIP-7702类似,授权操作发生在用户的原始帐户中。用户无需将资产从原账户转移到新账户即可实现账户抽象。
  4. DAO 运营效率和灵活性:可以将执行权的子集授予各个 DAO 成员以执行特定操作。
  5. 质押奖励复利:Authz 促进使用重新质押和同等服务来自动复利质押奖励。

Authz 的限制和风险:

请注意您通过 Authz 授权的交易类型。一个恶意的授权(Authorization)可以执行可能对用户有害的各种类型的授权。

  1. 通用授权(GenericAuthorization):给出无限制的许可代表授予者执行所提供的消息。除非完全了解您所签署的内容,否则强烈建议避免签署此类授权类型。某些钱包在签署 Authz 交易时也可能不会提供警告。
  2. 发送授权(SendAuthorization):如果授予者未指定,则允许受让人发送其可以花费的最大数量的代币。验证允许列表也很重要,它指定受让人可以将代币发送到的特定地址。

费用补助模块

另一个让许多人感到沮丧的用户体验障碍是,区块链用户需要持有各种原生代币才能与这些不同的生态系统进行交互。这影响了整体用户体验,尤其是对于非加密货币原生用户来说,他们第一次接触到 Cosmos 生态系统中存在的无数链。

然而,随着费用补助模块的整合,这个障碍已经被突破。与以太坊上支持账户抽象的付款主合同类似,Cosmos 上的费用授予模块允许授予者向受让人授予费用津贴,支付部分或全部交易费用。资金仍由资助者控制,并且可以随时撤销资助津贴。

费用补助的类型

费用津贴可分为两类: 基本津贴和定期津贴。

基本津贴(BasicAllowance)允许受助者使用授予者帐户中的费用,直到达到支出限额或到期时间。然后,该州将终止该补助金。需要注意的是,BasicAllowance 实行一次性费用补助。如果消费限额和时间为空,则费用限额没有有效期和消费上限。

定期津贴(periodicAllowance)允许在每个指定时间段后定期更新费用补助。 period_spend_limit 指定一段时间内可以花费的最大硬币数量。 周期重置 跟踪下一个周期何时发生以及 period_can_spend 跟踪新时期开始之前剩余的硬币数量。

了解运营框架

使用 AllowedMsgAllowance 可为指定的信息类型创建许可。允许可以是 BasicAllowance 或 PeriodicAllowance。如果设置了过期时间,则 FeeAllowance 将在状态队列中排队,并在授予中附加过期前缀,Endblocker 会检查 FeeAllowanceQueue 状态中是否有过期的授予,如果发现则会修剪授权。除了 MsgGrantAllowance 之外,还可以使用 MsgRevokeAllowance 取消收费许可。

Authz 和 Fee Grant 模块结合在一起,解锁了创新和多样化的用例,最终在 Cosmos 生态系统上构建更好的用户体验。

结论

账户抽象 截至 2024 年 5 月 27 日,数据为估计值。

随着现货 BTC ETF 和 ETH ETF 的批准,机构和零售需求显着增加,有望迎来新一波希望接触该行业的用户。随着协议和 dapps 寻求创建无缝体验以扩大其社区,账户抽象将成为今年的一个重要话题。

免责声明

本材料仅供一般信息参考,不构成也不应被解释为任何形式的研究成果、专业建议、招揽、要约、推荐或交易策略。对于本报告中提供的任何一般财务和市场信息、分析和/或意见的公平性、准确性、及时性、完整性或正确性,不作任何明示或暗示的保证、陈述、保证或承诺,也不承担任何责任或义务。 HashKey Capital 承担与使用或依赖任何此类信息有关的责任。本报告中的任何信息如有更改,恕不另行通知。本报告未经香港证券及期货事务监察委员会、新加坡金融管理局或香港或新加坡任何监管机构审阅。

请注意,包括加密货币在内的数字资产具有很强的波动性并容易受到市场风险的影响。数字资产的价值可能会大幅波动,并且无法保证利润或资本保值。在做出任何决定之前,您应该仔细考虑自己的风险承受能力和财务状况。

本报告的分发可能在某些司法管辖区受到限制。本材料并不构成在未授权此类行为的任何司法管辖区或向非法向其分发此类报告的任何人分发任何信息或提出任何要约或招揽。

随时了解最新的 HashKey Capital 新闻 -

网站 - https://hashkey.capital/

推特 - https://twitter.com/HashKey_Capital

领英 — https://www.linkedin.com/company/hashkeycapital/

声明:

  1. 本文转载自[Medium]。所有版权归原作者所有[HashKey capital]。若对本次转载有异议,请联系Gate Learn团队,他们会及时处理。

  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。

  3. 本文的其他语言翻译由 Gate Learn 团队完成。除非另有说明,否则禁止复制、分发或抄袭翻译文章。

账户抽象:提升区块链交互体验的关键

进阶Jun 18, 2024
除了以太坊提出的 ERC-4337、EIP-3074 和 EIP-7702 等账户抽象解决方案。其他公链也存在类似账户抽象的方案,例如 Solana 的 Program Derived Addresses (PDA) ,Cosmos 的 x/authz 这类相似设计。本
账户抽象:提升区块链交互体验的关键

为什么我们需要账户抽象?

当前区块链领域还有很多未解决的问题。其中,区块链的使用难度,即与链交互的用户体验(UX)一定是最受大众诟病的领域。

例如,很多人认为使用密钥管理账户比使用电子邮件更复杂;密钥管理困难且不安全;而且每次转账(如 USDC)都需要消耗原生代币(如 Ether 和 Sol),这是违反直觉的。

在这种情况下,越来越多的人将目光转向账户抽象领域,以改善链上交互的用户体验,促进大规模应用。

在探索过程中,以太坊提出了ERC-4337、ERP-3074、ERP-7702等账户抽象解决方案。其他 L1(如 Solana)也有实现协议级账户抽象的功能,如程序派生地址(PDA),Cosmos 也有类似的设计,如 x/authz 和费用抽象模块(Fee Abstraction Module)。本文将对上述解决方案进行介绍和比较,梳理不同解决方案设计的精妙之处,并展示不同解决方案的权衡和注意事项。

背景

EOA 与合约账户

外部拥有账户(EOA)和合约账户是以太坊白皮书中定义的两种账户类型。 EOA账户由私钥控制,用户可以通过私钥签署各种交易来控制账户内的资产。合约账户由账户本身的代码控制,其他账户可以通过调用合约账户的代码让合约账户执行特定的逻辑。

账户抽象 (Account Abstraction)

抽象账户的概念可以追溯到2016年(https://github.com/ethereum/EIPs/issues/86)。账户抽象是基于以太坊当前的两种账户类型--EOA 和合约账户—并在此基础上发展起来的。这将通过以下方式改善以太坊用户的交互体验:

  1. 允许用户使用多种签名,例如Schnorr、BLS、后量子签名等;
  2. 允许用户使用ERC20代币或自定义支付逻辑支付gas费;
  3. 允许用户使用电子邮件、社交媒体等检索自己的帐户;
  4. 允许用户对账户内的资金进行细粒度的权限管理,例如设置每日提现限额;
  5. 允许在一个原子交易中执行多个链上操作。例如,用户只需一个签名,就能在一个 DEX 交易中完成批准和交换操作。

以太坊路线图

以太坊路线图(https://ethereum.org/en/roadmap/)重点介绍了以太坊未来的升级路线。目前,以太坊社区的大多数研究都围绕以太坊路线图展开。帐户抽象是其中必不可少的一部分:

来源: https://x.com/VitalikButerin/status/1741190491578810445

以太坊社区希望以ERC-4337为基础,在协议内实现账户抽象解决方案,通过EIP-3074或EIP-7702等提案,最终达到 Endgame 账户抽象。

尽管增强了用户体验,Endgame 账户抽象对于以太坊的反量子计算也至关重要,因为当前EOA 账户使用的 ECDSA 算法在量子计算时代是不安全的。采用帐户抽象支持后量子签名,保护用户帐户免受量子计算不断演变的威胁。

EIP-3074 与 ERC-4337

要了解账户抽象账户,我们需要了解 EOA 的工作原理。下图是链上最常见的代币买卖流程:

一般来说,用户在买卖时需要发出两笔交易:先授权 Uniswap 转出自己的 USDC 进行交换,然后再发送另一笔交易请求让 Uniswap 执行操作。Uniswap 会转移用户账户中的 USDC,并根据当前价格向用户发送相应数量的 ETH。

ERC-4337 将上述两笔交易合并为一笔:

从上图可以看出,用户需要两次签名授权捆绑程序(Bundler)操作用户 4337 账户中的资产,该账户与用户的 EOA 账户不同。捆绑器获得授权后,会将授权内容合并为一个捆绑包并发出,完成交易。同时,如果用户没有以太坊代币来支付燃气费,也可以引入支付者的角色,让支付者支付燃气费,并从用户处获得等值的ERC20代币。

EIP-3074和ERC-4337有一些相似之处,但EIP-3074的实现方法在以太坊协议中:

在 ERC-4337 中,我们授权 Bundler 通过签名处理链上智能合约钱包中的资产。在 EIP-3074 中,我们授权 Bundler 通过签名直接处理 EOA 钱包中的资产。为此,以太坊社区需要在以太坊协议中添加两个新的操作码: AUTH 和 AUTHCALL。

AUTH 用于验证捆绑程序处理用户 EOA 账户资产的行为是否经过授权,而 AUTHCALL 用于 “欺骗 “用户交互的智能合约(在我们的例子中是 USDC 和 Uniswap),使智能合约认为交易来自用户的 EOA 账户。这样做的好处是,Uniswap 和 USDC 的维护者无需升级已部署的智能合约,同时 EOA 账户可以享受账户抽象的功能。

EIP-3074 和 ERC-4337 之间的比较

在以太坊社区中,EIP一般是指需要以太坊升级才能支持的提案,而ERC则是指无需以太坊升级即可支持的规范。

因此,从这两个账户抽象方案的命名可以看出,ERC-4337 比 EIP-3074 更容易实现,因为 ERC-4337 不需要对以太坊网络进行硬分叉。这也是ERC-4337已经推出并在多边形和基础上被越来越多地使用,但ERC-4337刚刚被第183次以太坊全核心开发者执行调用(ACDE)接受的原因之一。

来源: https://dune.com/niftytable/account-abstraction

此外,ERC-4337 要求用户将其当前账户迁移到新的合同账户,并需要 DApp 支持才能使 EIP-1271 正常运行。EIP-3074 则不需要这些额外的支持。这是 ERC-4337 采用率低的主要原因。同时,ERC-4337 无法在不引入中间多调用合约的情况下支持一个签名授权多个链上操作,而 EIP-3074 却可以,这也造成了 ERC-4337 的局限性。

不过,ERP-3074 也有自己的问题。最重要的一个问题是操作码 AUTH 的权限过高,这可能会让攻击者完全控制用户的 EOA 账户。毕竟,只要黑客盗用了您的 AUTH 签名,他就可以处置您 EOA 钱包中的资产。考虑到目前网络钓鱼攻击猖獗,其中大部分都是欺骗用户签名,一旦 EIP-3074 实施,这将成为一个更加严重的问题。

对此,EIP-3074 的作者之一 lightclient 提出了一种在钱包层面拦截恶意签名的缓解方法。详情请参考: https://x.com/lightclients/status/1778823652584120497。 ERC-4337不存在这个问题,尽管黑客仍然可以欺骗用户签署恶意UserOps。这是由于 UserOp 难以获得对用户账户中所有资产的处置权。截至本文撰写之时,ACDE 的开发人员已同意将 EIP-3704 从 Pectra Dev 0 中移除,并将 EIP-7702 纳入下一个 Pectra Devnet 1 中。

EIP-7702 发生了什么变化?

EIP-7702 尝试整合 EIP-3074 和 ERC-4337 的优点,形成一条中间路径。用户将签名的操作发送到捆绑器。当捆绑器将交易发送到链上时,用户的 EOA 账户将暂时成为像 4337 账户一样的智能合约账户。接下来,与 EIP-3074 中的 AUTH 进程类似,智能合约账户将验证用户授权的捆绑程序操作。然后,就像AUTHCALL一样,执行用户授权的操作。执行交易后,用户账户将回滚至普通EOA账户。

EIP-7702的优点如下:

  1. 继承EIP-3074的所有优点:不需要用户从EOA账户切换到新地址的智能合约账户;可以在一个原子事务中执行多个操作;
  2. ERC-4337的智能合约账户代码和基础设施可以复用;
  3. 以ERC-4337为代表的智能合约账户抽象和以EIP-3074为代表的EOA账户抽象解决方案可以合并,防止以太坊分裂成两个不同的账户抽象系统,为以太坊路线图中的Endgame抽象账户铺平道路;
  4. AUTH 和 AUTHCALL 这两个操作码不会被添加到以太坊的 EVM 中:考虑到以太坊路线图,未来 EOA 账户将转换为账户抽象,这两个操作码将变得多余。

除此之外,EIP-7702 还继承了 EIP-3074 的所有安全风险。

社区决定在 2025 年的下一次 Pectra 升级中加入 EIP-7702。如果实施,它将极大地改变以太坊生态系统,并对当前ERC-4337 版本的账户抽象基础设施带来增量改进。

Solana 的程序衍生地址(Program Derived Address)

Solana 上的帐户抽象

Solana 的账户抽象类似于以太坊的 ERC-4337。它们是从原始账户(类似于 EOA 账户)衍生的账户,类似于 4337 合约账户。在了解 Solana 的账户抽象之前,有必要了解 Solana 使用的账户模型。

从广义上讲,帐户可以分为可以执行代码的可执行帐户或无法执行代码的非可执行帐户。进一步研究一下,Solana 上存在三种类型的帐户:本机程序(Native Program)、程序帐户(Program Account)和数据帐户(Data Account)。

本机程序是验证器实现的一部分,并为 Solana 网络提供核心功能,例如创建新数据帐户和自定义程序。程序帐户是包含可执行代码的自定义程序。数据帐户可以按照其所有者程序帐户的定义存储数据并管理程序状态。

这种账户模型原生支持程序账户创建和管理特定账户,为开发人员提供了定义自定义规则和管理逻辑的能力。通过这种账户模型,程序衍生地址(PDA)(一种数据账户)扩展了 Solana 账户抽象功能的可能性,包括通过多位钱包和双因素身份验证增强用户安全性,以及启用社交恢复机制等。

程序衍生地址

根据上下文,所有账户都位于 Ed25519 曲线上,都有一对公钥-私钥。PDA 位于 Ed25519 曲线之外,是一个确定导出的 32 字节字符串,看起来像一个公钥,但没有相应的私钥。PDA 允许开发人员创建自定义规则和交易签名机制,允许 PDA 的程序账户所有者代表 PDA 自主执行交易,并得到 Solana 网络的完全认可和支持。

PDA 和帐户抽象

现在我们已经了解了 PDA 是如何衍生的,您可能想知道这些概念如何与帐户抽象相关联。帐户抽象是通过执行称为“跨程序调用”(CPI,Cross Program Invocation) 的函数在后台发生的。

CPI 是使程序能够调用其他程序指令的函数,从而实现 Solana 程序的可组合性。当程序通过 invoke_signed 启动 CPI 时,程序可以代表衍生的 PDA 签名。

来源:Solana

为了验证涉及 PDA 的交易的合法性,Solana 运行时在内部调用创建程序地址(create_program_address) 使用 签名者种子 (signers_seeds)和 程序编号(program_id) 的调用程序。如果找到有效的 PDA,运行时会将 PDA 与调用程序关联起来,并将该程序识别为授权签名者。

目前,Squads 正在 Solana 上开发基于 PDA 的账户抽象解决方案。不过,Squads 提供的产品目前更类似于 Gnosis Safe 的智能合约账户解决方案,尚未完全开发出账户抽象功能。

PDA 的优点

  1. 自动智能合约执行:PDA 允许更复杂的智能合约设计,可以通过跨程序调用代表用户自主执行多个操作。
  2. 增强的用户体验:用户无需管理多个交易或面临技术复杂性。
  3. 增强的安全性和灵活性:无需私钥,就可以降低密钥泄露的风险。 PDA 可用于多重签名钱包或适应其他灵活的治理模型,以减少单点风险,对于管理大型共享资源的组织特别有用。

PDA 的局限性

  1. PDA 虽然有利于为帐户抽象功能奠定基础,但与密钥对帐户相比,实施起来可能比较复杂。
  2. 与 ERC-4337 一样,它要求用户将帐户迁移到新帐户,这可能会抑制 Solana 帐户抽象的采用率。

Cosmos 上的账户抽象(Authz 和 Fee Grant)

Cosmos x/authz

随着账户抽象越来越受到开发者的重视,作为 Cosmos SDK 核心部分的 Authz 被推出,允许一个账户通过使用授权来代表另一个账户执行某些操作,这与 EIP-3074 和 EIP 类似-7702。

Authz 附带了几种预定义的授权类型,这些类型将某些操作的执行委托给受让人,从而增强用户体验。

使用 Authz,可以给出 3 种类型的授权:

  1. 通用授权(GenericAuthorization)。 此授权授予授予受让人代表授予者执行消息的不受限制的权限。
  2. 发送授权(SendAuthorization)。 此授权与 ERC20 中的批准类似,旨在让受让人获得正支出限额,该限额定义了可以代表授予人支出的最大金额。
  3. 股权授权(StakeAuthorization)。 该赠款允许受赠者代表赠款人管理委托、取消委托或重新委托等质押操作。

补助金包括 授予者的地址字节、被授予者的地址字节以及授权类型。 还可以定义时间段,限制特定时间段内的权限。在每个块结束时,网络将通过称为修剪的过程删除过期的授权。

了解运营框架

Authz 可用于对各种操作进行授权,但是为了简单起见,我们将研究 authz 如何工作以启用通用投票交易。

  1. 在执行任何授权之前实现授权接口。在此阶段,还将定义消息类型,在本例中为 MsgVote。在这里,我们看到 Alice 授予治理投票行动的授权。
  2. Bob 生成未签名的投票交易。
  3. Bob 生成受资助者投票的已签名并执行的交易。交易完成,授权过期将被取消。

Authz 带来的好处?

  1. 操作安全:验证者和其他用户可以向单独的账户授予权限,以对治理提案进行投票或执行某些操作,从而增强账户安全性并减轻安全负担。
  2. 简化操作:可以在需要访问验证器密钥的情况下执行交易,也可以使用单个交易将 Authz 授予受让人帐户来简化多重签名钱包交易。
  3. 无需迁移:与EIP-3074和EIP-7702类似,授权操作发生在用户的原始帐户中。用户无需将资产从原账户转移到新账户即可实现账户抽象。
  4. DAO 运营效率和灵活性:可以将执行权的子集授予各个 DAO 成员以执行特定操作。
  5. 质押奖励复利:Authz 促进使用重新质押和同等服务来自动复利质押奖励。

Authz 的限制和风险:

请注意您通过 Authz 授权的交易类型。一个恶意的授权(Authorization)可以执行可能对用户有害的各种类型的授权。

  1. 通用授权(GenericAuthorization):给出无限制的许可代表授予者执行所提供的消息。除非完全了解您所签署的内容,否则强烈建议避免签署此类授权类型。某些钱包在签署 Authz 交易时也可能不会提供警告。
  2. 发送授权(SendAuthorization):如果授予者未指定,则允许受让人发送其可以花费的最大数量的代币。验证允许列表也很重要,它指定受让人可以将代币发送到的特定地址。

费用补助模块

另一个让许多人感到沮丧的用户体验障碍是,区块链用户需要持有各种原生代币才能与这些不同的生态系统进行交互。这影响了整体用户体验,尤其是对于非加密货币原生用户来说,他们第一次接触到 Cosmos 生态系统中存在的无数链。

然而,随着费用补助模块的整合,这个障碍已经被突破。与以太坊上支持账户抽象的付款主合同类似,Cosmos 上的费用授予模块允许授予者向受让人授予费用津贴,支付部分或全部交易费用。资金仍由资助者控制,并且可以随时撤销资助津贴。

费用补助的类型

费用津贴可分为两类: 基本津贴和定期津贴。

基本津贴(BasicAllowance)允许受助者使用授予者帐户中的费用,直到达到支出限额或到期时间。然后,该州将终止该补助金。需要注意的是,BasicAllowance 实行一次性费用补助。如果消费限额和时间为空,则费用限额没有有效期和消费上限。

定期津贴(periodicAllowance)允许在每个指定时间段后定期更新费用补助。 period_spend_limit 指定一段时间内可以花费的最大硬币数量。 周期重置 跟踪下一个周期何时发生以及 period_can_spend 跟踪新时期开始之前剩余的硬币数量。

了解运营框架

使用 AllowedMsgAllowance 可为指定的信息类型创建许可。允许可以是 BasicAllowance 或 PeriodicAllowance。如果设置了过期时间,则 FeeAllowance 将在状态队列中排队,并在授予中附加过期前缀,Endblocker 会检查 FeeAllowanceQueue 状态中是否有过期的授予,如果发现则会修剪授权。除了 MsgGrantAllowance 之外,还可以使用 MsgRevokeAllowance 取消收费许可。

Authz 和 Fee Grant 模块结合在一起,解锁了创新和多样化的用例,最终在 Cosmos 生态系统上构建更好的用户体验。

结论

账户抽象 截至 2024 年 5 月 27 日,数据为估计值。

随着现货 BTC ETF 和 ETH ETF 的批准,机构和零售需求显着增加,有望迎来新一波希望接触该行业的用户。随着协议和 dapps 寻求创建无缝体验以扩大其社区,账户抽象将成为今年的一个重要话题。

免责声明

本材料仅供一般信息参考,不构成也不应被解释为任何形式的研究成果、专业建议、招揽、要约、推荐或交易策略。对于本报告中提供的任何一般财务和市场信息、分析和/或意见的公平性、准确性、及时性、完整性或正确性,不作任何明示或暗示的保证、陈述、保证或承诺,也不承担任何责任或义务。 HashKey Capital 承担与使用或依赖任何此类信息有关的责任。本报告中的任何信息如有更改,恕不另行通知。本报告未经香港证券及期货事务监察委员会、新加坡金融管理局或香港或新加坡任何监管机构审阅。

请注意,包括加密货币在内的数字资产具有很强的波动性并容易受到市场风险的影响。数字资产的价值可能会大幅波动,并且无法保证利润或资本保值。在做出任何决定之前,您应该仔细考虑自己的风险承受能力和财务状况。

本报告的分发可能在某些司法管辖区受到限制。本材料并不构成在未授权此类行为的任何司法管辖区或向非法向其分发此类报告的任何人分发任何信息或提出任何要约或招揽。

随时了解最新的 HashKey Capital 新闻 -

网站 - https://hashkey.capital/

推特 - https://twitter.com/HashKey_Capital

领英 — https://www.linkedin.com/company/hashkeycapital/

声明:

  1. 本文转载自[Medium]。所有版权归原作者所有[HashKey capital]。若对本次转载有异议,请联系Gate Learn团队,他们会及时处理。

  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。

  3. 本文的其他语言翻译由 Gate Learn 团队完成。除非另有说明,否则禁止复制、分发或抄袭翻译文章。

即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!