账户抽象系列EIP梳理

ERC-4337

2021年,vitalik提出一种新的账户抽象模型,主要目标是让智能合约账户具有 EOA 主动发起交易的特性,完整的账户抽象包括身份验证、授权、重放保护、gas支付和执行,同时不牺牲去中心化和审查抵抗性。最终ERC-4337 成为以太坊账户抽象的最终实现方案。 EIP4337的工作原理简述: 1.角色:

  • 首先,智能合约钱包本身,会通过打包器触发入口合约来间接触发,在链下验证交易,然后在链上执行。

  • 其次,打包器(Bundler),用于批量验证和执行用户操作(UserOperation,即ERC 4337定义的智能合约钱包的交易类型)。

  • 第三,入口合约(Entry Point Contract)是在以太坊只存在一份的全局合约,用于标准化交易执行并防止打包器受到恶意交易的DoS攻击。

  • 第四,代付合约(Paymaster),用于代表钱包用户处理gas支付。

  • 第五,合约工厂(Wallet Factory),用于标准化钱包创建的参数和流程。

  • 第六,签名聚合器(Signature Aggregator),用于将多个交易的签名聚合为字节,以便更快地验证和执行交易。

2.工作流程:

  • 用户向Bundler发送UserOperation

  • 如果UserOperation填写了initCode参数,Bundler会触发Wallet Factory来创建有确定地址的新钱包

  • 如果UserOperation填写了paymasterAndData参数,Bundler会收取Paymaster在入口点合约上质押的以太坊来支付gas。如果没有填写paymasterAndData,Bundler会收取智能合约钱包在入口点合约上质押的以太坊来支付gas

  • Bundler可以选择性地使用签名聚合器

  • Bundler会使用validateOp、validatePaymasterOp和validateSignatures函数在链下模拟验证UserOperation,确保签名正确且UserOperation有足够的gas

  • 如果链下模拟验证通过,Bundler将使用上述函数在链上验证UserOperation

  • 如果链上验证通过,Bundler将在链上执行UserOperation,无论执行是否成功,都会扣除gas

image.png

优点:

无需硬分叉:ERC-4337 不需要通过硬分叉来实现,不需要对以太坊的协议进行任何修改。

兼容性:这种方法与现有的 EOA 系统兼容,使得过渡更为平滑。

缺点:

  • 用户无法在不迁移所有资产和活动的情况下升级现有账户。

  • 额外的gas开销(基本用户操作约42k gas,而基本交易约21k gas)。

  • 相比协议内审查抵抗技术,用户操作可能被遗漏。

EIP-3074

EIP-3074 的核心是允许外部拥有账户(EOA)像智能合约钱包一样运作,无需部署额外合约或手动迁移。

EIP-3074 引入了两个新的以太坊虚拟机指令:AUTH 和 AUTHCALL,使 EOA 连接起一个智能合约,并将交易的控制权交给智能合约。 -

  • AUTH:EOA 可以调用 AUTH 来授权给定的智能合约代表其 EOA 执行操作。

  • -AUTHCALL:获得授权的智能合约可以使用 AUTHCALL 为 EOA 执行交易。

EIP-3074 主要流程为:

  • 首先,用户用私钥签署一条消息,其中包含他们希望将钱包委托给的合约,并将其发送给中继者。

  • 中继器将此签名转发给称为调用者合约,调用者使用 AUTH 操作码验证签名。此过程完成后,Invoker 合约将获得用户钱包的权限,并可以代表用户发送交易。

  • 当 Invoker 合约使用 AUTHCALL 操作码发送交易时,交易的发送者被设置为授予权限的用户钱包的地址。

与ERC-4337的关系

  • 共同点:EIP-3074要实现的目标跟ERC-4337是一样的。但方式不同。

  • 不同点:EIP-3074的交易的’from’是你的EOA,而不是某个合约。EIP-3074的账户所有者还是EOA,但ERC-4337的账户所有者是智能合约;EIP-3074无需手动迁移,避免的L2和诸多web3应用程序的适配。委托机制可能导致安全问题,因为如果授权给恶意合约,可能会导致资金被盗。[解决这个问题的方法是钱包服务提供商甚至不允许用户对任何合约进行授权,他们可能会保留一份用户可以委托授权的智能合约白名单列表,并且此列表之外的任何合约都不会显示给用户。]

