アカウント抽象化における EIP-4337 の役割については、この記事をご覧ください。
星球君的朋友们
2021-10-20 08:07
本文约1533字,阅读全文需要约6分钟
この投稿では、アカウント抽象化における EIP-4337 の役割について完全に理解します。

この投稿では、アカウント抽象化における EIP-4337 の役割について完全に理解します。

導入

この投稿では、アカウント抽象化における EIP-4337 の役割について完全に理解します。

  • 導入

  • この提案には、上位層のインフラストラクチャに依存するのではなく、コンセンサス層プロトコルの変更を回避するための変更が含まれています。次の目標を達成することを目的としています。

  • アカウントの抽象化: ユーザーは、EOA の代わりに任意の検証ロジックを含むスマート コントラクト ウォレットをプライマリ アカウントとして使用できます。

  • 分散化: ユーザー アクティビティのアカウント抽象化を含むプロセスに任意のバインダーが参加できるようにします。ユーザーは、共通メモリ プール全体で発生するアクティビティを処理するために、参加者の直接通信アドレスを知る必要はありません。

取引手数料の支払い: ERC-20 トークンを使用して取引手数料を支払うことで、開発者がユーザーの手数料を支払うことができるようになり、スポンサー取引に対する EIP-3074 のようなユースケースも可能になります。

仕事

以下は、この提案の新機能の一部です。すべての操作はピアツーピア メモリ プールで行われます。ウォレットは確定的な CREATE2 アドレスに存在し、ウォレットが存在しない場合は UserOperation が自動的に作成するため、ユーザーはウォレット コントラクトが解放されることを心配する必要はありません。ユーザーは定額料金のプレミアムと最大合計料金を設定できるようになり、それがすぐに含まれ、合理的に請求されることを期待できます。偽装チェックに合格した UserOperations は、送信者が別の状態変化を起こすまで封じ込めることが保証されます。その場合、攻撃者は送信者ごとに 7500+ ガスを支払う必要があります。

仕事

ユーザーは、ユーザーの目的、署名、および検証用のその他のデータをカプセル化した UserOperation オブジェクトを送信します。 Flashbot などのサービスを利用するマイナーまたはバインダーは、UserOperation オブジェクトを単一のバンドルされたトランザクションに結合し、イーサリアム ブロックに含めることができます。バインダーはバンドルされたトランザクションのコストを ETH で支払い、個々の UserOperation の実行ごとに支払われる手数料によって補償されます。バインダーはコスト優先ロジックを使用して、含める UserOperation オブジェクトを選択します。

ウォレットのロジックを簡素化するために、セキュリティを維持するために必要な複雑なスマート コントラクト ロジックのほとんどは、ウォレットの外部、つまりエントリ ポイントと呼ばれるグローバル コントラクトで実行されます。 validateUserOp 関数と実行関数は、require(msg.sender == ENTRY POINT) でゲートされることが期待されているため、信頼できるエントリ ポイントのみがウォレットの操作の実行または料金の支払いをトリガーします。 calldata で UserOperation を使用して userop の成功を確認した後、エントリ ポイントはウォレットに対して任意の呼び出しを行います。これはウォレットを攻撃から保護するために行われます。

UserOperation の検証が正常にモック化された場合、送信者のアカウントの内部状態が変化するまで、UserOperation は封じ込め可能であることが保証されます。

トランザクションを開始する

  • アプリケーション開発者がユーザーに代わって料金を支払うことを許可したり、ユーザーがERC20トークンで料金を支払い、仲介者としての契約を通じてERC20トークンを受け取り、ETHを使用して支払うことを許可したりできます。

  • ユースケース 1 の場合: Paymaster は、イニシエーターの署名が paymasterData に含まれていることを検証し、イニシエーターが UserOperation の料金を支払う準備ができていることを示します。署名が有効な場合、Paymaster は受け入れ、UserOperation 料金が開始者の取り分から差し引かれます。

アドバンテージ

  • ユースケース 2 の場合: Paymaster は、発信元ウォレットに UserOperation を支払うのに十分な ERC20 残高があるかどうかを確認します。 「はい」の場合、Paymaster は ETH 料金を受け入れて支払い、postOp で ERC20 トークンを要求します。

  • アドバンテージ

  • 実行ロジックの柔軟性: ウォレットは実行ステップにカスタム ロジックを追加できるようになります。

欠点がある

  • ウォレットのアップグレード可能性: ウォレットは公開鍵を変更したり、コードをアップグレードしたりできるようになります。

  • 欠点がある

  • 一度に 1 つのトランザクション: アカウントは複数のトランザクションをキューに入れて Mempool に送信することはできません。

Source:https://medium.datadriveninvestor.com/account-abstraction-eip-4337-40a94d5b6d2c

この記事は分散型金融コミュニティからのものであり、許可を得て転載しています。

星球君的朋友们
作者文库