既存のユーザーのほとんどは、 を使用してイーサリアムとやり取りしています。これにより、ユーザーがイーサリアムとやり取りする方法が制限されます。たとえば、トランザクションのバッチ処理が困難になり、トランザクション手数料を支払うために常にETH残高を維持する必要があります。
アカウント抽象化は、ユーザーがアカウントにより高いセキュリティと優れたユーザー体験を柔軟にプログラムできるようにすることで、これらの問題を解決する方法です。これは、スマート・コントラクトで制御できるようにEOAをアップグレードする (opens in a new tab) (EIP-7702) ことで実現できます。また、既存のプロトコルと並行して実行される2つ目の独立したトランザクションシステム (opens in a new tab) (EIP-4337) を追加するという別の方法もあります。どちらのルートであっても、結果として、既存のプロトコルの一部としてネイティブにサポートされるか、アドオンのトランザクション・ネットワークを介して、スマート・コントラクト・ウォレット経由でイーサリアムにアクセスできるようになります。
スマート・コントラクト・ウォレットは、ユーザーに以下のような多くのメリットをもたらします。
- 独自の柔軟なセキュリティルールの定義
- 鍵を紛失した場合のアカウントの復元
- 信頼できるデバイスや個人間でのアカウントセキュリティの共有
- 他人のガスの支払いや、他人に自分のガスを支払ってもらうこと
- トランザクションのバッチ処理 (例: スワップを一度に承認して実行する)
- 分散型アプリケーション (dapp) やウォレットの開発者がユーザー体験を革新する機会の増加
現在、トランザクションを開始できるのは外部所有アカウント () のみであるため、これらのメリットはネイティブにはサポートされていません。EOAは単なる公開鍵と秘密鍵のペアです。これらは次のように機能します。
- 秘密鍵を持っていれば、Ethereum Virtual Machine (EVM) のルールの範囲内で_何でも_できます。
- 秘密鍵を持っていなければ、_何も_できません。
鍵を紛失すると復元できず、鍵が盗まれると、窃盗犯はアカウント内のすべての資金に即座にアクセスできるようになります。
スマート・コントラクト・ウォレットはこれらの問題の解決策ですが、実装するロジックは最終的にイーサリアムで処理される前に一連のEOAトランザクションに変換される必要があるため、現在プログラミングが困難です。アカウント抽象化により、スマート・コントラクト自体がトランザクションを開始できるようになるため、ユーザーが実装したいロジックをスマート・コントラクト・ウォレット自体にコーディングし、イーサリアム上で実行できるようになります。
最終的に、アカウント抽象化はスマート・コントラクト・ウォレットのサポートを向上させ、構築を容易にし、より安全に使用できるようにします。アカウント抽象化により、ユーザーは基盤となる技術を理解することなく、イーサリアムのすべてのメリットを享受できます。
シード・フレーズの先へ
現在のアカウントは、シード・フレーズから計算された秘密鍵を使用して保護されています。シード・フレーズにアクセスできる人なら誰でも、アカウントを保護している秘密鍵を簡単に発見し、保護されているすべての資産にアクセスできます。秘密鍵とシード・フレーズを紛失すると、資産には永久にアクセスできなくなります。これらのシード・フレーズを安全に保管することは、専門家のユーザーにとっても厄介であり、シード・フレーズのフィッシングは最も一般的な詐欺の1つです。
アカウント抽象化は、スマート・コントラクトを使用して資産を保持し、トランザクションを承認することでこれを解決します。スマート・コントラクトには、最大限のセキュリティと使いやすさに合わせて調整されたカスタムロジックを含めることができます。ユーザーは引き続き秘密鍵を使用してアクセスを制御しますが、安全対策が強化されています。
たとえば、ウォレットにバックアップ鍵を追加して、プライマリ鍵が侵害された場合に鍵を交換できるようにすることができます。各鍵を異なる方法で保護したり、信頼できる個人間で分散させたりすることで、セキュリティを大幅に向上させることができます。高額のトランザクションに複数の署名を要求したり、トランザクションを信頼できるアドレスに制限したりするなど、追加のウォレットルールにより、鍵の漏洩による被害を軽減できます。
より優れたユーザー体験
アカウント抽象化は、プロトコルレベルでスマート・コントラクト・ウォレットをサポートすることで、ユーザー体験とセキュリティを大幅に向上させます。開発者は自由に革新を起こし、速度と効率のためにトランザクションのバンドルを改善できます。シンプルなスワップはワンクリックの操作になり、使いやすさが大幅に向上します。
ガス管理が大幅に改善されます。アプリケーションはユーザーのガス代を支払ったり、ETH以外のトークンでの支払いを許可したりできるため、ETH残高を維持する必要がなくなります。
アカウント抽象化はどのように実装されますか?
現在、スマート・コントラクト・ウォレットは標準のトランザクションをラップする複雑なコードに依存しているため、実装が困難です。イーサリアムは、外部のリレイヤーに依存するのではなく、イーサリアムのスマート・コントラクトにロジックを埋め込み、スマート・コントラクトが直接トランザクションを開始できるようにすることで、これを変えることができます。
EIP-4337: プロトコルの変更を伴わないアカウント抽象化
EIP-4337は、イーサリアムのコアプロトコルを変更することなく、ネイティブのスマート・コントラクト・ウォレットのサポートを可能にします。バリデーターによってトランザクションのバンドルに収集される UserOperation オブジェクトを導入し、ウォレット開発を簡素化します。EIP-4337のEntryPointコントラクトは2023年3月1日にイーサリアム・メインネットにデプロイされ、2,600万以上のスマートウォレットと1億7,000万以上のUserOperationsの作成を促進しました。
現在の進捗状況
イーサリアムのペクトラ・アップグレードの一環として、EIP-7702は2025年5月7日に予定されています。EIP-4337は広く採用されており、2,600万以上のスマートアカウントがデプロイされ、1億7,000万以上のUserOperationsが処理されています (opens in a new tab)。
参考文献
- erc4337.io (opens in a new tab)
- EIP-4337 ドキュメント (opens in a new tab)
- EIP-7702 ドキュメント (opens in a new tab)
- ERC-4337 採用ダッシュボード (opens in a new tab)
- ヴィタリックの「アカウント抽象化への道 (Road to Account Abstraction)」 (opens in a new tab)
- ソーシャル・リカバリー・ウォレットに関するヴィタリックのブログ (opens in a new tab)
- Awesome Account Abstraction (opens in a new tab)