Account Abstraction
账户抽象
一种让区块链账户像智能合约一样工作的模式:无 Gas 交易、社交恢复、批量调用、自定义鉴权规则。
在标准 EVM 链上,每个账户要么是外部拥有账户(一把私钥),要么是智能合约。ERC-4337 引入了第三类:用户以一个智能合约账户的身份进行交易。因为账户本身就是合约,它可以承载逻辑。这些逻辑可以替用户付 Gas、通过 Guardian 从丢失的密钥中恢复、把多个调用打包进一笔交易,或强制执行像日支出上限这样的自定义鉴权规则。
对用户体验的影响很大。有了 AA,最终用户可以用邮箱加 Passkey 注册,而不再需要助记词。Gas 可以由应用代付,或用应用的代币支付,而非必须用 ETH。钱包可以对可疑交易做速率限制。代价是更高的链上复杂度和每笔交易更高的 Gas 成本。
举个实际例子:一个消费级支付应用想要非加密原生的用户。没有 AA,注册意味着「记下这十二个单词,丢了你的钱就永远没了」,这会扼杀漏斗。有了 AA,用户用一个 Passkey 注册,应用代付头几笔交易、让他们从不见到 Gas 费,丢失的设备通过 Guardian 而非助记词来恢复。同样的模式让钱包能在链上强制执行一个日支出上限,而那是一个中心化应用永远无法可信地做出的那种保证。
创始人常犯的错误是把 AA 当作一个勾选框。它改变了安全模型:社交恢复为普通用户去掉了助记词的自伤陷阱,却引入了 Guardian 被攻破这一新的攻击类别,对宁愿自己持有密钥的高级用户而言反而严格更差。诚实的取舍是,AA 用更多需要审计的合约代码和每个操作更多的 Gas,换来主流用户体验。Wavect 已经把账户抽象钱包和 Snap(MetaMask 插件)推到生产环境。这项技术是真实的,并且越来越主流。实现并不简单。如果一家供应商把 AA 当作便宜的附加项报价,请问清楚他们用的是哪一套基础设施、合约代码经过了哪些安全审计。适用于 zero-knowledge 电路的同一套审计纪律,在这里同样适用。