Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions basic/49-aa/7702.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@


### EIP-7702 技

EIP-7702 的核心创新在于引入了一种新的交易类型,允许外部账户(EOA)在单次交易中临时转换为智能合约账户,赋予其灵活的功能扩展能力。以下从交易结构、执行流程、Gas 机制和安全性等方面详细阐述其技术实现。


#### **一、新交易类型的结构设计**
EIP-7702 定义了一种新的交易类型( **Type 4**,具体编号由最终提案确定),其数据结构在现有交易字段基础上扩展了以下关键字段:

| 字段名 | 类型 | 描述 |
|-------------------|------------|----------------------------------------------------------------------|
| `code` | `bytes` | 本次交易中临时执行的智能合约代码(字节码)。 |
| `signature` | `bytes` | 覆盖传统 ECDSA 签名的灵活签名格式,支持多签或非 ECDSA 算法(如 BLS)。 |
| `validationGas` | `uint256` | 用于验证阶段(代码执行前)的 Gas 限额。 |
| `executionGas` | `uint256` | 用于代码执行阶段的 Gas 限额。 |

**示例结构(伪代码):**
```solidity
struct EIP7702Transaction {
// 标准交易字段(如 nonce, gasLimit, to, value 等)
...
type: 0x04, // 新交易类型标识
code: bytes, // 临时执行的智能合约代码
signature: bytes, // 灵活签名格式
validationGas: uint256,
executionGas: uint256,
}
```



#### **二、交易执行流程**
当用户发起 EIP-7702 交易时,以太坊网络按以下步骤处理:

1. **交易验证阶段**
- **签名验证**:不再强制使用 ECDSA 签名,而是根据 `code` 中定义的逻辑验证 `signature`。例如,代码可能要求多签验证或使用 BLS 聚合签名。
- **临时状态注入**:将 `code` 临时绑定到用户的 EOA 地址,模拟智能合约账户的执行环境,但不修改链上账户的永久状态。

2. **代码执行阶段**
- **上下文切换**:在本次交易的执行环境中,用户的 EOA 地址被视为智能合约账户,其权限逻辑完全由 `code` 定义。
- **自定义操作**:代码可执行任意逻辑,如批量交易、代付 Gas(使用 ERC-20 代币)、社交恢复验证等。
- **Gas 分段管理**:`validationGas` 和 `executionGas` 分别限制验证与执行阶段的 Gas 消耗,防止资源耗尽攻击。

3. **状态恢复**
- 交易完成后,临时注入的 `code` 从账户中移除,EOA 恢复原始状态,不保留任何智能合约痕迹。



#### **三、Gas 优化机制**
EIP-7702 通过以下方式降低 Gas 成本:
1. **减少交易层级**
- 相比 EIP-4337 的 UserOperation 需要 Bundler 打包并支付额外 Gas,EIP-7702 直接在协议层处理,省去中间环节。
2. **合并操作**
- 单笔交易可完成多步操作(如授权+转账+跨链调用),减少总 Gas 消耗。
3. **动态 Gas 分配**
- 用户可灵活分配 `validationGas` 和 `executionGas`,避免为单一阶段预留过多冗余 Gas。



#### **四、安全机制与风险控制**
1. **代码执行沙盒化**
- 临时注入的 `code` 仅在本次交易中有效,无法修改账户的永久存储或触发后续交易。
2. **签名权限隔离**
- `code` 中定义的签名逻辑仅适用于当前交易,不影响账户的其他操作。
3. **钱包防护措施**
- 钱包需对用户展示 `code` 的意图(如“本次交易将执行以下操作...”),防止钓鱼攻击。
4. **Gas 限额强制约束**
- 即使 `code` 包含无限循环,`executionGas` 上限将强制终止执行,避免网络资源滥用。



#### **五、与 EIP-3074 的对比**
EIP-3074 同样允许 EOA 临时委托权限给智能合约,但其机制存在以下差异:
| 特性 | EIP-3074 | EIP-7702 |
|---------------------|-----------------------------------|-----------------------------------|
| **权限范围** | 委托给固定合约(AUTH/AUTHCALL) | 每笔交易自定义代码(动态灵活) |
| **签名兼容性** | 仅支持 ECDSA | 支持任意签名算法(由代码定义) |
| **状态影响** | 可能遗留委托关系 | 完全无状态(交易后恢复) |
| **Gas 效率** | 较高(需多次调用) | 较低(单交易内完成) |



#### **六、潜在技术挑战**
1. **协议层复杂性**
- 需修改以太坊客户端(如 Geth、Nethermind)的交易处理逻辑,确保临时代码注入与恢复机制稳定。
2. **开发工具适配**
- 钱包和 SDK(如 Ethers.js、Hardhat)需更新以支持新交易类型的构建与解析。
3. **测试网验证**
- 此前测试网曾因类似提案(如 EIP-3074)出现分叉问题,需充分验证边界条件。



### **总结**
EIP-7702 通过引入动态代码注入的交易类型,在协议层实现了 EOA 的灵活升级,兼顾了兼容性与功能性。其技术细节体现了以太坊向智能账户体系演进的核心路径。随着 Pectra 升级的推进,这一提案有望成为链上用户体验革新的关键基础设施。
83 changes: 83 additions & 0 deletions basic/49-aa/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
Ethereum AA(账户抽象)钱包的历史梳理,从技术提案、生态实践到未来方向分阶段展开:

