アカウント抽象化(Account Abstraction)
ERC-4337(UserOperation・Bundler・Paymaster・EntryPoint)と EIP-7702(Pectra 2025-05、EOA を一時スマートアカウント化)のアーキテクチャを解説。スマートウォレットとガス代行の実装モデルを整理する。
article technology ja ERC-4337(UserOperation・Bundler・Paymaster・EntryPoint)と EIP-7702(Pectra 2025-05、EOA を一時スマートアカウント化)のアーキテクチャを解説。スマートウォレットとガス代行の実装モデルを整理する。アカウント抽象化(Account Abstraction)
Ethereum の従来設計では「アカウント」は 2 種類に分類される。**EOA(Externally Owned Account)**は秘密鍵で署名する一般ユーザーのウォレットであり、**コントラクトアカウント(CA)**はコードを持つスマートコントラクトだ。EOA はトランザクション起点になれるが、ロジックを持てない。CA はロジックを持てるが、自らトランザクションを開始できない。
**アカウント抽象化(Account Abstraction)**はこの二分法を解消し、「検証ロジックをカスタマイズ可能なスマートアカウント」からトランザクションを発行できるようにする。これによりマルチシグ・ソーシャルリカバリ・ガス代代払い・バッチトランザクションなどが実現する。情報カットオフ ~2025-08、confidence: medium 固定(2026-06 時点での外部再検証は未実施)。
ERC-4337 — Ethereum プロトコルを変えずに実現
ERC-4337(2023 年 3 月メインネット稼働)は Ethereum のコンセンサスレイヤーを変更せずにアカウント抽象化を実現する標準仕様である。プロトコル外のコントラクト群で「スマートアカウント」のトランザクション処理を完結させる設計が特徴だ。
UserOperation
ERC-4337 では通常のトランザクションの代わりに **UserOperation(UserOp)**というデータ構造を使う。UserOp は以下のフィールドを持つ。
sender: スマートアカウントのアドレスnonce: リプレイ防止用の番号callData: 実行したいコントラクト呼び出しのデータsignature: カスタム検証ロジックに渡される署名(ECDSA に限らない)paymasterAndData: ガス代を代払いする Paymaster の情報(省略可)
カスタム検証ロジック: 通常の Ethereum トランザクションは必ず ECDSA 署名で検証されるが、UserOp ではスマートアカウントの validateUserOp 関数が検証を担当する。マルチシグ署名・WebAuthn(パスキー)・時間制限付き署名など任意の検証ロジックを実装できる。
Bundler と EntryPoint
Bundler は複数の UserOp を収集してバンドル(まとめたリスト)を作成し、オンチェーンに送信するノードオペレーターである。Bundler は代わりにガスを支払い、後から報酬を受け取る経済設計を持つ。
EntryPoint は ERC-4337 で定義された単一のオンチェーンコントラクトで、Bundler から受け取った UserOp バッチを検証・実行する。EntryPoint は Ethereum メインネット・主要 L2 の同一アドレスにデプロイされており、エコシステム全体で共有される。
ユーザー → UserOp 作成 → Bundler(オフチェーンメンプール)
Bundler → EntryPoint.handleOps([UserOp...]) → チェーン
EntryPoint → SmartAccount.validateUserOp() → 検証
EntryPoint → SmartAccount.execute() → 実行
Paymaster — ガス代代払い
Paymaster は UserOp のガス代を代わりに支払うコントラクトである。これにより以下のユースケースが実現する。
- Gasless(ガスレス)UX: dApp の運営者がユーザーのガスを負担し、ユーザーが ETH を持たなくても操作できる
- ERC-20 でガス支払い: USDC などのトークンでガスを払い、ETH 不要のユーザー体験
- 条件付きガス代行: 特定のコントラクル呼び出しのみガスを代払い
EIP-7702 — Pectra による EOA の一時スマートアカウント化
EIP-7702 は 2025 年 5 月の Ethereum Pectra アップグレードで導入された変更で、EOA を「一時的にスマートアカウントとして振る舞わせる」仕組みである。
仕組み: EOA は authorization_list を含む特殊なトランザクション(Type-4)を送ることで、自身のアドレスに任意のコントラクトコードを一時的に「委譲(delegate)」できる。このトランザクション後、EOA はその委譲先コントラクトのロジックで呼び出しを受ける。
ERC-4337 との違い: ERC-4337 は「スマートアカウントを新規作成する」アプローチであり、既存の EOA ウォレット(Metamask 等の秘密鍵管理ウォレット)をそのまま活用できない。EIP-7702 は「既存 EOA をアップグレードする」アプローチで、既存ウォレットユーザーが移行コストなしにアカウント抽象化の恩恵を受けられる。
用途: バッチ実行(複数操作を 1 トランザクションで)・セッションキー(一時的なアクセス権委譲)・ガス代行との統合が想定される主要用途だ。
スマートウォレットの実装
アカウント抽象化を活用したウォレットを「スマートウォレット(Smart Wallet)」と呼ぶ。代表的な実装例を示す。
Safe(旧 Gnosis Safe): 最も広く使われた EVM マルチシグスマートウォレット。M-of-N のマルチシグ・モジュールシステムによる機能拡張・ERC-4337 との統合(Safe{Core})を提供する。DAO やプロトコルの Treasury 管理で使われる。
Coinbase Smart Wallet: Coinbase が 2024 年に公開した ERC-4337 準拠のスマートウォレット。パスキー(WebAuthn)を署名に使えるため、シードフレーズ不要のユーザー体験を実現する。
Biconomy・Alchemy Account Kit: ERC-4337 の Bundler・Paymaster インフラを SDK として提供するプロバイダ。dApp 開発者がガスレス UX を数行のコードで実装できる。
アカウント抽象化の意義とトレードオフ
| 機能 | 従来 EOA | スマートアカウント(ERC-4337/EIP-7702) |
|---|---|---|
| 署名方式 | ECDSA のみ | 任意(パスキー・マルチシグ等) |
| ガス支払い | ETH 必須 | ERC-20 可・代払い可 |
| ソーシャルリカバリ | 不可 | カスタムロジック可 |
| バッチ操作 | 不可(1 TX 1 操作) | 1 TX で複数操作可 |
| セキュリティ | 秘密鍵紛失 = 資産消失 | ガーディアン・リカバリ機構可 |
トレードオフ: スマートアカウントは Bundler への依存・EntryPoint コントラクトリスク・スマートアカウント実装の監査コストといった新たなリスクを伴う。また Bundler が検閲を行うリスク(特定の UserOp を拒否する)も指摘されている。
トランザクションモデルの基礎は tech-211 を、L2 における AA の展開は tech-191 を参照のこと。