Web3 & Metaverse トレンド最前線

Web3におけるアカウント抽象化(Account Abstraction)の技術的進化とERC-4337の実装パターン

Tags: Web3, アカウント抽象化, ERC-4337, イーサリアム, スマートウォレット

はじめに:Web3のUX課題とアカウント抽象化の必要性

Web3エコシステムの拡大に伴い、その普及を阻む要因の一つとして、既存のユーザーエクスペリエンス(UX)の複雑さが挙げられています。特に、仮想通貨ウォレットの操作、秘密鍵の管理、Gas手数料の支払いといった側面は、従来のWeb2アプリケーションに慣れたユーザーにとって障壁となることが少なくありません。この課題に対し、イーサリアムコミュニティを中心に「アカウント抽象化(Account Abstraction)」と呼ばれる概念が注目を集めています。アカウント抽象化は、ブロックチェーンアカウントの柔軟性を高め、ユーザーエクスペリエンスを大幅に改善する可能性を秘めた技術です。

本記事では、Web3におけるアカウント抽象化の概念とその必要性、そしてイーサリアムのレイヤー1プロトコル変更なしにこれを実現する標準規格であるERC-4337の技術的詳細と実装パターンについて深掘りし、開発者およびユーザーにもたらす影響と将来展望を解説します。

アカウント抽象化の概念と従来のイーサリアムアカウントの課題

イーサリアムには、主に二つの種類のアカウントが存在します。

  1. EOA (Externally Owned Account): 秘密鍵によって制御されるアカウントです。ユーザーが秘密鍵を所有し、署名を通じてトランザクションを送信します。資産の保有と送受信、スマートコントラクトとのインタラクションが可能です。Gas手数料の支払いはETHで行われます。
  2. CA (Contract Account): スマートコントラクトのコードによって制御されるアカウントです。デプロイされたスマートコントラクトがこのアカウントとなり、コードに記述されたロジックに従って動作します。EOAから呼び出されることで機能します。

現在のイーサリアムでは、トランザクションの開始点となるのは常にEOAであり、すべてのトランザクションにはEOAによる署名とGas手数料(ETH)の支払いが必須です。これにより、以下のようなUX上の課題が生じています。

アカウント抽象化は、これらの課題を解決し、EOAとCAの境界を曖昧にすることで、より柔軟でセキュア、そして使いやすいWeb3ウォレットの実現を目指します。具体的には、トランザクションの署名方式やGas手数料の支払い方法をカスタマイズ可能にすることを目指します。

ERC-4337の技術的詳細と主要構成要素

ERC-4337「Account Abstraction using EntryPoint smart contract」は、イーサリアムのプロトコル(L1)自体を変更することなく、アカウント抽象化を実現するための標準規格です。これは、特定のスマートコントラクトを介してトランザクションを処理することで、既存のEOAベースのトランザクションフローとは異なるパスを導入します。

ERC-4337の主要構成要素

ERC-4337は、以下の主要な要素で構成されています。

  1. UserOperation:
    • ユーザーが実行したい「意図」を表現する擬似トランザクションオブジェクトです。
    • 通常のイーサリアムトランザクションとは異なり、EOAによる直接的な署名は不要で、独自の検証ロジックを持つアカウント(スマートコントラクトウォレット)によって署名されます。
    • 含まれる情報には、送信元アドレス、Gas上限、Gas価格、実行するデータなどが含まれます。
  2. EntryPoint (Smart Contract):
    • ERC-4337の中核となるスマートコントラクトです。
    • すべてのUserOperationはこのEntryPointコントラクトを通じて処理されます。
    • EntryPointは、UserOperationの検証(署名、Gas支払いなど)を行い、その後、指定されたスマートコントラクトウォレットにコールを実行します。
    • これにより、ウォレットのロジックがGas手数料の支払い方法や署名検証をカスタマイズできるようになります。
  3. Bundler:
    • UserOperationを収集し、それらを一つの通常のイーサリアムトランザクション(バンドル)にまとめ、EntryPointコントラクトに送信するノードです。
    • イーサリアムのブロックビルダー/マイナーと同様の役割を果たしますが、UserOperationを監視し、L1のトランザクションとしてEntryPointに渡すのが特徴です。
    • Bundlerは、手数料(Gas代)の見返りとしてこのサービスを提供します。
  4. Paymaster (Optional Smart Contract):
    • スマートコントラクトウォレットの代わりにGas手数料を支払うことができるオプションのスマートコントラクトです。
    • これにより、ユーザーはGasレス取引(スポンサーがGasを支払う)や、ERC-20トークンなどETH以外のトークンでGas手数料を支払うことが可能になります。
    • Paymasterは独自のロジックを持ち、特定の条件を満たすUserOperationのGasを支払います。
  5. Aggregator (Optional Smart Contract):
    • 複数のUserOperationの署名を単一の署名に集約するオプションのスマートコントラクトです。
    • 特に、BLS署名などの集約可能な署名スキームを使用する際にGas効率を向上させることができます。

