マルチチェーンアカウントの抽象化技術解析:ERC-4337とネイティブAAの比較

未来を明らかにする:マルチチェーンアカウントの抽象化解析

7月8日から11日まで、イーサリアムコミュニティ会議がブリュッセルで開催され、これはヨーロッパ最大規模のイーサリアム年次イベントであり、技術とコミュニティに焦点を当てています。

本会議には350人以上のブロックチェーン業界の第一線の意見リーダーが講演を行い、その中には「未来を明らかにする:マルチチェーンアカウントの抽象化解析」と題された講演も含まれています。

スピーチの要点:

  • アカウントの抽象化(AA)の二つの重要なポイント:署名の抽象化と支払いの抽象化。署名の抽象化はユーザーが任意の検証メカニズムを選択できることを可能にし、支払いの抽象化は多様な取引支払いオプションをサポートします。この柔軟性はセキュリティとユーザー体験を向上させます。

  • ERC-4337とネイティブAAの「検証」フェーズのエントリポイント関数は固定されていますが、「実行」フェーズでは、ネイティブAAのエントリポイントのみが固定されています。異なる実装における取引の検証制限と取引の実行ステップにはそれぞれ特徴があります。

  • EVM互換チェーンでERC-4337を実装する際、Rollup設計におけるプロトコルの違いとアドレス計算方式の違いは2つの重要な違いであり、これによりL1とL2の間でERC-4337を実装する際にいくつかの微妙な開発の詳細が生じる。

以下はスピーチの全文です:

皆さん、こんにちは。今日はERC-4337とネイティブAAの概念を紹介し、それらの違いについて議論し、L1とL2の4337標準の主な違いを重点的に分析します。

アカウントの抽象化の紹介

1. アカウントの抽象化の定義

アカウントの抽象化(AA)は主に2つの重要なポイントを含みます:署名の抽象化と支払いの抽象化。

  • 署名の抽象化:ユーザーは、特定のデジタル署名アルゴリズム(例えばECDSA)に限定されず、好みの検証メカニズムを選択できます。
  • 支払いの抽象化:ユーザーはERC-20資産を使用してネイティブ資産の支払いの代わりにしたり、第三者に取引をスポンサーしてもらったりするなど、さまざまな取引支払いオプションを利用できます。

この柔軟性は、より安全で優れたユーザー体験を提供します。アカウントの抽象化の目標は、さまざまな方法でこの2つの重要なポイントを達成することです。

! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抄録解析

2. ERC-4337の紹介

現在、イーサリアムプロトコルにおける外部所有アカウント(EOA)には、固定された署名方法や支払い設計などのいくつかの制限があります。ERC-4337は、より柔軟なアカウント管理と取引処理方法を導入することで、これらの問題を解決します。

  • userOp 構造体: ERC-4337 では、ユーザーが userOp 構造体を Bundler に送信します。 Bundler は複数の userOps を収集し、handleOps 関数を呼び出して EntryPoint コントラクトに送信します。
  • EntryPointコントラクト:このコントラクトはオペレーティングシステムのように取引を処理し、主な機能は以下の通りです:
    • アカウントのコントラクト内のvalidate関数を呼び出し、userOpがアカウントの所有者の承認を得ていることを確認します。
    • 手数料を徴収します。
    • アカウントの合約にあるexecute関数を呼び出し、userOpの目標操作を実行します。

3. ネイティブAAの紹介

イーサリアムでは、アカウントはEOAとコントラクトアカウントに分けられます。しかし、ネイティブAAでは、各アカウントがコントラクトであり、トランザクション処理メカニズムがブロックチェーンプロトコルに直接組み込まれています。

各ブロックチェーンネットワークにおけるAAの設計:

  • ERC-4337 アカウントの抽象化: Ethereum、Arbitrum、Optimism、Base、Linea、Scroll、Polygon PoS
  • ネイティブアカウントの抽象化はERC-4337に準拠しています:StarkNet & zkSync時代
  • プライバシー設計を持つネイティブアカウントの抽象化:Aztec

! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抽象解析

ERC-4337とネイティブAAの違い

1. オペレーティングシステムの役割

AA OSは以下の問題を解決する必要があります:

  • ガス価格の決定者
  • 取引の順序を決定する者とメモリプールの位置
  • エントリーポイント関数のトリガー
  • 取引処理プロセスの決定要因

ERC-4337 では、これらのロールは Bundler と EntryPoint コントラクトを通じて協力して行われます。

ネイティブAAでは、ユーザーはそのuserOpsを公式サーバーのオペレーター/ソーターに送信し、BundlerやEntryPoint Contractではなくなります。

StarkNetでは、Sequencerがこれらすべてのタスクを処理します。

zkSyncにおけるEraと他のAA実装の主な違いは、Operatorがbootloader(システムコントラクト)と連携して作業する必要があることです。Bootloaderは新しいブロックを開き、そのパラメータ(ブロックパラメータおよびその他のGasパラメータを含む)を定義し、Operatorからの取引を受け取って検証します。

2. コントラクトインターフェース

3つのステップが存在するため、アカウント契約インターフェースは異なる実装で類似しており、これらのエントリポイント関数はAA OSによってのみ呼び出すことができます:

  • ERC-4337:ユーザー アクションの認証
  • zkSync:トランザクションの検証、トランザクションの支払い、トランザクションの実行
  • StarkNet:実行、検証、validate_declare、validate_deploy

