Cover photo

ExNew Insight | 最近突然大火的「账户抽象」和「EIP-4337」到底是什么?

账户抽象,顾名思义与链上账户有关。在本质上讲,账户抽象是实现原生的链上合约钱包的一种方式。那么到底什么是账户抽象和合约钱包,与我们大多数人用的钱包Metamask,Coinbase wallet等有什么区别和优势呢?下面我们详细聊聊。

一、以太坊链上钱包分类

根据钱包的直接控制方式可以分别EOA (Externally Owned Account) 即外部账户和CA (Contract Account) 合约账户,此外还有冷钱包、硬件钱包等,这些不在此文的讨论范围内。

来源:Twiter
来源:Twiter

EOA外部账户,就是通过私钥来控制区块链上地址发起签名、转账、交易等操作,私钥、公钥、链上地址,通过非对称加密的方式生成,由私钥可以生成公钥和链上地址,但这个过程不可逆,所以在EOA中,拥有了私钥就是拥有了整个账户的控制权。

如果受到攻击,私钥被窃取,或私钥遗忘了,怎么办?其实是没办法。从分类上讲,EOA外部账户属于非托管或是自托管式钱包,用户自己负责保管私钥并拥有100%资产掌控权,比如Metamask,相对应的还有托管式钱包,比如大多CEX中的账户等。

CA合约账户,则是由一组智能合约来直接控制,用户可以不用私钥,只要通过密码学的身份验证,就可以通过账户App发起指令,通过智能合约账户和区块链交互,完成转账等交易动作。

不难看出,相比web2的账户体系,EOA外部账户,实现了web3里账户私钥及账户资产拥有自主权(Metamask其实也有风险),但缺点很明显,

1)私钥丢失或被盗取将无法找回

2)账户不支持复杂的账户设计,无法编程

3)账户本身无法升级,私钥泄露只能创建新账户并转移资产

4)因为有私钥和助记词,Web2用户使用门槛高。

相比EOA,CA合约钱包可以解决以上问题。

二、前钱包的事务流程和解决方案

a. 当下EOA钱包方案,如图:

来源:Medium@Ismael Darwish
来源:Medium@Ismael Darwish

EOA事务流中,用户首先用私钥进行ECDSA算法验证,签名并发起交易,签名交易被发送到Mempool中,之后验证者经过一系列验证(签名、nonce值和chainID)后存储在链上。

过程相对简洁、清晰,但仍有些重要甚至致命的问题有待解决,1)私钥保管问题 2)仅限于ECDSA算法的风险 3)交易无法批量处理等。

b. 改进版的CA合约账户方案,如图:

来源:Medium@Ismael Darwish
来源:Medium@Ismael Darwish

改进版的合约账户事务流中,用户使用私钥和任意自定义的算法进行验证和消息签名,把签名后的消息发送给Relayer中继器,在Relayer内,签名消息和中继器私钥进行ECDSA算法验证签名,后将包含签名消息的签名交易发送给中继器EOA,最终完成用户交易上链。

相比EOA方案,并不是由单一的EOA直接发起签名交易指令,改进版方案在多个方面有了提升,

1)私钥的社交恢复,可预先设定多个账户可触达钱包

2)多签交易

3)批量交易

4)定制化的认证逻辑。

目前一些项目,如Argent, Gnosis 和 Loopring wallets采用了改进版方案开发各种应用场景下的合约钱包。

改进版方案依靠Relayer中继器或其他中间机制来完成,中间机制是否值得信任仍是个问号。因此仍需要进一步探索区块链原生的合约钱包解决方案。由此诞生了账户抽象概念下以太坊EIP-4337方案。

三、账户抽象及相关EIP发展

AA (Account Abstract) 账户抽象,在计算机技术中属于数据抽象,本质上是将上文提到的EOA和CA的数据和事务流抽象并统一成一种CA合约账户,用户无需了解底层原理,可以自定义账户认证算法来发起交易、支付费用和需求定制,以此拓展以太坊和促进用户大规模使用。

来源:AstroX Network
来源:AstroX Network

有了账户抽象的概念和愿景,与此相关的以太坊方案EIP(Ethereum Improvement Proposal)也是经历多年发展:

来源:Ethereum Blog
来源:Ethereum Blog

2016年

基于在2015年,Vitalik对Serenity中的账户体系的设计方案基础上,首次提出账户抽象的安全模型,其中所有账户是智能合约账户,拥有自己的智能合约,用户可自定义账户安全模式和gas支付方式等等。

2017年:EIP-86

Vitalik提出了事务来源和签名的抽象EIP-86,具体来说说抽象出了签名验证和nonce检查机制,通过合约账户就可以实现以上两个验证,摆脱传统的硬编码事务处理的机制,帮助了多签钱包等场景的实现。

2020年:EIP-2938

EIP-2938的提出进一步实现了账户抽象,允许合约账户为“顶级账户”,来支付gas和执行事务,从根本上突破了传统的事务有效性认证。传统模型中,ECDSA、nonce值和账户余额可以非常简单的定义账户,同时也会有很多限制。EIP-2938则可以实现:

  1. 多重签名钱包和社交恢复账户

  2. Gas支付的多种场景

  3. 非公链原生token支付gas

  4. 可以使用ECDSA以外的算法验证方案

  5. 隐私保护

