Skip to main content

Smart Wallet EIP

这个 wallet 涉及到的 eip 及其主要解决的问题需要归纳

TLDR

  1. 合约钱包: ERC-4337
    1. Account
      1. 预测地址:evm opcode CREATE2
    2. Signature Validation
      1. offline 验签: ERC-6492 https://eips.ethereum.org/EIPS/eip-6492
      2. online 验签: EIP-1271 https://eips.ethereum.org/EIPS/eip-1271
    3. Paymaster
      1. 代付 gas: ERC-7677 https://eips.ethereum.org/EIPS/eip-7677
      2. 找谁代付:EIP-5792 https://eips.ethereum.org/EIPS/eip-5792

整体过程

passkeys -> 预测钱包地址 -> 关联存储在当前设备上 -> 发起 userop 类型交易 -> EntryPoint 调度 -> paymaster 代付 gas -> 上链

相关协议

ERC-6492

ERC-6492: Signature Validation for Predeploy Contracts
A way to verify a signature when the account is a smart contract that has not been deployed yet https://eips.ethereum.org/EIPS/eip-6492

  1. 任何链下签名验证(例如使用以太坊登录)或您的智能合约执行任何签名验证
  2. 合约钱包部署前就可以用签名

alt text

EIP-1271

ERC-1271: Standard Signature Validation Method for Contracts
Standard way to verify a signature when the account is a smart contract https://eips.ethereum.org/EIPS/eip-1271

目的:合约无法签名,但是需要知道谁在操纵钱包(验证是否是钱包所有者签的名)

alt text alt text

ERC-7677

实现了这个协议的 provider 具备代付款能力

paymaster service provider

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

https://www.erc7677.xyz/ecosystem/paymasters

alt text

EIP-5792

EIP-5792: Wallet Call API
Adds JSON-RPC methods for sending multiple calls from the user's wallet, and checking their status https://eips.ethereum.org/EIPS/eip-5792#motivation

alt text

alt text

ERC-4337

ERC-4337: Account Abstraction Using Alt Mempool
An account abstraction proposal which completely avoids consensus-layer protocol changes, instead relying on higher-layer infrastructure. https://eips.ethereum.org/EIPS/eip-4337

https://www.erc4337.io/docs

alt text

地址可预测性 CREATE2

https://www.evm.codes/#f5?fork=cancun

alt text

Paymaster

alt text 2 种方式支付 gas

alt text

Paymaster

MagicSpend(这也是一个 paymaster)

alt text

https://github.com/coinbase/magic-spend/blob/2011f5540fa0d646089dcc60cab6b68d5a031482/src/MagicSpend.sol#L18

ERC20

https://docs.stackup.sh : Sponsor gas fees or pay in ERC-20 tokens, 内部使用 uniswap 实现

gas 费用高于传统钱包,但有补偿

合约钱包费用高的原因

  1. 复杂操作:合约钱包可以实现复杂的逻辑,如多重签名、限额、时间锁等,这些操作需要额外的计算和存储资源。
  2. 合约调用:每次操作都需要调用智能合约,这会增加 Gas 消耗。

Gas 费用补偿机制

为了降低用户在使用合约钱包时的费用,开发者可以引入 Gas 费用补偿机制。以下是一些常见的 Gas 费用补偿方法:

  1. Gas 代付(Gas Sponsorship):由第三方(通常是 DApp 开发者或服务提供商)代为支付用户的 Gas 费用。这可以通过智能合约实现,用户的交易由一个代付合约代理执行,代付合约支付 Gas 费用。
  2. Gas Token:用户可以使用 Gas Token(如 Chi、GST)来减少实际支付的 Gas 费用。这些 Token 可以在 Gas 价格较低时铸造,在 Gas 价格较高时销毁,从而节约费用。
  3. Layer 2 解决方案:使用 Layer 2 扩展解决方案(如 Optimism、Arbitrum、zkSync 等)来降低 Gas 费用。Layer 2 网络通过将大部分计算和存储移到链下,显著降低了交易费用。

signature verification Offchain vs Onchain

alt text

SmartWallet vs MPC

MPC vs smart contract wallets: comparison thread

当时我也有这个疑问,而且还不开源

alt text