Skip to content

Commit 58d60b0

Browse files
authored
Merge pull request #1284 from ethsmartcoder/main
feat: added the introduction of 7702 to the AA wallet
2 parents c1a8769 + 933893b commit 58d60b0

File tree

2 files changed

+178
-0
lines changed

2 files changed

+178
-0
lines changed

basic/49-aa/7702.md

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
2+
3+
### EIP-7702 技
4+
5+
EIP-7702 的核心创新在于引入了一种新的交易类型,允许外部账户(EOA)在单次交易中临时转换为智能合约账户,赋予其灵活的功能扩展能力。以下从交易结构、执行流程、Gas 机制和安全性等方面详细阐述其技术实现。
6+
7+
8+
#### **一、新交易类型的结构设计**
9+
EIP-7702 定义了一种新的交易类型( **Type 4**,具体编号由最终提案确定),其数据结构在现有交易字段基础上扩展了以下关键字段:
10+
11+
| 字段名 | 类型 | 描述 |
12+
|-------------------|------------|----------------------------------------------------------------------|
13+
| `code` | `bytes` | 本次交易中临时执行的智能合约代码(字节码)。 |
14+
| `signature` | `bytes` | 覆盖传统 ECDSA 签名的灵活签名格式,支持多签或非 ECDSA 算法(如 BLS)。 |
15+
| `validationGas` | `uint256` | 用于验证阶段(代码执行前)的 Gas 限额。 |
16+
| `executionGas` | `uint256` | 用于代码执行阶段的 Gas 限额。 |
17+
18+
**示例结构(伪代码):**
19+
```solidity
20+
struct EIP7702Transaction {
21+
// 标准交易字段(如 nonce, gasLimit, to, value 等)
22+
...
23+
type: 0x04, // 新交易类型标识
24+
code: bytes, // 临时执行的智能合约代码
25+
signature: bytes, // 灵活签名格式
26+
validationGas: uint256,
27+
executionGas: uint256,
28+
}
29+
```
30+
31+
32+
33+
#### **二、交易执行流程**
34+
当用户发起 EIP-7702 交易时,以太坊网络按以下步骤处理:
35+
36+
1. **交易验证阶段**
37+
- **签名验证**:不再强制使用 ECDSA 签名,而是根据 `code` 中定义的逻辑验证 `signature`。例如,代码可能要求多签验证或使用 BLS 聚合签名。
38+
- **临时状态注入**:将 `code` 临时绑定到用户的 EOA 地址,模拟智能合约账户的执行环境,但不修改链上账户的永久状态。
39+
40+
2. **代码执行阶段**
41+
- **上下文切换**:在本次交易的执行环境中,用户的 EOA 地址被视为智能合约账户,其权限逻辑完全由 `code` 定义。
42+
- **自定义操作**:代码可执行任意逻辑,如批量交易、代付 Gas(使用 ERC-20 代币)、社交恢复验证等。
43+
- **Gas 分段管理**`validationGas``executionGas` 分别限制验证与执行阶段的 Gas 消耗,防止资源耗尽攻击。
44+
45+
3. **状态恢复**
46+
- 交易完成后,临时注入的 `code` 从账户中移除,EOA 恢复原始状态,不保留任何智能合约痕迹。
47+
48+
49+
50+
#### **三、Gas 优化机制**
51+
EIP-7702 通过以下方式降低 Gas 成本:
52+
1. **减少交易层级**
53+
- 相比 EIP-4337 的 UserOperation 需要 Bundler 打包并支付额外 Gas,EIP-7702 直接在协议层处理,省去中间环节。
54+
2. **合并操作**
55+
- 单笔交易可完成多步操作(如授权+转账+跨链调用),减少总 Gas 消耗。
56+
3. **动态 Gas 分配**
57+
- 用户可灵活分配 `validationGas``executionGas`,避免为单一阶段预留过多冗余 Gas。
58+
59+
60+
61+
#### **四、安全机制与风险控制**
62+
1. **代码执行沙盒化**
63+
- 临时注入的 `code` 仅在本次交易中有效,无法修改账户的永久存储或触发后续交易。
64+
2. **签名权限隔离**
65+
- `code` 中定义的签名逻辑仅适用于当前交易,不影响账户的其他操作。
66+
3. **钱包防护措施**
67+
- 钱包需对用户展示 `code` 的意图(如“本次交易将执行以下操作...”),防止钓鱼攻击。
68+
4. **Gas 限额强制约束**
69+
- 即使 `code` 包含无限循环,`executionGas` 上限将强制终止执行,避免网络资源滥用。
70+
71+
72+
73+
#### **五、与 EIP-3074 的对比**
74+
EIP-3074 同样允许 EOA 临时委托权限给智能合约,但其机制存在以下差异:
75+
| 特性 | EIP-3074 | EIP-7702 |
76+
|---------------------|-----------------------------------|-----------------------------------|
77+
| **权限范围** | 委托给固定合约(AUTH/AUTHCALL) | 每笔交易自定义代码(动态灵活) |
78+
| **签名兼容性** | 仅支持 ECDSA | 支持任意签名算法(由代码定义) |
79+
| **状态影响** | 可能遗留委托关系 | 完全无状态(交易后恢复) |
80+
| **Gas 效率** | 较高(需多次调用) | 较低(单交易内完成) |
81+
82+
83+
84+
#### **六、潜在技术挑战**
85+
1. **协议层复杂性**
86+
- 需修改以太坊客户端(如 Geth、Nethermind)的交易处理逻辑,确保临时代码注入与恢复机制稳定。
87+
2. **开发工具适配**
88+
- 钱包和 SDK(如 Ethers.js、Hardhat)需更新以支持新交易类型的构建与解析。
89+
3. **测试网验证**
90+
- 此前测试网曾因类似提案(如 EIP-3074)出现分叉问题,需充分验证边界条件。
91+
92+
93+
94+
### **总结**
95+
EIP-7702 通过引入动态代码注入的交易类型,在协议层实现了 EOA 的灵活升级,兼顾了兼容性与功能性。其技术细节体现了以太坊向智能账户体系演进的核心路径。随着 Pectra 升级的推进,这一提案有望成为链上用户体验革新的关键基础设施。

