解释 EIP-4337

news/2025/10/24 13:02:26/文章来源:https://www.cnblogs.com/gyc567/p/19162985

简单来说,EIP-4337 旨在实现“账户抽象”,让智能合约钱包成为用户的默认和主流钱包,从而极大地改善用户体验和安全性。

下面我将从几个方面详细解释 EIP-4337:

1. 核心问题:以太坊的两种账户

在理解 EIP-4337 之前,需要先了解以太坊的现状:

  1. 外部拥有账户:也叫普通钱包,比如 MetaMask。它由私钥控制。

    • 优点:简单,可以发起交易。
    • 缺点
      • 安全性有限:私钥丢失 = 资金永久丢失。
      • 功能单一:只能执行简单的转账和合约调用。
      • 用户体验差:用户必须理解 Gas费、原生代币(ETH)、助记词等复杂概念。
  2. 合约账户:由部署在链上的代码控制的账户。

    • 优点:功能无限可能,可以实现复杂的逻辑,如多重签名、社交恢复、交易限速等。
    • 缺点不能主动发起交易。传统上,合约钱包需要一个EOA来“触发”它,这使它无法成为独立的初始交易发起者。

“账户抽象”的目标就是让合约账户也能像EOA一样主动发起交易,从而让功能强大的智能合约钱包成为用户的首选。

2. EIP-4337 的解决方案:避开共识层修改

之前的账户抽象提案(如 EIP-2938)需要修改以太坊的底层共识协议,这是一个漫长而复杂的过程。EIP-4337 的巧妙之处在于,它完全在更高层的应用层实现了账户抽象,不需要改变以太坊核心协议。

它通过引入一组新的内存池(Mempool)和角色,模拟了一个新的交易流程。

3. EIP-4337 的核心组件与工作流程

它引入了一些新概念:

  1. UserOperation

    • 这不是一个传统的“交易”。你可以把它理解为表达用户意图的“伪交易”对象
    • 它包含了执行动作、签名、Gas参数等信息,但它是发给新的“UserOperation内存池”的。
  2. Bundler(捆绑器)

    • 类似于现在的矿工/验证者。Bundler 监听 UserOperation 内存池,将多个 UserOperation 打包成一个单一的、有效的以太坊交易。
    • 这个交易会调用一个特殊的入口点合约。
    • Bundler 支付这个打包交易的 Gas 费,并从用户那里获得补偿(类似小费)。
  3. Entry Point(入口点合约)

    • 一个全局的、标准化的智能合约。它是整个系统的协调中心。
    • Bundler 的交易就是调用这个合约。
    • Entry Point 负责验证每个 UserOperation 的签名和支付能力,并执行用户的指令。它确保了系统的安全和无信任运行。
  4. Paymaster(支付主管)

    • 一个可选的智能合约,它允许第三方为用户支付Gas费
    • 这开启了“无Gas”交易体验,让dApp项目方可以为用户垫付费用,或者允许用户使用任何ERC-20代币(如USDC)来支付费用,由Paymaster自动兑换成ETH。

工作流程(以“无Gas”交易为例):

  1. 用户发起意图:用户在dApp上点击一个按钮,他的智能合约钱包创建一个 UserOperation,说“我想执行X操作”,并签名。这个操作被发送到专门的 UserOperation 内存池。
  2. Bundler 打包:一个 Bundler 节点从内存池中挑选一批 UserOperation(包括用户的),并将它们打包成一个交易,发送给 Entry Point 合约。
  3. Entry Point 协调
    • Entry Point 合约首先调用用户的智能合约钱包,验证用户的签名是否有效。
    • 然后,它调用 Paymaster 合约,确认该项目方愿意为用户支付Gas费。
  4. 交易执行与支付
    • 验证通过后,Entry Point 执行用户请求的操作(例如,在Uniswap上交换代币)。
    • 交易完成后,Entry PointPaymaster 那里扣除所需的Gas费,并支付给 Bundler。
    • Bundler 赚取了Gas费,用户享受了“无Gas”体验,dApp项目方获得了用户增长。

4. EIP-4337 带来的主要优势

  • 更好的用户体验
    • 无Gas交易:dApp可以为用户付费,用户甚至感觉不到Gas的存在。
    • 任意代币支付Gas:可以用USDT、USDC等支付网络费用。
    • 批量交易:将多个操作合并为一笔交易,只需确认一次。
  • 更强的安全性
    • 社交恢复:如果你丢失了私钥,可以通过你信任的朋友或设备找回你的钱包。
    • 多重签名:为高价值交易设置多个审批人。
    • 交易限制:设置每日交易限额,防止黑客一次性转走所有资产。
    • 恶意软件保护:可以设置交易黑名单,自动拒绝向已知恶意地址转账。
  • 灵活性与创新
    • 开发者可以自由设计各种功能的智能合约钱包,例如订阅制支付、到期账户等。

5. 现状与生态

EIP-4337 已于 2023 年 3 月在以太坊主网上线。目前已经形成了一个活跃的生态:

  • 智能合约钱包Safe(原Gnosis Safe)StackupBiconomyArgent 等都已支持 4337 标准。
  • Bundler 服务:Stackup、Pimlico、Alchemy 等提供 Bundler 基础设施。
  • Paymaster 服务:许多项目提供灵活的 Paymaster 服务,帮助 dApp 实现无Gas交易。
  • SDK 与工具:有成熟的开发者工具来帮助集成。

总结

EIP-4337 是通往下一代区块链大规模应用的关键基石之一。 它通过一种巧妙的、无需分叉的方式,将区块链钱包从“技术专家的工具”转变为“普通用户可用的产品”,极大地降低了使用门槛,并为安全和创新打开了新的大门。它正在推动以太坊从“可编程货币”向“可编程账户”演进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数论常见结论及例题

