メインコンテンツまでスキップ

EOA Paymaster

概要

EOA ベースの Paymaster

このドキュメントでは、EIP-4337 で定義されているPaymasterとは異なり、外部所有アカウント (EOA) ウォレット向けに特別に設計されたPaymaster ソリューションを紹介します。最小限の変更で、ウォレットはこのソリューションを統合してGas料金のスポンサーシップをサポートし、ユーザーエクスペリエンスを大幅に向上させることができます。

EOA ベースの Paymaster とは何ですか

EIP-4337 (エントリーポイントコントラクト仕様によるアカウント抽象化) のPaymasterは、Ethereum 取引の柔軟性とユーザー エクスペリエンスを強化するために設計された重要なコンポーネントです。これにより、第三者がユーザーの取引手数料を支払うことができるため、ユーザーはGas代を支払うために ETH を保持する必要がなくなります。

EIP-4337 はスマートコントラクトウォレットのPaymasterという革新的な概念を導入しましたが、Ethereum エコシステムのかなりの部分は依然として EOAs に依存しています。これを認識して、これは EOA ウォレット向けに特別に設計された画期的なPaymaster ソリューションを紹介します。このイノベーションは、スマートコントラクトウォレットへの移行を必要とせずに、取引スポンサーシップと強化されたユーザーエクスペリエンスの利点をより広範な BOT Chain ユーザーベースにもたらします。 EOA Paymaster ソリューションは、スポンサー付き取引へのアクセスを民主化し、何百万もの既存の EOA ウォレット ユーザーにとってブロックチェーンインタラクションをよりユーザー フレンドリーでコスト効率の高いものにすることを目的としています。

仕組み

取引処理で大幅な変更が発生します。

  1. バリデーターの役割: バリデーターは、ブロック内の個々の取引のGas価格を検証しなくなりました。

  2. 取引のバンドル: プライベート取引はバンドルにグループ化され、ビルダーに送信されます。

  3. 優先順位付け: 建設業者は、各バンドルの合計Gas価格に基づいて優先順位を付けます。

  4. バンドル内の柔軟性: 単一のバンドル内でGas価格が変動する可能性があるため、手数料ゼロの取引と手数料の高い取引を共存させることができます。

この柔軟性により、スポンサー付きGas料金やGasレス取引などの革新的な機能が可能になります。

定義

バンドル: アトミックに実行される取引の順序付き配列。バンドル内のすべての取引が一緒に処理されるか、まったく処理されないことを確保します。

ビルダー: ブロックの構築を担当する MEV サプライチェーンの新しい利害関係者。ビルダーは、取引バンドル、パブリック txpool からの個々の取引、およびプライベート取引オーダーフローを提案されたブロックにパッケージ化します。

プロポーザー: ブロックチェーンに含めるために複数のビルダーの提案から最も収益性の高いブロックを選択するバリデーター。

Paymaster: 取引のスポンサーシップを可能にし、ご本人または第三者がGas料金を負担できるようにするインフラストラクチャコンポーネント。

スポンサー ポリシー: どの取引がスポンサーシップの対象となるかを決定するためにGasスポンサーによって定義された一連のルール。これには、ホワイトリストに登録された取引送信者や特定の取引タイプなどの基準が含まれる場合があります。

全体的なワークフロー