### **阶段一:早期探索(2015-2020)**
#### **背景与问题**
- **EOA 的限制**:以太坊初始设计中,只有外部账户(EOA,由私钥控制)能主动发起交易,合约账户(CA)需依赖 EOA 触发,功能受限。
- **用户痛点**:EOA 依赖私钥管理、仅支持 ECDSA 签名、无法批量操作或代付 Gas。

#### **关键提案**
1. **EIP-86(2017)**
- 首次提出账户抽象概念,允许合约作为交易发起者,但因共识层改动复杂被搁置。
2. **EIP-2938(2020)**
- 定义新的交易类型(`AA_TX_TYPE`),允许合约账户主动发起交易,需修改共识层,进展缓慢。

#### **实践尝试**
- **元交易(Meta Transaction)**:通过中继者(Relayer)代付 Gas,用户用签名授权操作(如 Gas Station Network)。
- **局限性**:依赖中心化中继者,无法完全实现账户抽象。



### **阶段二:协议层突破(2021-2023)**
#### **核心提案**
1. **EIP-3074(2021)**
- 允许 EOA 将权限临时委托给智能合约(通过 `AUTH` 和 `AUTHCALL` 操作码),实现批量交易和 Gas 代付。
- **问题**:安全隐患(恶意合约可能盗取资金),最终被 EIP-7702 取代。
2. **EIP-4337(2021)**
- **免共识层升级的账户抽象方案**,引入 `UserOperation` 对象和 Bundlers(交易打包节点),允许合约账户自主管理交易逻辑。
- **创新点**:独立内存池、Paymasters(代付 Gas)、签名算法灵活化。

#### **AA 钱包落地**
- **Safe{Wallet}(原 Gnosis Safe)**:基于多签的智能合约钱包,支持权限分级和批量交易。
- **Argent**:社交恢复钱包,用户可通过守护人(Guardian)重置私钥。
- **Braavos(StarkNet)**:首个 L2 原生 AA 钱包,支持签名算法混合(如 ECDSA + 手机生物识别)。



### **阶段三:生态爆发与优化(2023-2024)**
#### **技术演进**
1. **EIP-7702(2024)**
- 结合 EIP-3074 和 4337 的优点,允许 EOA **单次交易内动态升级为合约账户**,降低 Gas 成本并提升兼容性。
2. **ERC-4337 标准化**
- 定义 AA 钱包的通用接口,推动 Bundler、Paymaster 等组件的去中心化。

#### **生态扩展**
- **L2 集成**:Optimism、Base、zkSync 等链原生支持 AA,Gas 成本降低 90% 以上。
- **应用场景**:
- **Web3 游戏**:玩家无需管理 Gas,通过会话密钥(Session Key)自动执行操作。
- **企业财务**:多签 + 审计流 + 自动化付款(如 Safe{Wallet} 的模块化策略)。
- **钱包竞争**:
- **智能钱包**:Ambire、Coinbase Smart Wallet 支持免助记词和代付 Gas。
- **MPC 钱包**:ZenGo、Fireblocks 结合 MPC 与 AA,增强私钥安全性。



### **阶段四:未来方向(2024+)**
#### **技术趋势**
1. **协议层深度集成**
- EIP-7702 纳入以太坊 Pectra 升级,推动 AA 成为默认账户模式。
2. **签名算法多样化**
- 支持 BLS 聚合签名、抗量子算法(如 STARKs),提升安全性和效率。
3. **无感化体验**
- 通过 ERC-7579 等标准,实现跨链 AA 钱包的自动适配和 Gas 优化。

#### **挑战与解决方案**
- **安全性**:需防范临时代码注入攻击(EIP-7702 的沙盒化执行是关键)。
- **教育成本**:用户需理解智能账户与传统 EOA 的差异,钱包需简化交互界面。
- **去中心化**:Bundler 和 Paymaster 网络的抗审查性与稳定性仍需优化。



### **关键项目与链接**
1. **提案文档**
- [EIP-4337: Account Abstraction via Entry Point Contract](https://eips.ethereum.org/EIPS/eip-4337)
- [EIP-7702: Dynamic Account Conversion](https://github.com/ethereum/EIPs/pull/7702)
2. **AA 钱包案例**
- [Safe{Wallet}](https://safe.global/)
- [Argent](https://www.argent.xyz/)
- [Braavos](https://braavos.app/)
3. **生态分析**
- [以太坊账户抽象现状报告](https://ethereum.org/en/roadmap/account-abstraction/)
- [Vitalik 谈 AA 未来](https://vitalik.eth.limo/general/2023/01/20/account_abstraction.html)


Ethereum AA 钱包的演进是从“外挂式解决方案”(如元交易)到“协议层原生支持”的过程,核心目标是**让智能合约账户获得 EOA 的主动能力**,同时保留可编程性。未来,随着 EIP-7702 的落地和 L2 的普及,AA 钱包有望成为 Web3 用户的标准入口,彻底改变私钥管理和链上交互的体验。
Loading