数论常见结论及例题 常见结论 球盒模型(八种) 参考链接。给定 \(n\) 个小球 \(m\) 个盒子。球同,盒不同、不能空隔板法: \(N\) 个小球即一共 \(N-1\) 个空,分成 \(M\) 堆即 \(M-1\) 个隔板,答案为 \(\dbinom{n-1…

材料包含与下载漏洞

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

N8N Workflow Collection - 专业级自动化工作流库 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:Elasticsearch面试精讲 Day 23:安全认证与权限控制

完整教程:Elasticsearch面试精讲 Day 23:安全认证与权限控制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

Min25 筛

Min25 筛 求解 \(1-N\) 的质数和,其中 \(N \le 10^{10}\) 。 namespace min25{const int N = 1000000 + 10;int prime[N], id1[N], id2[N], flag[N], ncnt, m;LL g[N], sum[N], a[N], T;LL n;LL mod;inline LL ps(LL …

莫比乌斯函数/反演

莫比乌斯函数/反演 莫比乌斯函数定义:\(\displaystyle {\mu(n) = \begin{cases} 1 &n = 1 \\ (-1)^k &n = \prod_{i = 1}^k p_i \text{ 且 } p_i \text{ 互质 } \\ 0 &else \end{cases}}\) 。莫比乌斯函数…

同余方程组、拓展中国剩余定理 excrt

同余方程组、拓展中国剩余定理 excrt 公式:\(x \equiv b_i(\bmod\ a_i)\) ,即 \((x - b_i) \mid a_i\) 。 int n; LL ai[maxn], bi[maxn]; inline int mypow(int n, int k, int p) {int r = 1;for (; k; k >>=…

完整教程:微软2025教育AI报告:教育群体采用AI的比例显著提升

完整教程:微软2025教育AI报告:教育群体采用AI的比例显著提升pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

康拓展开

康拓展开 正向展开普通解法 将一个字典序排列转换成序号。例如:12345->1,12354->2。 int f[20]; void jie_cheng(int n) { // 打出1-n的阶乘表f[0] = f[1] = 1; // 0的阶乘为1for (int i = 2; i <= n; i++)…

求解连续数字的正约数集合——倍数法

求解连续数字的正约数集合——倍数法 使用规律递推优化,时间复杂度为 \(\mathcal{O}(N\log N)\) ,如果不需要详细的输出集合,则直接将 vector 换为普通数组即可(时间更快) 。 #include <bits/stdc++.h> usi…

git回滚代码

回滚上一次提交是指撤销最近一次的git提交操作。在实际使用中,有两种常见的方法可以实现这个操作: 方法一:使用git revert命令回滚 1. 首先,通过命令`git log`查看提交记录,找到要回滚的提交的hash值。 2. 使用命…

Apache POI 在 Linux 无图形界面环境下因字体配置问题导致Excel导出失败的解决方案 - 详解

Apache POI 在 Linux 无图形界面环境下因字体配置问题导致Excel导出失败的解决方案 - 详解2025-10-24 12:52 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !importan…

扩展欧几里得 exgcd

扩展欧几里得 exgcd 求解形如 \(a\cdot x + b\cdot y = \gcd(a,b)\) 的不定方程的任意一组解。 int exgcd(int a, int b, int &x, int &y) {if (!b) {x = 1, y = 0;return a;}int d = exgcd(b, a % b, y, x);y…

离散对数 bsgs 与 exbsgs

离散对数 bsgs 与 exbsgs 以 \(\mathcal O(\sqrt {P})\) 的复杂度求解 \(a^x \equiv b(\bmod P)\) 。其中标准 \(\tt BSGS\) 算法不能计算 \(a\) 与 \(MOD\) 互质的情况,而 exbsgs 则可以。 namespace BSGS { LL a, …

防爆模乘

防爆模乘 借助浮点数实现 以 \(\mathcal O(1)\) 计算 \(a\cdot b\bmod p\) ,由于不取模,常数比 int128 法小很多。其中 \(1 \le n, k, p \le 10^{18}\) 。 int mul(int a, int b, int m) {int r = a * b - m * (int)…

欧拉筛(线性筛)

欧拉筛(线性筛) 时间复杂度为 \(\mathcal{O}(N\log\log N)\) 。 vector<int> prime; // 这里储存筛出来的全部质数 auto euler_Prime = [&](int n) -> void {vector<int> v(n + 1);for (int i = …

常见数列

常见数列 调和级数 满足调和级数 \(\mathcal O\left( \dfrac{N}{1} +\dfrac{N}{2}+\dfrac{N}{3}+\dots + \dfrac{N}{N} \right)\),可以用 $ \approx N\ln N$ 来拟合,但是会略小,误差量级在 \(10\%\) 左右。本地可以…

20232314 2025-2026-1 《网络与系统攻防技术》实验三实验报告

一.实验内容(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧。正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程 (2)通过组合应用各种技术…

【LTDC】LTDC 简介

前言 此篇文章仅作笔记分享,内容来源为:【正点原子】全是干货 | 手把手教你学STM32的LTDC这一节课目的就是了解一下 LTDC 的各种特点,方便后面学习。 LTDC 简介控制器框图信号线 注意不同芯片会有不同的引脚对应。 …

Markdown数学公式 - -一叶知秋

1.1 公式表达显示 代码行内公式 $数学公式$独立公式 $$数学公式$$1.2 上下标显示 代码$x^2$ $x^2$$x_2$ $x_2$1.3 括号显示 代码$\underbrace{yyyy}_{ \text{xxx} }$ $\underbrace{yyyy}_{ \text{xxxx} }$$\begin{case…