Gasスポンサーシップ プロセスには、いくつかの主要なコンポーネントと手順が含まれます。

  1. ユーザーで開始::

    • ユーザーは、互換性のあるウォレットを使用して取引を準備します。

    • ウォレットは、スポンサー付きの可能性のある取引のGas価格をゼロに設定します。

  2. Paymaster への提出:

    • ウォレットはゼロGas価格取引をPaymasterに送信します。
  3. スポンサーポリシーの確認:

    • Paymasterは、既存のスポンサーポリシーに基づいて取引をチェックします。

    • ポリシーには、送信者/受信者のアドレス、トークンの種類、取引制限などの基準が含まれる場合があります。

  4. スポンサーシップの処理:

    • 取引がスポンサーシップの対象となる場合: a. Paymaster は、より高いGas価格でスポンサー取引を作成します。 b.元のユーザー取引とスポンサー取引が 1 つのバンドルに統合されます。

    • 適格でない場合、取引は拒否されるか、通常の処理のためにユーザーに返されます。

  5. バンドルの作成と送信:

    • このバンドルは複数の MEV ビルダーに送信されています。
  6. ビルダーの選択と提案のブロック:

    • MEV ビルダーは、ブロック提案にバンドルを統合します。
  7. ブロックチェーンの包括性:

    • 提案者(検証者)は、建設者の提案の中から最も収益性の高いブロックを選択します。

    • ユーザーの元の取引とスポンサーの取引の両方を含む選択したブロックがブロックチェーンに追加されます。

    • これにより、両方の取引が確実にアトミックに実行されます。

  8. 取引後の処理:

    • Paymasterマネージャーはスポンサーのアカウントを更新し、スポンサー付きGasの適切な金額を差し引きます。

このソリューションにより、既存のウォレットインフラストラクチャに大幅な変更を加えることなく、シームレスなGasスポンサーシップが可能になります。ブロックチェーンネットワークのセキュリティと完全性を維持しながら、さまざまなスポンサーシップモデルに対応できる柔軟なシステムを提供します。

Paymaster インフラ

アプリやウォレットでGasレス エクスペリエンスを有効にする準備はできていますか? BOT Chain で入手可能なPaymaster インフラストラクチャに関する役立つ情報をいくつか紹介します。

  • Nodereal。 Noderealによってサポートされている MegaFuel は、EOA ウォレットの BOT Chain Paymaster に基づくPaymaster実装です。ほんのわずかな変更により、ウォレットに MegaFuel を統合してGas料金のスポンサーシップをサポートし、ユーザーエクスペリエンスを大幅に向上させることができます。同時に、スポンサーは MegaFuel でスポンサーシップをカスタマイズでき、スポンサー付きユーザーがGasレス取引を送信できるようになります。

Paymaster API 仕様

広範な導入を促進し、さまざまなウォレット実装間での相互運用性を確保するには、Paymaster向けの標準化された一連のインターフェイス仕様を確立することが重要です。この標準化により、ウォレット開発者は、利用する特定のPaymasterサービスに関係なく、Gasスポンサーシップ機能を効率的かつ一貫して統合できるようになります。

API 仕様

Paymaster は、スポンサーとポリシーの情報をウォレットに返すことができるように、pm_isSponsorableというJSON-RPC API を実装する必要があります。Paymasterは eth_sendRawTransaction JSON-RPC API も実装する必要があります。詳細な API 仕様は次のように定義されています。

pm_isSponsorable

リクエストパラメータ

  • jsonrpc: JSON-RPC プロトコルのバージョン (「2.0」)。

  • id: リクエストの一意の識別子 (この例では 1)。

  • method: 呼び出されるメソッド名 ("pm_isSponsorable")。

  • params: 次のフィールドを持つ単一のオブジェクトを含む配列:

    • to: 取引の受信アドレス。

    • from: 取引の送信者アドレス。

    • value: 16 進数の取引の値。

    • data: 取引の追加データ (16 進数)。

    • gas: 取引のGas制限 (16 進数)。

例:

{
"jsonrpc": "2.0",
"id": 1,
"method": "pm_isSponsorable",
"params": [
{
"to": "0x...", // an address
"from": "0x...", // an address"value": "0xa1",
"data": "0x",
"value": "0x1b4",
"gas" : "0x101b4"
}
]
}

