用一个小时讲清楚账号抽象这件事

作者:十四菌来源:十四君2023-06-03

2个月前,我收到hacker dojo平台的邀约,才发现在这个浮躁的时代,有这样一个只关注底层技术并免费分享的平台。我也想尝试能否用直播的形式,为大家讲清楚4337账号抽象的底层逻辑。

本文分享直播课件,并梳理若干观众的核心问题。

完整视频见b站:

https://www.bilibili.com/video/BV1xs4y1i7Js

全文概览

以太坊

1、账号抽象之路

1.1、钱包赛道分类

所谓账号抽象. 他的账号是什么?

现在有两大类的账号, 一个叫EOA账号一个叫CA账号,可以说除了4337以外的所有合约钱包,都可以称作一个非标准合约钱包,MPC钱包. 它也是现在非常火热的一个领域啊. 前一阵子可以说是硅谷一条街. 然后起码有找出五家在做MPC钱包的,多数采用的是TSS的方式. 它相当于每一个分片各自签名. 签完名大家汇总

那MPC钱包跟账号的钱包. 它是有显著区别的. EOA和CA更多讲述的是链上主体. mpc指的是你链下的. 私钥管理的一个技术方案

以太坊

1.2、为什么要抽象?

以太坊上从交易类型可以区分出3种:Legacy类型、EIP2718类型、Eip1559类型,目前主流是1559类型,目的是在传统交易上切割了价格构成。

那有了这样子的分类. 我们可以得知他们都跟账号抽象. 没有关系. ,所以要从账号结构与交易结构本身来看抽象的作用点,其核心结构是:

  • nonce:防重放
  • balance:余额记账模型
  • storageRoot:合约的Storage变量KV的MPT树根
  • codeHash:合约代码的hash,也是找到code字节码的Key

以太坊

从交易结构也可以看到他的字段

  • Nonce
  • Gas Limit (STARTGAS)
  • Gas Price
  • To (MSG.SENDER)
  • VALUE (MSG.VALUE)
  • V, R,S (Signed TXwith SENDER)
  • Data Bytecode

可以说什么都有,但是唯独没有From地址,因为实际的From信息是基于ECDSA签名解签结果得出的,因此无论是4337还是Native AA都是可以自定义From方,这就是意味着能够将.控制权跟所有权和账号主体剥离.

这就是我们现在说抽象. 并且它不仅是要抽象一些显性的数据. 也要抽出这种交易的隐藏数据

以太坊

2、概览EIP为什么是4337?

拓展阅读:以太坊账户抽象万字研报:拆解 10 个相关 EIP 提案与冲击千万级日活用户瓶颈的七年之路

以太坊

总结上诉的历程,可以发现4337的核心优势在于应用层的分类,抽象这件事,修改底层架构并不难,而是做到兼容历史包袱难

以太坊


3、4337的系统结构概览


以太坊

3.1、综合对比方案优缺

以太坊

3.2、运作机制与表现

以太坊

3.3、EntryPoint合约的实现细节

以太坊

拓展阅读:以太坊账号抽象ERC4337的过审方案解读(上)


4、问答环节:

1、智能合约钱包gas费高的问题可以被解决吗?

可以解决一部分,gas费是高还是低,需要对比来得出

首先,gas的构成是这样的:单笔eoa转账交易,至少是21000的gas大概 $0.22 ,而智能合约钱包会需要更高的gas是因为,需要增加上部署合约,调度合约,合约扣款计算,所以必然高于eoa转账。

其次,解决的方式是基于4337的捆绑交易,由于一笔交易至少21000gas,而捆绑交易则是多笔交易共享21000的gas,如果10笔一起上报,则是21000+10操作消耗,,只要操作消耗10是大于 21000*9的,就会划算。

最后,gas高的核心原因是eth币本身性能局限,币价太贵了,所以要等待l2发展后,带来更低成本的并发,从而在根本解决gas高的问题。

总之,L1还是更适合做存储一些,L2才是性能的破局之道。


2、传统EOA钱包是否可以迭代出智能合约钱包的社交恢复、多签、批量付款等功能?**

部分功能可以迭代出,但大部分不可以。

传统钱包基于ECDSA算法,固定由私钥计算公钥,无法有合约钱包的特性,曾经有提案是更改签名算法的,如果实施则可能实现多签(或者基于mpc+tss实现目前的分片密钥多签),至于社交恢复和批量付款是不可能通过密码学解决的。


3、怎么理解MPC钱包和智能合约钱包,这两个提升用户体验的方向呢?

个人认为这是两个维度的管理,mpc钱包管理链下的分片密钥,而合约钱包则是管理链上主体,提供可编程的链上管理能力。

两者可以同时使用。合约钱包完善后可以替代mpc的多签和恢复更改等功能,而mpc无法提供合约的优势能力

  • eoa钱包:注册简单,历史悠久,亦可基于链上合约钱包等可实现多签,偏个人用户
  • mpc钱包:天然带多签,易于防止资产流失,且属于近些年新推出,所以偏机构金库管理用
  • 智能合约钱包:目前使用成本较高,适合高资产人士,资产流转,交易操作公开透明,易于dao投票和公开执行逻辑


4、从技术上看,未来会全部是智能合约钱包吗?这是公认的趋势吗?当前EOA钱包巨头们会被淘汰or进化成其他形态吗?

是的,4337也只是过渡态,最终的形式是Native AA


5、如果有足够好的 MPC+TSS 方案,用户不需要助记词而且安全性也有保障,那我们还需要合约钱包吗?

这个问题背后是不可能三角之间的妥协,安全与便捷均达成必然会在去中心化程度上受到影响。合约钱包还额外具有可信操作、时间锁、社交恢复等功能可以继续作为 DAO 团队金库等场景应用。


6、4337仍然依赖于EOA账户签名,真的能给用户体验带来质的飞跃吗?

目前短期来看是会依赖于 EOA 账户签名,长期来讲也必然需要管理某种签名算法对应密钥,复杂度是不变的,甚至操作的逻辑变得更复杂了。

因此虽然有基于合约钱包即捆绑交易等功能点上的提升,但用户体验本身并不会有质的飞越。