EOA と AA ウォレット

イーサリアム上では、主に2種類のアカウントがあります:

  1. 外部所有アカウント (EOA - Externally Owned Account)
  2. コントラクトアカウント (CA - Contract Account)

外部所有アカウント (EOA - Externally Owned Account)

は、ユーザーが秘密鍵を使って制御および管理するアカウントです。この秘密鍵は、ブロックチェーン上のあなたの独自の署名とアクセス許可証と考えることができます。EOAを通じて、ユーザーはトランザクションの送受信や様々なアプリケーションとのインタラクションが可能です。

は以下の通りです:

  • 通常、シードフレーズ(復元フレーズ)を設定する必要があります。これらのシードフレーズは非常に重要であり、あなたの秘密鍵とアカウントへのアクセス権限を表しますので、安全に保管する必要があります。
  • トランザクションの送受信、ETH残高の管理、そしてスマートコントラクトとのインタラクションを可能にします。
  • チェーン上にデプロイされる際には追加の資金は必要ありません。

市場には、MetaMaskやTrust Wallet、RainbowなどのソフトウェアウォレットやTrezor、Ledger、GridPlusなどのハードウェアウォレットなど、さまざまな方法でEOAを実現する手段があります。これらは提供するユーザーエクスペリエンスが異なるかもしれませんが、すべてのユーザーに同じタイプのアカウントエクスペリエンスを提供します。

コントラクトアカウント (CA - Contract Account)

は特別なアカウントタイプを表します。外部所有アカウント(EOA)とは異なり、これは秘密鍵ではなく、組み込まれたスマートコントラクトコードによって制御されます。コントラクトアカウントはコードを持つことができ、そのコードはトランザクションを受け取った際に自動的に実行されます。この特性により、トークン転送、コントラクトデプロイ、その他の高度なブロックチェーン操作を実行することができます。

は以下の通りです:

  • ネットワーク上で契約データを継続的に保存するため、費用がかかります。
  • トランザクションを受け取った際にのみコードが実行され、これによりトランザクションに対する応答が行われます。
  • EOAからコントラクトアカウントへのトランザクションは、そのコードをトリガーし、トークン転送や新しいコントラクトの作成といった操作を完了させることができます。
  • それらは秘密鍵を持たず、その行動は完全に内部コードロジックによって決定されます。

アカウント抽象化(AA):EOAとCAの利点を組み合わせる

ブロックチェーン分野において、AA (Account Abstraction) は新しい進展であり、EOAとCAの特性を融合し、両者の利点を統合してその限界を克服することを目指しています。

EOA = off-chain wallet

AA = on-chain wallet = EOA + Smart Contract

スマートコントラクトを利用してウォレットアカウントにオンチェーンプログラミング機能を提供し、これによりウォレットアカウントにかつてない柔軟性がもたらされます。

は以下の通りです:

  • :AAウォレットを使用する前に、一度アクティベートを行い、一定のガス費用を支払う必要があります。
  • :EOAウォレットとは異なり、アカウント抽象化は高いプログラミング性とカスタマイズ可能な設定を提供します。
  • :スマートコントラクトの一環として、AAはユーザーにリアルタイムでトランザクション状態を追跡させることが可能で、EOAのように「処理中」だけ表示されるわけではありません。
  • :スマートコントラクト技術を通じて、AAはEOAよりも安全性において著しい進歩を遂げています。


AAウォレットの動作原理と主要な提案

AAウォレットはEOAとスマートコントラクトから構成されており、特にそのスマートコントラクト部分が重点となっています。

  1. :この提案は、スマートコントラクトが通常の署名アルゴリズムを回避し、特定のEVMバイトコードを実行することでトランザクションの有効性を確認できる仕組みを定義します。この設計により、スマートコントラクトは自主的にガス価格を調整し、支払い能力内の費用を確保できます。

  2. :この提案はEIP-2938に続いて導入され、前者とは異なる戦略を採用しています。EIP-3074は、ユーザーが特定のコントラクトに自分のEOAの制御を委任できるようにすることで、EOAアカウントをスマートコントラクトに近づけることを目指しています。

  3. :これは現在のAA方向への最新提案であり、スマートコントラクトウォレットの次のステップと見なすことができます。EIP-4337のフレームワーク下では、ユーザー自身が直接トランザクションを発行せず、UserOperationsという操作を高レベルのmempoolに提出します。その後、マイナーまたはパッカーがこれらのUserOperationsを束ねたトランザクションに集約し、特定のEntryPointコントラクトに提出して実行します。このコントラクトは操作の順序実行を保証し、マイナーまたはパッカーが正当なトランザクション手数料を得られるよう保障します。


未来のAAの進化

EIP-4337のデザインコンセプトはスマートコントラクトウォレットと似ており、プロトコルレベルでの変更を行わずにAAを模倣することを目指しています。しかし、EIP-4337に基づくウォレットは依然としてEthereumネットワークにおける優先的な存在ではありません。

この一連のアカウント抽象化の設計と発展過程は、L2sへの移行に向けたエコシステム全体に堅固な基盤を築いています。例えば、StarkNetやzkSyncはそれぞれEIP-4337の理念を多く取り入れた独自のアカウント抽象化メカニズムを導入しようとしています。

より多くのL2がこのアカウント抽象化のバリエーションをサポートするようになるにつれ、ますます多くのユーザーがこれによる大きな改善を実感することが期待されます。コミュニティがこれらの恩恵をより広範に体験すれば、プロトコルレベルでの修正を推進する動機付けとなり、最終的にはアカウント抽象化がイーサリアムメインネット上で完全に実現される可能性があります。