トランザクションフローの解説

ERC-4337のUserOperationは、以下のプロセスで処理されます。

  1. UserOperationの作成: ユーザーは、独自の署名ロジックを持つスマートコントラクトウォレット(アカウント抽象化ウォレット)を介してUserOperationを作成します。これには、実行したいアクションやGas関連情報が含まれます。
  2. Bundlerへの送信: 作成されたUserOperationは、Bundlerと呼ばれるネットワークノードに送信されます。
  3. 検証フェーズ (EntryPoint.simulateValidation()):
    • Bundlerは、UserOperationが有効であるかをEntryPointコントラクトのsimulateValidation関数を呼び出して事前検証します。
    • この検証では、UserOperationに署名したアカウントコントラクトのvalidateUserOp関数が呼び出され、署名の有効性、Gas残高、リプレイ攻撃対策などがチェックされます。
    • Paymasterが指定されている場合は、Paymasterの検証ロジックも実行されます。
  4. バンドルの作成と送信:
    • 有効と判断された複数のUserOperationBundlerによってバンドルされ、単一のイーサリアムトランザクションとしてEntryPointコントラクトに送信されます。
    • このL1トランザクションは、BundlerのEOAによって署名され、BundlerがGas手数料を支払います。
  5. 実行フェーズ (EntryPoint.handleOps()):
    • EntryPointコントラクトは、受け取ったバンドル内の各UserOperationに対して、再度検証と実行を行います。
    • 検証が成功すると、EntryPointは該当するアカウントコントラクトのexecute関数を呼び出し、ユーザーが意図したアクションを実行します。
    • Paymasterが指定されている場合は、PaymasterからGas手数料を回収します。指定されていない場合は、アカウントコントラクト自体からGasを回収します。

ERC-4337がもたらす開発者とユーザーへの影響

ERC-4337に基づくアカウント抽象化は、Web3のUXとセキュリティに大きな変革をもたらします。

ユーザーへのメリット

開発者へのメリット

開発における課題と将来展望

ERC-4337は強力な可能性を秘めている一方で、いくつかの課題も存在します。

将来的に、アカウント抽象化はWeb3ウォレットの主流となり、ユーザーは自身のニーズに合わせてカスタマイズされた「スマートウォレット」を持つことが一般的になると予想されます。これにより、Web3アプリケーションの操作はWeb2アプリケーションと同様に直感的になり、より広範なユーザー層への普及が進むでしょう。

まとめ

アカウント抽象化、特にERC-4337は、Web3のユーザーエクスペリエンスとセキュリティを抜本的に改善する革新的な技術です。EOAの制約を克服し、柔軟な認証、Gas手数料の抽象化、プログラム可能なウォレット機能を実現することで、Web3のマスアダプションを加速させる重要な鍵となります。開発者にとって、これはより高度で使いやすいWeb3アプリケーションを構築するための新たな可能性を開くものであり、今後の技術動向に注目し、その活用方法を模索していくことが求められます。Web3エコシステムの未来は、この技術革新の上に築かれていくことでしょう。