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を確認すること。