basic/49-aa/development.md

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Ethereum AA(账户抽象)钱包的历史梳理,从技术提案、生态实践到未来方向分阶段展开:
2+
3+
### **阶段一:早期探索(2015-2020)**
4+
#### **背景与问题**
5+
- **EOA 的限制**:以太坊初始设计中,只有外部账户(EOA,由私钥控制)能主动发起交易,合约账户(CA)需依赖 EOA 触发,功能受限。
6+
- **用户痛点**:EOA 依赖私钥管理、仅支持 ECDSA 签名、无法批量操作或代付 Gas。
7+
8+
#### **关键提案**
9+
1. **EIP-86(2017)**
10+
- 首次提出账户抽象概念,允许合约作为交易发起者,但因共识层改动复杂被搁置。
11+
2. **EIP-2938(2020)**
12+
- 定义新的交易类型(`AA_TX_TYPE`),允许合约账户主动发起交易,需修改共识层,进展缓慢。
13+
14+
#### **实践尝试**
15+
- **元交易(Meta Transaction)**:通过中继者(Relayer)代付 Gas,用户用签名授权操作(如 Gas Station Network)。
16+
- **局限性**:依赖中心化中继者,无法完全实现账户抽象。
17+
18+
19+
20+
### **阶段二:协议层突破(2021-2023)**
21+
#### **核心提案**
22+
1. **EIP-3074(2021)**
23+
- 允许 EOA 将权限临时委托给智能合约(通过 `AUTH``AUTHCALL` 操作码),实现批量交易和 Gas 代付。
24+
- **问题**:安全隐患(恶意合约可能盗取资金),最终被 EIP-7702 取代。
25+
2. **EIP-4337(2021)**
26+
- **免共识层升级的账户抽象方案**,引入 `UserOperation` 对象和 Bundlers(交易打包节点),允许合约账户自主管理交易逻辑。
27+
- **创新点**:独立内存池、Paymasters(代付 Gas)、签名算法灵活化。
28+
29+
#### **AA 钱包落地**
30+
- **Safe{Wallet}(原 Gnosis Safe)**:基于多签的智能合约钱包,支持权限分级和批量交易。
31+
- **Argent**:社交恢复钱包,用户可通过守护人(Guardian)重置私钥。
32+
- **Braavos(StarkNet)**:首个 L2 原生 AA 钱包,支持签名算法混合(如 ECDSA + 手机生物识别)。
33+
34+
35+
36+
### **阶段三:生态爆发与优化(2023-2024)**
37+
#### **技术演进**
38+
1. **EIP-7702(2024)**
39+
- 结合 EIP-3074 和 4337 的优点,允许 EOA **单次交易内动态升级为合约账户**,降低 Gas 成本并提升兼容性。
40+
2. **ERC-4337 标准化**
41+
- 定义 AA 钱包的通用接口,推动 Bundler、Paymaster 等组件的去中心化。
42+
43+
#### **生态扩展**
44+
- **L2 集成**:Optimism、Base、zkSync 等链原生支持 AA,Gas 成本降低 90% 以上。
45+
- **应用场景**
46+
- **Web3 游戏**:玩家无需管理 Gas,通过会话密钥(Session Key)自动执行操作。
47+
- **企业财务**:多签 + 审计流 + 自动化付款(如 Safe{Wallet} 的模块化策略)。
48+
- **钱包竞争**
49+
- **智能钱包**:Ambire、Coinbase Smart Wallet 支持免助记词和代付 Gas。
50+
- **MPC 钱包**:ZenGo、Fireblocks 结合 MPC 与 AA,增强私钥安全性。
51+
52+
53+
54+
### **阶段四:未来方向(2024+)**
55+
#### **技术趋势**
56+
1. **协议层深度集成**
57+
- EIP-7702 纳入以太坊 Pectra 升级,推动 AA 成为默认账户模式。
58+
2. **签名算法多样化**
59+
- 支持 BLS 聚合签名、抗量子算法(如 STARKs),提升安全性和效率。
60+
3. **无感化体验**
61+
- 通过 ERC-7579 等标准,实现跨链 AA 钱包的自动适配和 Gas 优化。
62+
63+
#### **挑战与解决方案**
64+
- **安全性**:需防范临时代码注入攻击(EIP-7702 的沙盒化执行是关键)。
65+
- **教育成本**:用户需理解智能账户与传统 EOA 的差异,钱包需简化交互界面。
66+
- **去中心化**:Bundler 和 Paymaster 网络的抗审查性与稳定性仍需优化。
67+
68+
69+
70+
### **关键项目与链接**
71+
1. **提案文档**
72+
- [EIP-4337: Account Abstraction via Entry Point Contract](https://eips.ethereum.org/EIPS/eip-4337)
73+
- [EIP-7702: Dynamic Account Conversion](https://github.com/ethereum/EIPs/pull/7702)
74+
2. **AA 钱包案例**
75+
- [Safe{Wallet}](https://safe.global/)
76+
- [Argent](https://www.argent.xyz/)
77+
- [Braavos](https://braavos.app/)
78+
3. **生态分析**
79+
- [以太坊账户抽象现状报告](https://ethereum.org/en/roadmap/account-abstraction/)
80+
- [Vitalik 谈 AA 未来](https://vitalik.eth.limo/general/2023/01/20/account_abstraction.html)
81+
82+
83+
Ethereum AA 钱包的演进是从“外挂式解决方案”(如元交易)到“协议层原生支持”的过程,核心目标是**让智能合约账户获得 EOA 的主动能力**,同时保留可编程性。未来,随着 EIP-7702 的落地和 L2 的普及,AA 钱包有望成为 Web3 用户的标准入口,彻底改变私钥管理和链上交互的体验。

0 commit comments

Comments
 (0)