探讨账户抽象的概念、实现方法以及优缺点。
撰文:Cregis Research
探讨账户抽象(AA)的价值前,需要先复习拜占庭问题和以太坊的痛点。
在传统互联网中,当 A 付钱给 B 进行网购时,发生了两件事情: 1、A 把钱的价值转移给了 B,是为价值转移;2、是 A 把支付一块钱的信息通知了 B;从信息的角度来看,A 失去了一块钱,B 多了一块钱,而 A 将获得某样商品,只有上述 3 个信息同时确认后,一个网购订单才算完成。如何让上述三个过程同步确认,可以理解为拜占庭问题。
比特币或拜占庭问题想解决的是,在互联网环境中或计算机环境中,实现现实世界中的原子操作,即在发生价值转移的同时,也发生信息转移。然而,比特币基于其去中心化的理念,无法构造一个复杂的互联网环境。
对此, 2012 年尚未封神的 Vitalik Buterin 曾在 Bitcoin Core 发起提案希望在比特币的基础上增加图灵完备性,以实现更多的功能,被无情拒绝后他建立了以太坊生态。虽然以太坊和智能合约的诞生让区块链世界进化到一个全新的高度,但在去中心化环境中运行的以太坊依然面对着最大的痛点:线性环境无法执行高并发和复杂代码编译;这就是 V 神一直鼓励用户进入 layer 2 网络,推崇合约钱包和账户抽象,甚至鼓励用户将部分隐私交给项目方以换取社交登录、社交恢复等接近 Web 2.0 的用户体验的原因:如果以太坊不进行这些改变,它就无法实现其愿景,永远只能作为比特币的附属品。
核心话题一:账户抽象到底是什么?
以太坊公链有两种账户类型,一种叫外部地址账户(EOA),它的特点是免费创建,可以通过签名直接发起交易;另一种是合约账户(CA),有自己的代码区和数据区,本质上就是一个智能合约,所以无法直接发起交易;由于创建一个合约账户=创建一个智能合约=执行链上交互,所以需要付费(这就是 V 神之前在关于 MPC 钱包与 CA 钱包的争论中,提及 CA 钱包创建费用是 xx 美元的因果)。而当 EOA 将一笔资产发送到 CA 中后,理论上这个 CA 就可以成为账户抽象(Account Abstraction)钱包了。
账户抽象(AA)钱包可以理解为一种去中心化的「钱庄」。EOA 可以将资产放在这个「钱庄」中,需要转账时只要通知「钱庄」,由「钱庄」完成转账操作。这样,价值转移和信息转移不再同时发生在 EOA 上,而是在一个抽象账户上发生。当然,这些交易最终还是需要 EOA 发出交易指令并签名执行的。
核心话题二:账户抽象的功能是怎么实现的?
随着 EIP-4337 协议的内容更新,资本市场对账户抽象概念的炒作(或神化)到达了顶点,其中最为人称道的当属【社交登录】【社交恢复】【陌生设备恢复】【无手续费转账】等概念;但其实合约账户(CA)本身是去中心化产物,而资产链上交易的操作依然需要通过 EOA 签名执行,所以通过 web 2.0 信息、生物学信息和身份验证器等工具进行的【社交登录 / 恢复】必然须要中心化服务配合(这也是前文提到「 V 神甚至鼓励用户让渡部分私隐,以换取接近 Web 2.0 的用户体验」的因由)。
但【陌生设备恢复】这个在 EOA 钱包中备受争议的功能(例: Ledger 钱包之前推出的私钥恢复服务),在 CA 钱包中却能通过在智能合约中写入备用的 EOA 实现,无须将任何敏感信息交予钱包运营方,无须让渡任何私隐信息,所以反而比 EOA 钱包推出的恢复功能更安全。
最后,【无手续费转账】是如何实现的呢?首先大家注意一个重点:CA 钱包和账户抽象(AA)钱包,目前仅能在支持 EVM 的公链上运行,主战场必然是以太坊。众所周知,在 EIP-1559 提案被执行前,以太坊的 POW 矿工可以自由选择一笔链上交易进无偿打包,但 EIP-1559 提案通过后,由于通缩燃烧的 base fee 是必须支付的,导致以太坊网络不存在真正的免费交易。接下来 Cregis Research 为大家详细分析,AA 钱包【无手续费转账】是如何实现的:
首先以 USDT 的智能合约为例:它包含了代码区和数据区,数据部分可以理解为一个表格,记录了每个 EOA 拥有多少 USDT,即每个 EOA 的余额。在转账时,会扣除一个账户的余额,然后给另一个账户的余额增加。
此时我们代入 game-fi 或 social-fi 的思维:项目方希望降低参与门槛,让用户无需持有 gas fee 也能参与。虽然目前的以太坊 EOA 无法做到,但聪明的科学家们依然想到了间接的解决方按: Meta Tx & Gas station network(GSN),原理是 token 交易者(张三)签名执行一个类似交易的结构化数据(mdata),然后发给愿意支付 gas fee 的人(李四),李四将包含 mdata 的交易发送给兼容 GSN 的智能合约执行,并支付链上 gas fee 完成转账,且以太坊网络的共识节点确认转账的发起人是张三。
上述的解决方案,是 EIP-4337 提案的重要组成部分。EIP-4337 提案是一个不改变以太坊共识层的交易优化方案:当用户希望发起一笔交易,TA 将只须传递一份 msg,但这份 msg 并非发送到以太坊主网上,所以用户也无须支付 gas fee;这份 msg 将发送到一个内存池,在内存池中按照 EIP-4337 的标准会进行鉴权,确认无误则会被运营方的 EOA 发布到以太坊链上,最后由 POS 节点将交易录入区块。此外,EIP-4337 提案还包括了打包者可以获取哪些好处,以及打包失败如何退款等一系列操作的标准;PS. 如果在 EIP-4337 提案中加入将运营方 EOA 与 msg 的关联隐藏的办法,则还能实现隐私交易的功能。
EIP-4337 提案:不改变以太坊共识层的方案
谜团解开:账户抽象(AA)钱包=合约账户(CA)+ 链下通信标准
分析到这里,相信大家也明白:虽然 EIP-4337 提案的内容可能需要 11 ~ 13 个月才能全部完成,但账户抽象(AA)钱包并非只能通过 EIP-4337 协议实现,所以市场上确实出现了货真价实的 AA 钱包产品,只是 EIP-4337 协议大概率会是认可度最高的操作标准与方案。
而做为老牌的企业级钱包,Cregis 当然可以提供 CA 和 GSN 服务:CA 在私有化部署中可选,GSN 则在今年 4 月部署在波场网络,迄今已为客户节省 193 万个 TRX;但 Cregis 却没有急于将 AA 钱包服务公开上线,原因正是上述的行业标准尚未落实,贸然上线可能会导致日后产品不与主流标准兼容。
知名的多签钱包运营方 Gnosis · Safe ,也是通过合约账户(CA)实现多签功能,同样没有急于推出 AA 钱包,推测可能也有这方面的顾虑。
核心话题三:AA 钱包真的完美吗?有什么缺点?
AA 钱包的优点很多,但也并非完美。一周前,V 神在自己的推特 AMA 点评 CA 和 MPC based EOA,各路大神也在这条推特下讨论得非常深入,这里为大家总结几条客观缺陷:
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。