イーサリアムに関する一般的な経済抽象化
イーサリアム愛好家 (ID: ethfans)イーサリアム愛好家 (ID: ethfans)、著者:Kevin Britz、翻訳および校正:Zeng Mi & A Jian、許可を得てOdailyより転載。
過去 2 年間の大部分において、Astro Wallet (最近 Coinbase に買収されました) では、さまざまな形の経済抽象化に取り組んできました。私たちは、今日の dApps が直面している多くのユーザー エクスペリエンスの問題に対して何らかのガイダンスを提供できることを期待して、ブロックチェーン業界のより多くの同僚と調査結果を共有したいと考えています。
意味
意味
この用語が広く使用されていることから、議論を始める前に明確な定義をしておきたいと思います。
経済的抽象化 - ブロックチェーン トランザクションおよびトランザクション操作自体を開始するためのトランザクション手数料を支払うために、任意のブロックチェーン資産をアトミックに使用する機能。
これが何を意味するのかをさらに明確にするために、いくつかの例を見てみましょう。
ユーザーはUSDCを送金したいと考えていますが、ウォレットに取引手数料を支払うためのETHがないという事実に悩まされています。
副題
構成
実際、ほとんどのブロックチェーンにおける経済的抽象化は、手数料の抽象化とトークンの抽象化という 2 つのコンポーネントに分割されます。両方が達成できれば、完全な経済的抽象化が得られます。
手数料の抽象化 - ブロックチェーン上のあらゆる資産をアトミックに使用して、トランザクションを開始する際の手数料を支払うことができます。
一般に、ブロックチェーン プロトコルは、ネットワークのセキュリティを確保するために、特定の基盤となるトークン (イーサリアムなど) に依存する必要があります。一部のプロトコルは、料金の支払いにトークンの使用をサポートしている限り、料金の抽象化を実現できると考えていますが、これはほとんどのプロトコルには適していません。以下の実装セクションでは、イーサリアムのようなプロトコル上に料金の抽象化を構築する方法について説明します。
トークンの抽象化 - ブロックチェーン上のあらゆる資産をアトミックに使用してトランザクションを完了する機能。
成し遂げる
成し遂げる
副題
基本的な構成要素
これらのコア機能をイーサリアムに実装する鍵となるのは、スマート コントラクト ウォレットの使用です。従来のアドレスベースのウォレットにはこれらの機能がありませんが、スマートコントラクトを通じてロジックを追加して、新しいコア機能を実現できます。
手数料の委任 — つまり、取引手数料の支払いを送信者の代わりに別の支払者に割り当てることです。
現在のスマート コントラクト ウォレットのほとんどは、Gas リピーターを使用して料金委任を実装しています。ユーザーは、トランザクション料金を支払うためにイーサリアムをスマート コントラクト ウォレットに直接入力する必要はありませんが、メッセージに署名することでトランザクションのリレーを完了できます (リレーはメッセージをトランザクションにパッケージ化し、メッセージを次のように送信します)送信者)トランザクション)。ユーザーのアカウントは実際にはスマート コントラクトであるため、ウォレットがコントラクト呼び出しを検証できる限り、どちらのアプローチも機能します。
マルチオペレーション トランザクション - つまり、複数のアトミック関数呼び出しが 1 つのトランザクション内で完了します。
副題
料金の抽象化を実装する
マルチオペレーション トランザクションを使用すると、標準のガス リピータ アーキテクチャ上にメッセージ送信プロトコルの別の層を構築し、手数料の抽象化を実現できます。以下では、簡単なケースを使用して、プロトコルがウォレットを拡張して追加機能を提供する方法を説明します。
ステップ 0: クライアント ウォレットは、一連の操作 [1…n] で構成されるトランザクションを送信したいと考えています。
ステップ 1: クライアントウォレットは、どのトランザクションを送信したいのか、どの資産でトランザクション手数料を支払いたいのかをガス中継者に通知します。
ステップ 2: 中継者は、中継ユーザーが要求した取引の価格を指定する署名付き見積メッセージで応答します。この価格は、ユーザーが指定した資産 (料金の支払いに使用される) に基づいて計算されます。
ステップ 3: クライアント ウォレットは、指定された値の資産をリピーターに転送する追加の操作を追加します。
ステップ 4: 最終的にオペレーション [1…n+1] で構成されるトランザクションが、署名されたオファー メッセージとともに中継者に送り返されます。
ステップ 5: リレーラーはトランザクションと見積メッセージを検証し、トランザクションをブロックチェーンに送信します。
副題
トークンの抽象化を実装する
マルチオペレーション トランザクションの恩恵を受ければ、トークンの抽象化を実現するのは簡単ですが、主な困難はトランザクション分析にあります。クライアントウォレットは、トランザクション内のアクションを実行するときに、どの資産が使用される (または受け取られる) か、およびいくら使用される (または受け取られる) かを知るために、基礎となるトランザクションを分析できる必要があります。
上記の分析を実行するために、Astro で修正されたイーサリアム ノードを構築しましたが、これはアルゴリズム的な課題ではなく主にエンジニアリング上の課題であるため、読者のための演習として残しておきます。
最初のレベルのタイトル
一緒にフィットしましょう!
手数料とトークンの抽象化を同時に実現し、両者を組み合わせることで経済的な抽象化を実現できるようになりました。
また、即時認証などの他の柔軟な機能を追加できるため、0x や Uniswap などのコントラクトが資産を使用することを認証するために別のトランザクションを送信する必要がなくなりました。これにより、資産の (すべてではなく) 必要な金額を使用するトランザクションのみを承認する必要があるため、ユーザーのセキュリティも向上します。
このフローチャートを通じて、導入部のやや複雑な例を明確に説明します。このフローチャートは、このトランザクションに最終的に含まれる操作のリストを抽象的に示しています。ご覧のとおり、ユーザーは 0x プロトコル (ETH) の料金、0x リレーラーの料金 (ZRX)、CryptoKitties 販売者からの入札 (DAI)、およびトランザクションをルーティングするための Gas リレーラーの料金をすべて一度に支払うことができます。ウォレット内の USDC に依存するだけで十分です。
この記事をレビューしてくれた Clinton Bembry、Linda Xie、Aparna Krishnan、Clay Robbins に感謝します。


