悪いユーザー エクスペリエンスは、今日の広範な仮想通貨の採用に対する主な障害の 1 つです。一般的なメインストリーム ユーザーは、分散化や潜在的に明るい未来については考えていません。
そして、それが最新の web3 が不十分なところです。多くの人にとって、スマート コントラクトの世界に入り込み、ブロックチェーンの概念を理解し、暗号ウォレットを設定することさえ、複雑すぎるように思えます。たとえば、シードフレーズを簡単に失う可能性があり、資金が永久に失われることは言うまでもありません。
ただし、2023 年 3 月 1 日に展開された Ethereum の EIP-4337 の最新の実装は、アカウントの抽象化と呼ばれるソリューションで UX の問題に対処しています。しかし、それは何ですか?本当に全体が変わるのか
まず、アカウントの抽象化の背後にある概念をさらに理解するのに役立ついくつかの基本に触れましょう。
イーサリアム エコシステムには 2 種類のアカウントがあります。
これらのアカウントは個人によって管理されており、複雑なコードは含まれていません。このようなアカウントには、取引の確認と実行に必要な秘密鍵と公開鍵のペアがあります。
外部所有のアカウントの明らかな例の 1 つは、MetaMask ウォレットです。
契約アカウント
これらのアカウントは基本的に、コードによって制御されるスマート コントラクトです。コントラクト アカウントでは、ユーザーが手動でトランザクションを実行する必要はなく、秘密鍵もありません。
したがって、契約アカウントと外部所有アカウントの主な違いは、前者はコードによって管理され、後者はユーザーによって決定されることです。これを理解することが重要です。スマート コントラクト アカウントは、プログラムされたロジック (プログラマーが望むものすべて) を実行できますが、EOA はブロックチェーン上でトランザクションに署名するだけです。
最近まで、ユーザーがネットワークとやり取りして、ウォレット間の資金の取引や購入などの特定の操作を行う唯一の方法でした。
ブロックチェーンの開発者や、この分野にしばらく携わっている人にとって、EOA の使用はおなじみのプロセスです。
ただし、初心者や古い世代にとって、これはロケット科学です。
ウォレットの設定から、秘密鍵の生成と記憶、資金の購入、コインを転送するたびにガス料金を支払うこと、アドレスをいじらないことまで、現代の便利さに慣れている人にとっては、すべてが複雑すぎます。ボタン一つで送金できる銀行サービス。
そしてそれだけではありません。
EOA を使用するときは、秘密鍵とシード フレーズに細心の注意を払う必要があります。それらを失うと、資金にアクセスできなくなるため、致命的となる可能性があります。また、秘密鍵が盗まれた場合、ハッカーはすべてのデジタル マネーに完全にアクセスできます。
従来の銀行システムでは、カードを紛失した場合でも、銀行はいつでもカードをブロックして新しいカードを送ることができます。
ごく一部のユーザーだけがリスクを冒す準備ができているのも不思議ではありません。また、考えられるすべてのリスクを認識し、自分自身を保護する方法を知っている知識豊富なユーザーでさえ、EOA を使用することは依然として一定の心理的緊張をもたらします。
ブロックチェーン テクノロジをよりアクセスしやすく、ユーザー フレンドリーにするために、イーサリアムの開発者はアカウントの抽象化の概念を思いつきました。これは、ユーザーが EOA の代わりにスマート コントラクトを介してネットワークと対話できるようにするという考えです。
しかし、なぜですか?スマート コントラクト ウォレットは、明確なルールと設定を含めることができるため、EOA よりも用途が広い可能性があります。これにより、契約アカウントに幅広い機能が提供されます。
たとえば、アカウントの抽象化と契約アカウントでは、1 人のユーザーが (1 つのウォレットに対して) 異なる秘密鍵を持つことができ、信頼できる個人とデバイスのプールに分散されます。ユーザーが自分の主キーにアクセスできなくなった場合、ユーザーはこれらの個人に連絡して、自分の資金へのアクセスを回復できます。
これは、アカウントの抽象化によってユーザー エクスペリエンスを向上させる方法の 1 つにすぎません。
EIP-4337 の共著者である Yoav Weiss 氏によると、Vitalik Buterin 氏は次のように述べています。
「アカウントの抽象化は、次の 10 億人のユーザーにアピールする方法です。」
アカウントの抽象化は、
しかし、実際には、これら 2 つの略語は異なります。Ethereum Improvement Proposal (EIP) は、Ethereum Request for Comment (ERC) になる前に、まずオンチェーン ガバナンス システムによって受け入れられる必要があります。
また、ERC は EIP の 1 つのコンポーネントにすぎず、主にプロトコルと開発ガイドラインについて説明しています。
2021 年 9 月に提案された EIP-4337 の前には、ETH のアカウントの抽象化に関連するさまざまなEIPがありました。
2016 年の EIP-86 — この提案は、スマート コントラクトにトランザクションを開始および承認する機能を与えることに重点が置かれていました。
2020 年の EIP-2938 — この提案は、新しいトランザクション タイプを作成することを目的としていました。
2020 年の EIP-3074 — この提案は、新しいオペコード (スマート コントラクト ビルディング ブロック) を使用して、自己実行型のスマート コントラクトをより効率的に提供することに焦点を当てていました。
これらの提案はいずれも、1 つの単純な理由で実装されませんでした。それらはすべて、基礎となる Ethereum ネットワーク インフラストラクチャの変更を必要とし、これはコンセンサス合意なしでは実現できません。
EIP-4337 は、プロトコルの変更を必要としないという点で異なります。代わりに、既存のインフラストラクチャの上に高レベルのインフラストラクチャを構築することを提案しています。
実際、ERC-4337 は 2023 年 3 月 1 日から既に実装されており、開発者は新しいロジックを使用してアプリを構築することができます。
全体のプロセスは次のようになります。
スマート ウォレットは疑似トランザクション オブジェクトである「 UserOperation 」をトリガーし、特別なmempoolに追加します。この mempool は本質的にトランザクションのキューです (ただし、Ethereum の通常の mempool とは異なります)。
次に、新しい分散型オペレーターであるバンドラーが、マイナーまたはバリデーターのように振る舞います。 mempool から UserOperations を取得し、複数のユーザー操作を「バンドル トランザクション」と呼ばれる 1 つのトランザクションにパッケージ化します。次に、バンドラーは「バンドル」を「 EntryPoint *.*」と呼ばれるグローバル スマート コントラクトに送信します。
次の段階では、「 handleOps 」と呼ばれる別の関数がバンドルを受け取り、「 validateUserOp 」を介して検証に情報を送信し、操作を実行します。
バンドラーは、操作に関連する取引手数料 (ガス) を支払うか、ユーザーの契約アカウントまたは「ペイマスター」と呼ばれる第三者 (分散型アプリまたはウォレット) によって補償されます。
早わかり:
アカウントの抽象化は、あらゆるレベルのユーザーに多くの利点をもたらします。
イーサリアム アカウントの抽象化は、スマート コントラクト、ウォレット、およびアプリケーションの開発者に、コードを通じてアカウント ルールを設定できるようになるため、ユーザー エクスペリエンスの革新に関してより多くの自由を提供します。これにより、オンボーディングが容易になり、従来の銀行に匹敵する全体的なレベルのサービスと利便性が実現します。
新しいアカウント ロジックにより、ETH で動作するアプリがさらに強化されます
マルチ署名承認— 複数の信頼できる個人またはデバイスと承認資格情報を共有できます。開発者は、特定の値のトランザクションが実行される前に、信頼できる関係者の特定の割合 (たとえば 3/5) からの承認が必要になるようにコントラクトを構成することもできます。
アカウントの凍結— デバイスの紛失または侵害が発生した場合、アカウントは他の承認済みデバイスから保護され、資金を安全に保つことができます。
アカウントの回復— EOA では、デバイスを紛失したり、シード フレーズを忘れたりすると、資産を無期限にロックアウトする可能性があります。幸いなことに、スマート コントラクト ウォレットを使用すると、信頼できるアカウントを確立して、新しいデバイスを許可し、アクセスをリセットできます。
トランザクションの制限— 1 日、1 週間、または 1 か月にアカウントから転送できる値の量に 1 日あたりの制限を設定することで、ハッカーがアクセスした場合に、すべてをすぐに消去できないようにします。
ホワイトリスト— 資金の最大限のセキュリティを確保するために、安全であることがわかっているアドレスに対してのみトランザクションを開始できます。悪意のある個人があなたの秘密鍵にアクセスした場合、ホワイトリストに登録されていない宛先に資金を送金することはできません.それでも、そのような変更は、複数の署名によって検証された場合にのみ発生します。つまり、攻撃者が自分のアドレスをこのリストに含めたい場合は、最初にいくつかのバックアップ キーも取得する必要があります。
アカウントの抽象化により、ガス管理も改善されます。アプリケーションには、ユーザーのガス料金をカバーするだけでなく、ETH 以外のトークンを使用して、第三者によるそのような費用の支払いを可能にする機能があります。このように、ユーザーはトランザクションに資金を供給するために ETH 残高を維持する必要はありません。スマート コントラクトはユーザー トークンを ETH と自動的に交換します。
多くのアプリ、特にゲームでは、信頼できるセッションを実装することでメリットが得られます。これは、短時間で検証する必要がある小規模なトランザクションが多数あるためです。すべてのトランザクションを手動で承認すると、ゲーム体験が妨げられます。ただし、永続的な承認を与えることは安全ではありません。スマート コントラクト ウォレットは、特定のトランザクションを所定の時間、特定の値まで、または特定のアドレスに対してのみ承認できるようにすることで、代替ソリューションを提供できます。
今日、すべてのトランザクションには、正しいトークンが現在ウォレットにロードされていることの証明が必要です。しかし、アカウントの抽象化テクノロジを使用すると、オンライン ショッピングと同じように、「バスケット」に商品を入れて [購入] をクリックすると、消費者が手動で入力するのではなく、すべての必要なロジックがコントラクトによって処理されます。
契約アカウントを使用すると、ビラーによって開始される「プル」支払いを行うことができます。たとえば、電力会社は、プログラムされた支払い契約を設定し、毎月の請求額や 1 日に支払いを開始する頻度などのルールを決定することができます。ユーザーが契約アカウントを通じてこれらの事前定義されたプル支払いを承認すると、給料日が来るとすぐに自動請求返済を行うことができます。
ブロックチェーンは現在、さまざまな決済アプリケーションで非常に有用になっています。
コントラクト アカウントを活用することで、開発者は既存の EOA の制限から解放され、彼らが目指している分散化を失うことなく、web2 から web3 に有利な要素を持ち込むことができます。ここでは、アカウントの抽象化によってユーザー エクスペリエンスを最適化する方法のいくつかの例に触れましたが、まだ出現していない想像力豊かな新しいアイデアには無限の可能性があります。