ERC-4337とネイティブAAにおいて、"検証"ステージのエントリーポイント関数は固定されていますが、"実行"ステージでは、ネイティブAA内のエントリーポイントのみが固定されています。

3. 検証ステップの制限

トランザクションの検証にコスト制限がないため(本質的に、トランザクションの検証はビュー関数の呼び出しです)、攻撃者はメモリプールに対してDoS攻撃を行い、バンドラー(EIP-4337)またはオペレーター/ソーター(ネイティブAA)を破壊することができます。

EIP-4337は、禁止されているオペコードとストレージアクセスの制限方法を定義しています。zkSync Eraは、一部のオペコードの使用を緩和しました:

  • コントラクトのロジックは自分のストレージスロットにのみアクセスできます。アカウントコントラクトのアドレスがアドレスAである場合、次のことにアクセスできます:

    • アドレスAに属するストレージスロット
    • 他のアドレスAに属するストレージスロット
    • 他のアドレスに属するストレージスロットkeccak256 (A || X):これは、アドレスをマッピングのキー(例えば、mapping (address => value) )として直接使用することを意味し、keccak256 (A || X)のスロットにアクセスするのと同等です。例えば、ERC-20コントラクトの資産残高。
  • コントラクトロジックはグローバル変数、例えばブロック番号にアクセスできません。StarkNetは外部コントラクトの呼び出しも許可していません。

4. 実行ステップの制限

zkSyncでは、システムコールを実行するにはシステムフラグの存在を確認する必要があります。例えば、nonceを増やす唯一の方法はNonceHolderと対話することであり、契約をデプロイするにはContractDeployerと対話する必要があります。システムフラグは、アカウント開発者が意識的にシステム契約と対話することを保証します。

ERC-4337とStarkNetでは、実行フェーズに特別な制限はありません。

5. ランダム数

  • ERC-4337において、エントリーポイントの乱数設計は192ビットのキー値と64ビットの乱数値を区別しています。
  • zkSyncにおいて、NonceHolderシステムコントラクトはnonceを管理し、厳密に増加することを保証します。すなわち、ランダム数を1増やします。
  • StarkNetでは、nonceも厳密に増加しますが、特定のコントラクトによって管理される抽象的なnonceはありません。

6. 最初のトランザクションを使用してデプロイする

  • ERC-4337はuserOp構造内にinitcodeフィールドを含み、最初のuserOpで送信者(アカウント契約)をデプロイします。
  • StarkNetとzkSyncでは、ユーザーはアカウント契約をデプロイするために、最初の取引をオペレーター/ソートナーに送信する必要があります。

7. zkSyncにおける特殊なデザイン

もしあなたがETHをEthereumのEOAからzkSyncに直接移動させると、カスタムアカウント契約をデプロイする必要はなく、同じアドレスを持つデフォルトアカウントを受け取ります。このアカウントはEthereumのEOAのように機能し、対応するEthereumのEOAの秘密鍵によっても制御されます。

このアカウントタイプはバージョンNoneであり、version1ではありません。DefaultAccountの関数を呼び出すことはできません。なぜなら、それはカーネルスペースに何のコードもデプロイしていないからです。

! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抄録解析

L1の4337とL2の4337の違い

EVM互換チェーンでERC-4337を実装する際の2つの重要な違いは、プロトコルの違いとアドレスの違いです。

1. プロトコルの違い

Rollup設計において、L2は安全性と決済のためにデータをL1にアップロードする必要があります。ERC-4337の文脈では、このアップロードプロセスに関連する費用、例えばL1の安全費用やblob費用は、事前検証Gasに含まれるべきです。事前検証Gasに適切なアップロード費用を決定することは重大な課題です。

2. アドレスの差異

zkSync ERAのcreate関数におけるアドレスエンコーディング方式は、EthereumやOPの集約とは異なります。また、StarkNetは独自のハッシュ関数を用いてアドレス計算を行っています。EVM互換チェーン上のERC-4337の文脈では、通常、アドレス計算は各チェーン上で一貫していると仮定されます。しかし、EthereumとL2のERC-4337実装間でアカウントコントラクトアドレスが異なる可能性がある注意すべき詳細があります。

重要な問題は、ハードフォークに新しいオペコードを追加することです。たとえば、L2チェーンが上海ハードフォークをサポートしておらず、コンパイル時にEVMバージョンが指定されていない場合、push0の導入はバイトコードの変更を引き起こします。同じSolidityコードであっても。

まとめ

以上はアカウントの抽象化に関するいくつかの情報です。何か質問があれば、Twitterで私に連絡してください。

! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抄録解析

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 7
  • 共有
コメント
0/400
EthMaximalistvip
· 07-24 00:42
大会について何も明確に説明されていなかった
原文表示返信0
RugDocScientistvip
· 07-23 14:29
また一波のマーケティング講座ですね
原文表示返信0
AirdropSweaterFanvip
· 07-22 12:12
マルチチェーンAAはめちゃくちゃクールです。
原文表示返信0
RiddleMastervip
· 07-22 12:11
サイン抽象は最高です!
原文表示返信0
liquidation_surfervip
· 07-22 12:00
またクリップクーポンを使いに行ったの?
原文表示返信0
RugPullProphetvip
· 07-22 11:51
プロジェクトは来年もあるかどうかは言えません。
原文表示返信0
SnapshotDayLaborervip
· 07-22 11:46
いつワンクリック送金ができるようになりますか?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)