要約:アカウント抽象化は、 ブロックチェーン のアップグレードであり、柔軟性に欠ける単一鍵のアカウントモデルを、サポート のカスタム検証ロジックを備えたプログラム可能なスマートコントラクトウォレットに置き換えるものです。従来の外部所有アカウント(EOA)は、by 単一の秘密鍵によって管理されています。この鍵を失えばすべてを失い、漏洩すればすべてが盗まれる可能性があります。 アカウント抽象化により、スマートコントラクトがユーザー アカウントとして機能するようになり、ソーシャルリカバリー(友人がアクセス権の回復を支援できる)、マルチシグネチャ認証、バッチ処理されたトランザクション、ガススポンサーシップ(他者が手数料を負担する)、セッションキー(特定のアクションに対する権限限定キー)、および支出制限といった機能が実現されます。ERC-4337規格は、コアプロトコルの変更を必要とせずに、Ethereum およびEVM互換チェーン上でこれらのスマートコントラクトウォレットがどのように機能するかを定義しています。
わかりやすい説明
今日、ブロックチェーン を利用することは、回復手段のない単一のパスワードだけが唯一のセキュリティ手段である銀行口座を持っているようなものです。パスワードを忘れてしまえば、お金は永久に失われてしまいます。誰かにパスワードを推測されてしまえば、すべてを奪われてしまいます。「パスワードを忘れた」ボタンも、カスタマーサービスも、二要素認証も、利用限度額もありません。すべての取引は、by 単一の暗号鍵によって承認されており、それがセキュリティモデルのすべてなのです。
アカウント・アブストラクションは、by にあるように、アカウントを「プログラム可能」なものに変えます。1つの鍵ですべてを制御する代わりに、スマートコントラクトがアカウントを管理し、開発者が望むあらゆるセキュリティや認証ロジックを実装できるようになります。トランザクションを承認するために3つの鍵のうち2つを必要にしたいですか?可能です。鍵を紛失した場合、信頼できる友人に投票してもらい、アカウントを復旧させたいですか?可能です。追加の承認なしに少額のトランザクションのみを許可する1日あたりの利用限度額を設定したいですか?可能です。 1時間の間、毎回許可を求め直さずに、ゲームに代わりにトランザクションを承認させたいですか?可能です。
名称に含まれる「アブストラクション」とは、アカウントという概念を特定の認証メカニズムから切り離すことを指します。現在、「アカウント」と「秘密鍵」は切り離せない関係にあります。アカウント・アブストラクションでは、アカウント自体がスマートコントラクトとなり、認証ロジックはコントラクトの開発者が構築する内容によって決まります。

従来の口座の課題
Ethereum (およびほとんどのEVM互換チェーン)には、2種類のアカウントがあります。外部所有アカウント(EOA)は、by 秘密鍵によって管理されており、ユーザー のユーザーがMetaMask、Phantom、またはその他の標準的なウォレットを通じてやり取りする対象となります。コントラクトアカウントは、コードを保持するスマートコントラクトであり、by EOAや他のコントラクトからのトランザクションによってのみ実行されます。
EOAには、アドレスを抽象化する上でいくつかの根本的な制限があります。鍵の復旧機能がありません。秘密鍵やシードフレーズを紛失した場合、プロトコルに組み込まれた復旧メカニズムは存在しません。資金は永久にロックされてしまいます。また、ユーザー がブロックチェーン とやり取りするたびに、ガス代を支払うためにネイティブトークン(Ethereum ではETH)を保有している必要があります。これにより、dappを試してみたいだけで、まだ暗号資産を所有していない新規ユーザー(ユーザー )にとって、非常に不快なオンボーディング体験となってしまいます。
すべてのトランザクションには手動での承認が必要です。Dappに限定的な権限を委任する方法はありません。ブロックチェーン のゲームをプレイする場合、ゲーム内のあらゆるアクションを個別に承認しなければならず、ユーザー という苛立たしい体験を強いられます。トランザクションをネイティブにバッチ処理することはできません。トークンの承認と交換を行うには、2つの別々のトランザクションが必要となり、それぞれに個別の署名とガス代が必要となります。
こうした制限こそが、ブロックチェーン のアプリケーションが従来のソフトウェアに比べて操作性が悪いと感じられる主な理由の一つです。アカウント抽象化により、これらの制限は解消されます。