通过EIP-2938方案,以上场景均可以间接实现,但实现效率并不高,同时需要公链的共识层协议变更(硬分叉来实现),所以EIP-2938并没有真正的实施。

2021年:EIP-4337

Vitalik和社区提出的EIP-4337,提供了一种既不需要共识协议层更改,还能达到EIP-2938一样效果的解决方案。

四、EIP-4337方案如何实现账户抽象

EIP-4337技术文档中有提到:“账户抽象化的关键目标是,允许用户使用包含任意验证逻辑的合约账户,而不是使用EOA作为主要账户。完全消除用户使用EOA的任何需要。“ 目前从应用的角度来看,账户的改进方向分为:完全摆脱EOA和EOA授权。EIP-4337理想是实现前者。

账户抽象CA合约账户的事务流程展示,如图:

来源:Vitalik‘s Medium
来源:Vitalik‘s Medium

账户抽象CA全生命周期的事务流程,如图:

来源:web3 edge
来源:web3 edge

符合EIP-4337的CA账户事务流中,用户无需记住私钥,直接通过App签名一系列的“用户操作”UO(UserOperation)并存入UserOperation Mempool中,打包者Bundler在Mempool中挑选“用户操作”UO打包,形成多个组合Bundle transaction,Bundlers调用入口点合约Entry Point Contract 进行循环验证,完成验证后发起交易并上链,完成执行。

此处的Bundler类似于公链中的排序器 (sequencers) 的角色。可以看出相比EOA账户,CA流程复杂但可操作性、自定义、安全等特性较高。

抽象账户CA方案优势明显,但同样面临一些问题,最突出的是gas成本比EOA方案更高,在当下还未完成Sharding的以太坊layer1中很难实施。

其主要原因是储读、写成、合约执行、日志费用等需要消耗更多的资源,支付更多的gas fee,因此在layer2上CA方案具有规模化应用的转机,Rollup会对数据进行压缩处理,降低资源占用。

五、EIP-4337应用场景实例

  • 用EOA发起签名的“用户操作”UO,进行接下来的智能合约钱包的交易操作,其中用户签名UO无需支付gas,gas fee通过入口点合约的合约钱包收取,并返给打包者bundler。

来源:Twitter
来源:Twitter
  • 通过Paymaster合约实现代付gas fee。入口点合约的验证中包括Paymaster同意代付和足量支付的ETH质押,在执行Paymaster支付流程后,用户的合约钱包可给paymaster支付等额的其他代币,一次实现用户完成交易但账户中没有公链原生代币的情景。

来源:Twitter
来源:Twitter
  • 上文有提到合约账户可以使用ECDSA以外的算法验证,比如在多个签名者的场景下,钱包App使用聚合签名算法(BLS)来签名“用户操作”UO,在入口点合约中用聚合签名来验证,最终完成聚合合约钱包的交易执行和上链。

六、总结

作为用户进入Web3的入口,钱包一直是许多加密领域创业团队想要攻占的桥头堡。

面对拥有巨量用户的EOA钱包巨头们,创业者们如何开辟新路,Unipass的做法可以给我们一些启示,Unipass 知县认为:“**合约钱包和 EOA 钱包不是竞争更倾向于合作、共存的关系,**比如我们可以嵌在 EOA 钱包里面,如果新进来的用户注册钱包到私钥这一步的时候感觉麻烦不想做了,这时候就可以通过我们提供的电子邮件方式挽留用户,另外现存的用户也可以使用智能钱包的功能,用现在的地址一键控制智能钱包,能让流程更加顺畅“。

个人畅想未来账户抽象的CA在应用层,更像是一个app store应用商店,用户在商店选择不同功能的app或插件来实现合约账户需求的定制化,这样我们的应用层钱包,就像从基础功能机飞跃成了智能机一样。当然,其中的创业机会也非常多!


Author: StevenZhang ( ExNew Labs Co-Founder)

Wechat: tao107242810

Twitter: Stecoin@StecoinZhang

Web3 波澜壮阔,至今仍是序幕。剧本怎么演,我们既是演员也是编剧。一份工作,不止是一份薪水。一位人才,不止是一个生产力。纵情向前,添砖加瓦,我们才能真正迎来下一代更高效、更透明、更民主的互联网时代,并且属于你我!

ExNew Labs,是由社区驱动的去中心化的职业成长社区,通过社区和产品,促进 Buidler 之间的互相发现与高效协作。正式成立于 2022 年 9 月,我们正在构建全新的产品形态和服务内容,即将推出新产品 FindingX。

🌍 求职招聘 Website:https://exnew.finding3.io 🔥 订阅 JD 更新:Telegram channel:https://t.me/+3QlRs_fZwWNlYjM1 🌊 Twitter:@ExNew2050 🎫 即刻: https://okjk.co/4VlwLd

直接入群来聊
直接入群来聊

本文参考资料:

https://academy.binance.com/zh/articles/custodial-vs-non-custodial-nfts-what-s-the-difference

https://web3edge.io/newsletter/unleashing-account-abstraction-with-eip-4337/#

https://mirror.xyz/zhunianpan.eth/dzwYBD1MB-Noswz0DATjREtTRCkzCD0cwalZySxmxV4

https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8

https://mp.weixin.qq.com/s/ZGzw3VE-8KEQE5xu7Jw_8A

https://foresightnews.pro/article/detail/17412

https://www.theblockbeats.info/news/32268

https://web3caff.com/zh/archives/26165