応答フィールド

  • jsonrpc: JSON-RPC プロトコルのバージョン (「2.0」)。

  • id: リクエストの一意の識別子 (この例では 1)。

  • result: スポンサーシップ ポリシーの詳細を含むオブジェクト:

    • (必須) Sponsorable: 取引がスポンサーであるかどうかを示すブール値 (true または false)。

    • (必須) SponsorPolicy:。スポンサーポリシーの名前。

例:

{
"jsonrpc": "2.0",
"id": 1,
"result": {
"Sponsorable": true,
"SponsorPolicy": "a sample policy name"
}
}
eth_sendrawtransaction

Paymaster によって実装される eth_sendrawtransaction API は、この Ethereum API 仕様に従う必要があります。クライアントは、eth_sendrawtransaction API を介して、新しいメッセージ呼び出し取引を作成したり、署名付き取引のコントラクトを作成したりできます。

リクエストパラメータ

params には、署名された取引データが含まれている必要があります。

例:

{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_sendRawTransaction",
"params": [
"0x02f86a6102850df8475800850df84758000a94cd9c02358c223a3e788c0b9d94b98d434c7aa0f18080c080a0bcb0e8ffa344e4b855c6e13ee9e4e5d22cff6ad8bd1145a93b93c5d332100c2ca03765236eba5fbb357e35014fd19ba4b3c6b87f3793bd14dddf7913fc8dcc88bf"
]
}

応答フィールド

DATA、32 バイト - 取引ハッシュ。

例:

{
"id": 1,
"jsonrpc": "2.0",
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

ウォレットの統合

このガイドでは、ウォレット開発者がPaymasterサービスを統合し、ユーザーのGas料金スポンサーシップを可能にする手順の概要を説明します。これらの標準に従うことで、ウォレットは複数のPaymasterプロバイダー間でシームレスなGasレス取引を提供できます。

インタラクションワークフロー

ウォレット、Paymaster、ブロックチェーン間の EOA Paymaster 連携ワークフロー

統合には、Paymaster サービスと対話するための取引の作成および送信プロセスの変更が含まれます。

主な手順は下記のとおりです。

  1. 取引の準備:

    • ユーザーが取引を開始するときは、まず gm_sponsorable を呼び出してスポンサーシップの資格があるかどうかを確認してください。

    • スポンサーになれる場合は、取引のGas価格をゼロに設定してください。

  2. ユーザー通知:

    • 取引はGasフリーで、API によって返された「ポリシー名」によってスポンサーされることをユーザーに通知します。
  3. 取引署名:

    • ユーザーにGas価格ゼロの取引に署名してもらいます。
  4. Paymaster への提出:

    • eth_sendRawTransaction を使用して、署名された取引をPaymasterに送信します。
  5. 応答処理:

    • Paymasterの応答を処理します。

      • 成功した場合は、取引が送信されたことをユーザーに通知します。

      • 失敗した場合は、通常の取引処理に戻すか、ユーザーに失敗を通知することを検討してください。

  6. 取引監視:

    • 通常どおり取引のステータスを監視します。

ベストプラクティス

  1. Gas価格を変更する前に、必ずスポンサーの有無を確認してください。

  2. スポンサーシップのステータスについて明確なユーザーフィードバックを提供します。

  3. スポンサーシップが失敗した場合の適切なエラー処理を実装します。

  4. スポンサーなしの取引のフォールバックメカニズムを検討してください。

Gasレス取引を試す

主流のウォレットで Paymaster を体験してください

いくつかの主流の暗号通貨ウォレットはすでに Paymaster の統合を実装しています。このチュートリアルでは、Paymaster 統合ウォレットにGasレス取引を送信する体験を説明します。

Paymaster統合ウォレット

Paymaster 機能が統合されたウォレットは、ユーザーにシームレスなエクスペリエンスを提供します。これらのウォレットは、取引がスポンサーシップの対象となるかどうかを自動的に検出します。取引が適格になると、ウォレットはユーザーの介入なしにGas価格をゼロに設定します。

これを説明するために、BOT Chain でステーブルコインを送金するプロセスを説明します。