DAOrayaki:アカウント抽象がどのようにイーサリアムの大規模採用を確保するか
著者:Fifty Finney
原文タイトル:《Account Abstraction --- A pivotal step in ensuring Ethereum's adoption.》
アカウント抽象は今年繰り返し注目されているトピックですが、市場参加者の多くはそれが何であり、どのようにゲームを変えるのかを理解していません。Vitalikによれば、アカウント抽象は「私たちがずっと望んでいたもの」であり、「イーサリアムコミュニティの長年の夢」であったとされています。
この記事では、アカウント抽象がイーサリアムブロックチェーンの拡張と大規模採用の確保において果たす役割について議論します。
まず、アカウント抽象を完全に理解するためには、コンピュータサイエンスにおける抽象とは何かを理解する必要があります:
抽象の芸術:
抽象とは、システムの物理的、空間的、または時間的な詳細を取り除き、より重要な属性に焦点を当てることを指します。
ソフトウェア工学における一般的な抽象の形態の一つはデータ抽象であり、これは情報を隠し、ユーザーがコンピュータの背後で起こっている論理やプロセスを完全に理解することなく、高いレベルでコンピュータを使用できるようにすることを指します。
出典:TIBC
例えば、開発者がソフトウェアを書くとき、彼らはPythonやJavaなどの高級プログラミング言語を使用します。プログラマーは、機械コードを構成する0と1を書く方法を理解する必要はありません。
イーサリアムアカウント抽象
アカウント抽象はデータ抽象の一形態です。イーサリアムアカウントから何を抽象化するのかを理解するためには、まずイーサリアム上でアカウントがどのように機能するかを理解する必要があります。イーサリアムには2種類のアカウントがあります:
外部所有アカウント (EOA)、契約アカウント (CA)
外部所有アカウント (EOA)
これらは本質的にユーザーが制御するアカウントで、一対の暗号鍵、すなわち公開鍵と秘密鍵で構成されています。これらは秘密鍵を持つ誰でも生成および制御できます。このアカウントを作成するのに費用はかからず、アカウントユーザーは取引を開始できます。
契約アカウント (CA)
契約アカウントは、イーサリアムネットワーク上のコードによって制御されるスマートコントラクトです。契約には秘密鍵はなく、イーサリアムネットワーク上のスマートコントラクトコードの論理によって制御されます。ネットワークストレージを使用しているため、契約アカウントを開設するには一定の費用がかかります。このアカウントは、受信取引に対する応答としてのみ取引を送信できます。
イーサリアムアカウントには4つのフィールドがあります:
Nonce - これはカウンターとして機能し、アカウントから送信された取引の数を示します。nonceは重要な特性であり、取引がEOA上で一度だけ発生することを保証します。CA上では、nonceはアカウントが作成した契約の数を表します。
残高 - これはweiで測定されたアドレスが持つethの量を示します。
Codehash - これはイーサリアム仮想マシン(EVM)上のアカウントコードを指します。異なるコードスニペットは異なるユニークな機能を持ち、コードのハッシュ値が呼び出されると機能します。EOAの場合、これは空の文字列のハッシュで表されます。
Storageroot - これはストレージハッシュとも呼ばれ、アカウントのストレージ内容を単純にマッピングします。
出典:イーサリアムドキュメント
イーサリアム上の2種類のアカウントを理解したので、アカウント抽象を定義できます。アカウント抽象は、イーサリアムの2種類のアカウント(外部所有アカウントと契約アカウント)を単一のタイプ、すなわち契約アカウントに簡素化するプロセスです。これにより生成される契約アカウントは、取引を開始し、取引手数料を支払い、ユーザーの独自のニーズに応じてカスタマイズできるようになります。契約アカウントは、従来のCAとEOAの機能を持つことになります。
実装技術
イーサリアムの創設者Vitalik Buterinは、ネットワーク上でアカウント抽象を実現するいくつかの方法を説明しました。これらの方法には以下が含まれます:
- レイジーフルアブストラクション:これはよく議論される抽象の形態です。これは、イーサリアムアカウントをEOAとCAからCAのみに減少させることです。ユーザーは資金を契約アカウントに保存し、契約コードがnonce、残高、コードハッシュ、署名、ガス価格、ストレージハッシュにエンコードされたデータを解釈し実行します。
利点:
これにより、プロトコルが非常にシンプルになります。
欠点:
各アカウントに非常に複雑なコードをハードコーディングする必要があり、nonceの署名を検証し、ガスを支払う必要があります。
マイナーが送信者のために新しいアカウントを作成する前に、追加のロジックが必要です。
アカウントが非標準的な方法で作成されるため、同じハッシュを持つ取引が複数回含まれる可能性があります。
- ランダム数の抽象化:この実装技術では、取引のランダム数をアカウントのランダム数と等しくすることでランダム数を抽象化します。
利点:
nonceの抽象化は、取引が複数の場所で発生する可能性を排除します。
欠点:
基盤となるプロトコルがより複雑になります。
- 標準化された署名スキーム:この抽象方法は、取引にバイト配列フィールドの署名を追加します。
利点:
これにより、署名の検証が簡単になります。
欠点:
基盤となるレイヤーの複雑性が増します。
Vitalikが概説した他のいくつかのアカウント抽象技術には、ブレークポイント操作コードの追加、ガス支払い操作コードの追加、ガス価格 + パニック操作コードの挿入、パニックとガス支払い操作コードの組み合わせ、取引におけるソルト(salt) + コードの組み合わせ、新しく作成されたアカウントの支払いが含まれます。
アカウント抽象の利点
ここまで来ると、これがあなたにどのような影響を与えるのか、そしてこれがどのようにイーサリアムブロックチェーンをより良くするのか疑問に思うかもしれません。アカウント抽象のいくつかの利点を見てみましょう:
- 多呼び出し機能の実現:現在、イーサリアムブロックチェーンと対話する際には、各操作ごとに新しい取引を行う必要があります。抽象化により、すべての取引をワンクリックで完了でき、ユーザーのガスと時間を節約できます。
セッションキー:セッションキーは、ユーザーが分散型アプリケーション(Dapp)と対話する際にルールを指定できるようにします。これらのルールは、ユーザーが事前に承認されたルールに制限されるため、より高いセキュリティを保証します。悪意のある行為者がアカウントを変更し、資金を盗むことができないようにします。セッションキーで指定できるいくつかのパラメータには、アカウントがDappと接続できる最大時間、使用できる最大ガス、および取引できるトークン数のセキュリティ閾値が含まれます。この機能を実現するチームには、Loot Realm、briq、matchboxDAO、Ledgerが含まれます。
社会的回復。アカウント抽象化により、Metamaskで一般的に使用されているシードフレーズを終了できます。社会的回復により、ユーザーは信頼できる連絡先または信頼できる第三者サービスを通じて回復方法を指定できます。ユーザーがアカウントを回復しようとする際に気が変わった場合、回復前に遅延タイマーを設定することもできます。Argentはこの措置を実施しており、ユーザーがGoogle Driveに暗号化されたシードフレーズをバックアップできるようにしています。
多要素認証:いくつかの伝統的な金融機関は、二要素認証の標準化を推進しています。このセキュリティモデルは、アカウント抽象を通じて実現でき、ユーザーがマルチシグウォレットを指定および作成できるようにします。
プラグイン:アカウント抽象により、第三者の開発者がアカウント作成時に新機能を挿入できるようになります。
多トークン手数料支払い:アカウント抽象により、ユーザーはイーサリアム以外の任意のトークンでガス料金を支払うことができるようになります。
手数料委任:アカウント抽象により、ユーザーは他の人のために手数料を支払うことができるようになります。プロジェクトやプロトコルは、ユーザーの代わりにガス料金を支払い、オンボーディングプロセスをよりシームレスにします。
多様な署名スキーム:アカウント抽象により、現在のECDSAスキームとは異なる署名スキームが許可されます。抽象化によってのみ、この変化が許可されます。これにより:
量子耐性が導入され、イーサリアムが偽造されたり量子コンピュータに攻撃されたりしないことが保証されます。
より効率的な署名アルゴリズムが作成され、これによりガス料金が低下する可能性があります。
契約アカウントがアップグレード可能になります。
私たちは、アカウント抽象化がイーサリアムチェーンをネットワークに対してより利用可能にし、次の波のユーザーがDeFiに参加するのを助けると信じています。