著者: フィフティ・フィニー
原題: Account Abstraction — イーサリアムの採用を確実にするための極めて重要なステップ。
アカウントの抽象化は今年繰り返し話題になっていますが、それが何なのか、またそれがどのように状況を変えることができるのかを理解している市場参加者はほとんどありません。 Vitalik 氏によると、アカウントの抽象化は「私たちが常に望んでいたもの」であり、「イーサリアム コミュニティの長年の夢」でした。
この投稿では、イーサリアム ブロックチェーンを拡張し、大量採用を確実にする上でのアカウント抽象化の役割について説明します。
まず、アカウントの抽象化を完全に理解するには、コンピューター サイエンスにおける抽象化が何であるかを理解する必要があります。
抽象芸術:
抽象化とは、システムの物理的、空間的、または時間的な詳細を削除し、より重要な特性に焦点を当てることを指します。
画像の説明
出典: TIBC
たとえば、開発者がソフトウェアを作成するときは、Python、Java などの高レベルのプログラミング言語を作成します。プログラマーは、マシンコードを構成する 0 と 1 の書き方を知る必要はありません。
イーサリアムアカウントの抽象化
アカウントの抽象化は、データの抽象化の一形式です。イーサリアムアカウントから何が抽象化されているかを理解するには、まずアカウントがイーサリアム上でどのように機能するかを理解する必要があります。イーサリアムには次の 2 種類のアカウントがあります。
外部所有アカウント (EOA)、契約アカウント (CA)
外部所有アカウント (EOA)
これらは基本的に、暗号化キーのペア、公開キーと秘密キーで構成されるユーザー管理のアカウントです。これらは、秘密鍵を保持する人によって生成および制御されます。このようなアカウントの作成に料金はかからず、アカウントのユーザーは取引を開始できます。
契約アカウント (CA)
コントラクト アカウントは、イーサリアム ネットワーク上のコードによって制御されるスマート コントラクトです。コントラクトには秘密キーはありませんが、イーサリアム ネットワーク上のスマート コントラクト コードのロジックによって制御されます。ネットワークストレージを利用するため、契約アカウントの開設には一定の料金を支払う必要があります。このようなアカウントは、トランザクションの受信に応じてトランザクションを送信することしかできません。
Ethereum アカウントには 4 つのフィールドがあります。
Nonce - アカウントから送信されたトランザクションの数を示すカウンターとして機能します。 nonce は、トランザクションが EOA 上で 1 回だけ発生するようにするため、重要な機能です。 CA では、ノンスはアカウントによって作成されたコントラクトの数を表します。
残高 - これは、ウェイで測定されたアドレスが所有するイーサの量を表します。
コードハッシュ - これはイーサリアム仮想マシン (EVM) 上のアカウント コードを指します。コードの異なる部分には異なる独自の機能があり、コードのハッシュが呼び出されると、そのハッシュが機能します。 EOA の場合、これは空の文字列のハッシュによって表されます。
画像の説明
出典: イーサリアムのドキュメント
イーサリアム上の 2 種類のアカウントがわかったので、アカウントの抽象化を定義できます。アカウントの抽象化は、イーサリアムの 2 種類のアカウント (外部所有アカウントと契約アカウント) を 1 つのタイプ (契約アカウント) に簡素化するプロセスです。結果として得られる契約アカウントは、取引を開始し、取引手数料を支払うことができ、ユーザー固有のニーズに合わせてカスタマイズすることができます。契約アカウントは従来のCAとEOAの機能を持ちます。
実装技術
イーサリアムの創設者ヴィタリック・ブテリン氏は、ネットワーク上でアカウントの抽象化を実現するいくつかの方法について説明しました。これらの方法には次のものが含まれます。
遅延完全抽象化: これは、よく議論される抽象化の形式です。イーサリアムアカウントをEOAとCAからCAのみに減らすことです。ユーザーは資金を契約口座に保管し、契約コードはノンス、残高、コード ハッシュ、署名、ガス価格、ストレージ ハッシュでエンコードされたデータを解釈して実行します。
アドバンテージ:
欠点:
欠点:
nonce 署名を検証してガスを支払うには、非常に複雑なコードを各アカウントに組み込む必要があります。
マイナーが送信者の新しいアカウントを作成するには、追加のロジックが必要です。
アカウントは非標準的な方法で作成されるため、同じハッシュを持つトランザクションが複数回含まれる可能性があります。
nonce 抽象化の削除: この実装手法では、トランザクション nonce をアカウント nonce と等しくすることで nonce が抽象化されます。
アドバンテージ:
欠点:
欠点:
基礎となるプロトコルが複雑になります。
標準化された署名スキーム: この抽象化により、バイト配列フィールドの署名がトランザクションに追加されます。
アドバンテージ:
欠点:
欠点:
ベースレイヤーの複雑さが増します。
Vitalik によって概要が説明されている他のアカウント抽象化手法には、ブレークポイント オペコードの追加、有料ガス オペコードの追加、ガス価格 + パニック オペコードの挿入、パニックと有料ガス オペコードの結合、トランザクションでのソルト + コードの結合、新規作成アカウントの支払いなどがあります。
アカウント抽象化の利点
この時点で、これがどのような影響を与えるのか、またこれによってイーサリアム ブロックチェーンがどのように改善されるのか疑問に思われるかもしれません。アカウント抽象化の利点をいくつか見てみましょう。
1. マルチコール機能の実装: 現在、イーサリアムブロックチェーンと対話する場合、操作ごとに新しいトランザクションを作成する必要があります。抽象化により、すべてのトランザクションをワンクリックで完了できるため、ユーザーのガスと時間を節約できます。
2. セッション キー: セッション キーを使用すると、ユーザーは分散型アプリケーション (Dapps) と対話するときにルールを指定できます。これらのルールにより、ユーザーは事前に承認されたルールに制限され、悪意のある攻撃者がアカウントを変更して資金を盗むことができないため、より高いセキュリティが保証されます。セッション キーを使用して指定できるパラメーターには、アカウントが Dapp に接続したままにできる最長時間、消費できる最大ガス、取引できるトークンの数のセキュリティしきい値などがあります。この機能を実装しているチームには、loot realm、briq、matchboxDAO、ledger などがあります。
3. 社会的回復。アカウントの抽象化により、シード フレーズに対するメタマスクの一般的な使用を廃止できます。ソーシャル リカバリを使用すると、ユーザーは信頼できる連絡先または信頼できるサードパーティ サービスを通じて回復方法を指定できます。ユーザーがアカウントを復元しようとしたときに気が変わった場合は、復元する前に遅延タイマーを設定することもできます。 Argent はこれを実装し、ユーザーが暗号化されたシード フレーズを Google ドライブにバックアップできるようにします。
4. 多要素認証: 一部の従来型金融機関は、2 要素認証の標準化を推進しています。このセキュリティ モデルはアカウントの抽象化を通じて実装でき、ユーザーはマルチシグネチャ ウォレットを指定して作成できます。
5. プラグイン: アカウントの抽象化により、サードパーティの開発者はアカウントの作成時に新しい機能をプラグインできます。
6. マルチトークン料金の支払い: アカウントの抽象化により、ユーザーはイーサリアム以外のトークンでガス料金を支払うことができるようになります。
7. 料金の委任: アカウントの抽象化により、ユーザーは他の人に代わって料金を支払うことができます。プロジェクトとプロトコルはユーザーに代わってガス料金を支払うことができるため、オンボーディング プロセスがよりシームレスになります。
8. 多様な署名スキーム: アカウントの抽象化により、現在の ECDSA スキームとは異なる署名スキームが可能になります。この種の変化を可能にするのは抽象化だけです。この意志:
量子耐性を導入して、イーサリアムが量子コンピューターによって偽造または攻撃されないようにします。
より効率的な署名アルゴリズムを作成すると、ガス料金の削減につながる可能性があります。
契約アカウントをアップグレードできるようにします。
私たちは、アカウントの抽象化により、ネットワークでイーサリアム チェーンがより利用しやすくなり、次のユーザーの波が DeFi に参入できるようになると考えています。
