EthCC大会では、マルチチェーンアカウントの抽象化について議論されました:ERC-4337とネイティブAAの技術比較

マルチチェーンアカウントの抽象化:暗号化インフラの未来を探る

2024年7月8日至11日、イーサリアムコミュニティカンファレンス(EthCC)がベルギーのブリュッセルで開催されます。ヨーロッパ最大規模のイーサリアム年次イベントとして、本会議は技術とコミュニティの発展に重点を置いています。

今回のイーサリアムコミュニティ会議(EthCC 7)では、350人以上のブロックチェーン業界の第一線の意見リーダーが講演を行いました。その中で、あるブロックチェーン開発者が招待され、"未来を明らかにする:マルチチェーンアカウントの抽象化解析"というテーマで講演を行いました。

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

スピーチの要点概要

  • アカウントの抽象化(AA)の核心は、署名の抽象化と支払いの抽象化です。前者はユーザーが任意の検証メカニズムを選択できるようにし、後者はさまざまな取引支払いオプションを提供します。この柔軟性は安全性とユーザーエクスペリエンスを大幅に向上させます。

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

  • EVM互換チェーンでERC-4337を実装する際、主に2つの大きな課題に直面します:Rollup設計におけるプロトコルの違いと、アドレス計算方法の違いです。これらの違いは、L1とL2の間でERC-4337を実現する際に、いくつかの気づきにくい開発の詳細を引き起こします。

アカウントの抽象化の概要

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

アカウントの抽象化(AA)は、主に2つの重要な概念を含んでいます:

  1. サインの抽象化:ユーザーは特定のデジタル署名アルゴリズム(例えばECDSA)に限定されることなく、好きな検証メカニズムを自由に選択できます。

  2. 支払いの抽象化:ユーザーは、ERC-20トークンをネイティブトークンの代わりに使用したり、第三者が取引を支援したりするなど、さまざまな方法で取引手数料を支払うことができます。

この柔軟性は安全性を高めるだけでなく、ユーザーエクスペリエンスを最適化します。アカウントの抽象化の目標は、これら2つのコア概念をさまざまな方法で実現することです。

ERC-4337 解析

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

  • userOp 構造体: ERC-4337 では、ユーザーが userOp 構造体を Bundler に送信します。 Bundler は複数の userOps を収集し、handleOps 関数を呼び出して EntryPoint コントラクトに送信します。

  • EntryPointコントラクト:このコントラクトはオペレーティングシステムのように取引を処理し、主な機能には以下が含まれます:

  1. アカウントの契約にあるvalidate関数を呼び出し、userOpがアカウントの所有者の承認を得ていることを確認します。
  2. 手数料を受け取る。
  3. アカウントの合約にあるexecute関数を呼び出し、userOpの目的操作を実行します。

ネイティブAAの概要

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

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

  • ERC-4337 アカウントの抽象化: Ethereum、Arbitrum、Optimism、Base、Linea、Scroll、Polygon PoS
  • ERC-4337に従ったネイティブアカウントの抽象化:StarkNetとzkSyncの時代
  • プライバシーデザインを備えたネイティブアカウントの抽象化:Aztec

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

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

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

AAオペレーティングシステムは以下の問題を解決する必要があります:

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

ERC-4337では、これらの役割はBundlerとEntryPoint Contractによって協力して行われます。

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

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

zkSync Eraの主な特徴は、Operatorがbootloader(システムコントラクト)と連携して作業する必要があることです。Bootloaderは新しいブロックを開くこと、ブロックパラメータとGasパラメータを定義すること、そしてOperatorからの取引を受け取って検証することを担当します。

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

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

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

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

検証ステップの制限

コスト制限がないため、攻撃者はメモリプールに対してDoS攻撃を行い、バンドラー(EIP-4337)またはオペレーター/ソートナー(ネイティブAA)に影響を与える可能性があります。

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

  • コントラクトロジックは自分のストレージスロットにのみアクセスできます。
  • コントラクトロジックは、ブロック番号のようなグローバル変数にアクセスできません。
  • StarkNetは外部契約の呼び出しを許可しません。

実行ステップの制限

zkSyncでは、システムコールを実行するにはシステムフラグの存在を確認する必要があります。例えば、nonceを増やすにはNonceHolderとインタラクションを行い、契約をデプロイするにはContractDeployerとインタラクションを行う必要があります。

ERC-4337とStarkNetは実行段階において特別な制限はありません。

ランダム数処理

  • ERC-4337:エントリーポイントのランダム数設計は、192ビットのキー値と64ビットのランダム値を区別しています。
  • zkSync: NonceHolderシステムコントラクトは、厳密なインクリメントを確保するためにnonceを管理します。
  • StarkNet:nonceも厳密に増加しますが、特定の契約管理はありません。

初回取引のデプロイ

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

zkSyncの特別なデザイン

zkSyncでは、ETHをEthereumのEOAから直接移動する場合、カスタムアカウント契約を展開する必要はなく、ユーザーは同じアドレスを持つデフォルトアカウントを受け取ります。このアカウントはEthereumのEOAのように機能し、対応するEthereumのEOAの秘密鍵によって制御されます。

このアカウントタイプはversion Noneであり、version1ではありません。ユーザーはDefaultAccountの関数を呼び出すことができません。なぜなら、それはカーネル空間にコードを展開していないからです。

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

L1とL2の4337の違い

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

プロトコルの違い

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

アドレスの差異

zkSync ERAのcreate関数におけるアドレスエンコーディング方式は、EthereumやOPのサマリーとは異なります。また、StarkNetはアドレス計算に独自のハッシュ関数を使用しています。

EVM互換チェーン上のERC-4337の背景において、私たちは通常、アドレス計算が各チェーンで一貫していると仮定します。しかし、見落とされがちな詳細が、イーサリアムとL2のERC-4337実装間でアカウントコントラクトのアドレスが異なる原因になる可能性があります。

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

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

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 5
  • 共有
コメント
0/400
StableGeniusvip
· 12時間前
*あくび* またaaトークか... この映画は見たことがある、経験的に言えばこれはただのethマキシたちのコーピングだ
原文表示返信0
OfflineNewbievip
· 12時間前
誰がまだ跳ねているか見てみましょう
原文表示返信0
TokenVelocityvip
· 12時間前
プロジェクトがすべてのチェーンに達したら、また話しましょう...
原文表示返信0
PessimisticLayervip
· 12時間前
やはり一時的な対策に過ぎないと感じる
原文表示返信0
AllInDaddyvip
· 13時間前
AAこの波は勝てる
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)