Account Abstraction(AA)メモ:ERC‑4337 と EIP‑7702

この補足は「AAって何?」「4337と7702はどう違う?」を、初学者向けに最小限で整理する。

1. AAでやりたいこと(例)

  • 複数操作をまとめて実行(batch)
  • ガス代を別の主体が肩代わり(スポンサー支払い)
  • セッションキーや権限の制限(期間限定・機能限定の操作)

2. アプローチA:ERC‑4337(コンセンサス変更なし)

ポイント:チェーンのコンセンサス変更なしで、コントラクト構成だけでAAを実現する。

よく出てくる登場人物:

  • UserOperation:ユーザーが署名する「実行依頼」データ
  • Bundler:UserOperationを集めてTxにし、EntryPointへ送る中継者
  • EntryPoint:UserOperationの検証と実行を行うコントラクト
  • (任意)Paymaster:ガス代スポンサー等の仕組みを提供するコントラクト

ざっくりフロー(概念): 1) ユーザーがUserOperationに署名
2) BundlerがまとめてEntryPointへ送信
3) EntryPointがスマートウォレット(アカウントコントラクト)を呼び出して実行

3. アプローチB:EIP‑7702(EOA委任)

ポイント:プロトコル側の変更により、EOAが delegation indicator(委任先) をセットして、実行時に別アドレスのコードへ委譲する挙動が入り得る。

初学者向けの直感としては:

  • 「EOAは必ず code empty」と思い込まない
  • EOAが“スマートウォレットっぽく”振る舞うための土台になり得る

4. 4337と7702の関係(整理)

  • 競合というより“レイヤーが違う” と捉えると混乱しにくい。
    • ERC‑4337:コントラクトだけでAAを実現(ネットワーク変更不要)
    • EIP‑7702:EOAの実行モデルを拡張(ネットワーク側のアップグレードが必要)
  • 組み合わせる設計も考えられる(例:4337のアカウント実装を、7702の委任先コードとして使う等)。

注:どのチェーンでどの機能が有効かは時期により変わる。実際の利用可否は各チェーンの公式アナウンス・EIPを確認すること。