ERC-4337の仕組み
ERC-4337は、ハードフォークやプロトコルレベルの変更を必要とせずに、Ethereum およびEVMチェーンにアカウント抽象化をもたらす規格です。この規格では、既存のトランザクションパイプラインと並行して動作する並列トランザクションパイプラインが導入されています。
スマートコントラクトウォレットとは、ユーザー のアカウントのことです。EOAとは異なり、ユーザー の資金や資産は、独自の検証ロジックを定義したスマートコントラクトby に保管されます。このコントラクトでは、単一の署名、複数の署名、信頼できるエンクレーブから送信された生体認証、あるいは開発者がプログラムしたその他の条件を要求することができます。
ユーザー UserOps(ユーザーオペレーション)は、従来のトランザクションに代わるものです。ユーザー は、トランザクションに直接署名する代わりに、実行したいアクションを記述したデータ構造であるUserOpに署名します。このUserOpは、標準のトランザクション・メンプールではなく、別のメンプール(UserOpメンプール)に送信されます。
バンダラーとは、UserOpのメンプールからUserOpsを収集し、それらを単一の標準的なEthereum トランザクションにまとめ、そのトランザクションをネットワークに送信するノードのことです。バンダラーはバンドルトランザクションのガス代を支払い、実行中にby のスマートコントラクトウォレット(またはその支払責任者)から払い戻しを受けます。バンダラーは、MEVサプライチェーンにおけるブロックビルダーと類似しており、ユーザー のインテントを集約し、それらを効率的にチェーンに送信します。
EntryPoint コントラクトは、すべての EVM チェーンにデプロイされたシングルトンのスマートコントラクトであり、UserOps の実行を調整する役割を担っています。バンドラーがバンドルを送信すると、EntryPoint コントラクトは各 UserOpby を処理し、宛先のスマートコントラクトウォレットの検証関数を呼び出し、ウォレットが操作を承認しているかを確認した上で、操作を実行し、ガスの払い戻しを処理します。
ペイマスターは、UserOpsのガス代を負担できるオプションのスマートコントラクトです。dapp開発者は、自身のユーザー のガス代を支払うペイマスターをデプロイすることで、ユーザー がETHを保有する必要性をなくすことができます。これはオンボーディングにおいて画期的な変化をもたらします。dappが取引コストを負担するため、新規のユーザー は仮想通貨を購入することなくdappを利用できるようになるからです。

アカウント抽象化によって可能になること
ソーシャルリカバリー機能により、ユーザー は「ガーディアン」(信頼できる友人、家族、または機関)を指定することができ、ユーザー がアクセスできなくなった場合に、ガーディアンたちが共同で鍵の変更を承認できるようになります。このウォレットのスマートコントラクトでは、署名鍵を新しい鍵に置き換えるために、一定数のガーディアンによる承認(例えば、5人中3人)が必要となります。これにより、シードフレーズを1つ失っただけで生じる壊滅的なリスクを排除することができます。
セッションキーを使用することで、ユーザー はアプリケーションに対して一時的で権限が制限されたキーを付与することができます。ブロックチェーン のゲームにおけるすべてのトランザクションを個別に承認する代わりに、セッションキーを作成することで、定義された期間(1時間、1回のゲームセッション)および特定の制約(ゲームのコントラクトへの呼び出しのみ、最大支出額0.1 ETH)の下で、ゲームがユーザーに代わってトランザクションを送信できるようにすることができます。セッションの有効期限が切れると、そのキーは使用できなくなります。
トランザクションのバッチ処理により、ユーザー は1回の操作で複数のアクションを承認できるようになります。典型的な例として、ERC-20の「承認とスワップ」flow が挙げられますが、これは現在、2つの別々のトランザクションを必要としています。アカウントアブストラクションを利用すれば、スマートコントラクトウォレットはこれら両方を1つのUserOpにまとめ、トークンの承認とスワップをアトミックに実行できるため、ガス代を節約し、操作の煩わしさを軽減できます。
ペイマスターを介したガス代の引き落としにより、アプリケーションはユーザー に代わってガス代を支払うことや、ETH以外のトークンでのガス代支払いを受け入れることが可能になります。例えば、ステーブルコインのアプリケーションでは、ユーザー がUSDCでガス代を支払うことを許可できます。また、ゲームプラットフォームでは、ユーザー の獲得コストとしてガス代を全額負担することも可能です。これにより、ブロックチェーン の主流化における最大の障壁の一つが取り除かれます。
マルチシグおよびカスタム承認機能により、ウォレットでは、高額な取引に対して複数の承認を必要としたり、閾値を超えた場合に追加のセキュリティチェックをトリガーする利用限度額を設定したり、認証要素(署名、生体認証、ハードウェアトークン、タイムロック)を任意に組み合わせて使用したりすることが可能になります。