EIP-5003

EIP-5003是对EIP-3074的扩展,引入了新的AUTHUSURP 操作码,允许在 EIP-3074 授权的合约地址上部署代码,从而为 EOAs 提供迁移路径,摆脱对 ECDSA 的依赖。主要解决采用EIP-3074的一个问题,即EIP-3074 是对智能合约的临时委托,可撤销。

而EIP-5003 是从 EOA 永久迁移并从 EOA “转换” 到智能合约账户。****可以将EIP-3074 + EIP-5003当作是另一种与ERC-4337完全不同的一套账户抽象实现方案。 问题:以太坊上出现了两种类型的账户抽象系统.ERC-4337已经上线主网,EIP-3074也纳入接下来进行的主网升级,一旦升级完成,两种不兼容的账户抽象系统并存。

EIP-7702

EIP-7702 提出了一种同时接受 contract_code 和签名字段的新交易类型,在开始执行交易时,它将签名者账户的合约代码设置为 contract_code。在交易结束时,它会将代码重新设置为空。 -

具体来说,它:

  • 检查你的账户合约代码是否为空;

  • 如果为空,则设置为提供的合约代码;

  • 根据提供的智能合约处理交易的方式执行交易;

  • 将账户合约代码设置恢复为空;

与EIP-3074的核心区别:

1.无需引入新操作码不需要引入新指令,服用已有的指令,但它在交易中临时应用智能合约代码,不需要永久改变以太坊虚拟机。

  • AUTH -> 调用「verify」(验证)

  • AUTHCALL -> 调用「execute」(执行)

高度兼容

  • EIP-7702 与 ERC-4337 的智能合约钱包代码高度兼容,可以直接利用已经为 ERC-4337 编写和部署的智能合约代码,使得现有的账户抽象化工作可以被重用,避免分裂现有的账户体系。

  • 方便未来永久迁移至智能合约账户EIP-7702通过在【在交易结束后不将代码设置为空】来实现临时代理。EIP-7702 的基础上实施 EIP-5003(允许 EOA 永久转变为智能合约账户)变得相对简单,通过设置不在交易结束后清除代码,可以实现 EOA 到智能合约的永久转变。4.EIP-7702 不仅解决了当前的问题,还通过与未来可能的账户模型的兼容性设计,确保了长期的有效性和实用性。

EIP-7851

EIP7851 通过引入一种新的预编译合约,允许给智能合约代理控制的EOA 去激活或使私钥无效。

  • 激活状态: 0xef0100 || address

  • 无效状态: 0xef0100 || address || 0x00

在无效状态,EOA 账户无法使用其它私钥。

参考

https://eips.ethereum.org/EIPS/eip-4337

https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3074.md

https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7851.md

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • ## 一、以太坊经典账户 要了解抽象账户,必然绕不开以太坊的两大经典账户,因为抽象账户为解决它们之间的缺陷应运而生...
    奥大维阅读 1,084评论 0 0
  • 账户抽象允许我们使用智能合约逻辑来指定交易的效果,以及费用支付和验证逻辑。这带来了许多重要的安全好处,例如多重签名...
    斧正堂阅读 299评论 0 7
  • zkSync 2.0目前主网上线仍是Baby Alpha 版本,代码尚未开源。将在 Fair Onboarding...
    雪落无留痕阅读 535评论 0 1
  • 原文:Quick Glossary 这个快速词汇表包含许多与以太坊相关的术语。这些术语在本书中都有使用,所以请将其...
    Jisen阅读 1,420评论 0 5
  • 账户抽象与智能钱包的热度已经持续了几个月了,不少朋友对于什么是账户抽象,为什么需要智能钱包依然存在疑问,所以我尝试...
    斧正堂阅读 95评论 0 6