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.
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つの重要な概念を含んでいます:
サインの抽象化:ユーザーは特定のデジタル署名アルゴリズム(例えばECDSA)に限定されることなく、好きな検証メカニズムを自由に選択できます。
支払いの抽象化:ユーザーは、ERC-20トークンをネイティブトークンの代わりに使用したり、第三者が取引を支援したりするなど、さまざまな方法で取引手数料を支払うことができます。
この柔軟性は安全性を高めるだけでなく、ユーザーエクスペリエンスを最適化します。アカウントの抽象化の目標は、これら2つのコア概念をさまざまな方法で実現することです。
ERC-4337 解析
現在、イーサリアムプロトコルの外部所有アカウント(EOA)には、固定された署名方法や支払い設計などのいくつかの制限があります。ERC-4337は、より柔軟なアカウント管理と取引処理方法を導入することで、これらの問題を解決します。
userOp 構造体: ERC-4337 では、ユーザーが userOp 構造体を Bundler に送信します。 Bundler は複数の userOps を収集し、handleOps 関数を呼び出して EntryPoint コントラクトに送信します。
EntryPointコントラクト:このコントラクトはオペレーティングシステムのように取引を処理し、主な機能には以下が含まれます:
ネイティブAAの概要
イーサリアムでは、アカウントはEOAと契約アカウントに分かれています。しかし、ネイティブAAでは、各アカウントが契約であり、取引処理メカニズムがブロックチェーンプロトコルに直接組み込まれています。
各ブロックチェーンネットワークにおけるAA設計:
! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抽象解析
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とネイティブAAにおいて、「検証」フェーズのエントリーポイント関数は固定されていますが、「実行」フェーズではネイティブAAのエントリーポイントのみが固定されています。
検証ステップの制限
コスト制限がないため、攻撃者はメモリプールに対してDoS攻撃を行い、バンドラー(EIP-4337)またはオペレーター/ソートナー(ネイティブAA)に影響を与える可能性があります。
EIP-4337は禁止されたオペコードおよびストレージアクセス制限を定義しています。zkSync Eraは一部のオペコードの使用を緩和しました:
実行ステップの制限
zkSyncでは、システムコールを実行するにはシステムフラグの存在を確認する必要があります。例えば、nonceを増やすにはNonceHolderとインタラクションを行い、契約をデプロイするにはContractDeployerとインタラクションを行う必要があります。
ERC-4337とStarkNetは実行段階において特別な制限はありません。
ランダム数処理
初回取引のデプロイ
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コードが同じであっても。
! 暗号インフラストラクチャの未来は? マルチチェーンアカウントの抄録解析