現在の実装
いくつかのウォレットプロバイダーがERC-4337規格に基づいてサービスを展開しています。Safe(旧Gnosis Safe)は、最も広く利用されているスマートコントラクトウォレットであり、1,000億ドル以上の資産を保護しています。もともとマルチシグによる財務管理を目的として設計されたSafeは、サポート ERC-4337のUserOp機能flow を完全に実装するまでに拡大しました。Coinbase Smart Walletは、アカウントアブストラクションを活用し、パスキーベースの認証とガス代負担機能により、簡素化されたオンボーディング体験を提供しています。 Argentは、ソーシャルリカバリー、1日あたりの利用限度額、ガーディアンベースのセキュリティ機能を備えたアカウントアブストラクションウォレットを構築しました。Sequenceは、ゲームに特化したアカウントアブストラクションウォレットを提供しており、ゲーム内取引向けに設計されたセッションキーとガス代負担機能を備えています。
Quicknode がアカウント抽象化をどのようにサポートしているか
アカウントアブストラクションウォレットの構築と運用には、堅牢なブロックチェーン インフラストラクチャが必要です。Quicknode のCore APIは、バンドラー、ペイマスター、スマートコントラクトウォレットが、EVMチェーン間でUserOpsを送信・監視するために必要なRPCアクセスを提供します。 低遅延のエンドポイントにより、UserOpsが迅速に処理され、ウォレットアプリケーションが最新の状態を表示できるようになります。Quicknode のマーケットプレイス には、AAウォレットの開発を簡素化するバンドラーおよびペイマスターとの統合機能が含まれています。チーム でカスタムAAインフラストラクチャを構築する場合、Quicknode のStreams を使用することで、UserOpの実行、EntryPointイベント、およびウォレットの状態変化をリアルタイムで監視できます。
EOAとスマートコントラクトアカウント:その違いとは?
アカウント抽象化により、暗号資産ウォレットは、単一の鍵を持つ外部所有アカウント(EOA)から、プログラム可能なスマートコントラクトアカウントへと変化します。以下の表に、どのような変化が生じるかを示します。
寸法 | 外部所有口座(EOA) | スマートコントラクトアカウント |
|---|---|---|
制御されたby | 1つの秘密鍵 | プログラム可能な契約ロジック |
回復 | なし。鍵をなくすと、資金は失われてしまう | 社会復帰や後見人の選任が可能 |
ガス | ユーザー ネイティブトークンを保持していなければならない | by を通じて、ペイマスターからのスポンサーシップを受けたり、他のトークンで支払われたりすることができます。 |
現在、Ethereum ではアカウント抽象化機能は利用可能ですか?
はい。ERC-4337はEthereum メインネット 2023年3月にハードフォークなしで稼働を開始しました。これは、ERC-4337が完全にスマートコントラクトを通じて機能し、by のバンドラーを処理する独立したUserOpメンプールが利用されたためです。さらに最近では、EIP-7702により、既存のEOAが一時的にスマートアカウントの機能を利用できるようになり、ユーザーがすでに使用しているウォレットにアカウントアブストラクションのメリットをもたらしています。バンドラーは、MEVサプライチェーンにおけるブロックビルダーとよく似た動作をし、ユーザー のインテントをまとめてから送信します。
よくある質問
「アカウント・アブストラクション」とは、簡単に言うとどのようなものですか?
アカウント抽象化により、ブロックチェーン アカウントをプログラム可能にします。単一の秘密鍵ですべてを制御する代わりに、スマートコントラクトがアカウントを管理し、復旧機能、利用限度額、バッチ処理、スポンサー付きガスなどの機能を追加できるようになります。
ERC-4337とは何ですか?
ERC-4337は、コアプロトコルを変更することなくアカウント抽象化を可能にするEthereum 規格です。この規格では、UserOps、バンドラー、シングルトンのEntryPointコントラクト、およびオプションのペイマスターが導入されており、これらはすべて標準のRPCエンドポイントを通じて実行されます。
ペイマスターとは何ですか?
ペイマスターとは、ユーザー のガス代を負担したり、ネイティブコイン以外のトークンでガス代を支払えるようにしたりする、オプションのスマートコントラクトです。これにより、新規のユーザー は、あらかじめETHを購入することなく、dappとやり取りできるようになります。
鍵を紛失した場合、アカウントアブストラクションウォレットを復元することはできますか?
多くの場合、そうです。スマートコントラクト対応のウォレットでは、ソーシャルリカバリー機能を実装することが可能です。この機能では、指定された後見人が鍵の変更を承認することで、従来のウォレットを悩ませてきた「単一のシードフレーズに依存する」という欠点を解消できます。鍵の管理の仕組みについては、こちらをご覧ください。
アカウントアブストラクション型ウォレットを利用するには、ETHが必要ですか?
必ずしもそうとは限りません。アプリケーションがペイマスターを導入している場合、ガス代を負担してくれたり、ステーブルコインでの支払いを許可したりするため、そのチェーンのネイティブトークンを保有していなくても取引を行うことができます。
参考資料
「暗号資産ウォレットとは?」-Quicknode ガイド
鍵管理の仕組み-Quicknode 用語集
Quicknode Core API
Quicknode 製品紹介