スクロールはレイヤ2の波を駆動するか?そして知っておくべきzkEVM回路と監査

中級47.30
この記事では、Scrollのアーキテクチャとテクノロジーを詳細に分析し、読者がScrollの現在のネットワーク状況と将来の開発の方向性を理解するのに役立ちます。 また、Scroll zkEVM の回路と監査についても説明します。
スクロールはレイヤ2の波を駆動するか?そして知っておくべきzkEVM回路と監査

10月10日14:00、イーサリアムレイヤー2ソリューションであるScrollメインネットが最初のブロックを生成し、Scrollのメインネットのローンチに成功しました。 10月25日現在、7600ETH以上がクロスチェーンブリッジを介してScrollネットワークにブリッジされ、24の分散型取引プラットフォームがScrollメインネット上で稼働しており、TVLの合計は約1,000万ドルです。

10月17日、Scrollはオープンソースと分散化へのコミットメントを維持しながら、メインネットの立ち上げを正式に発表しました。 次のフェーズでは、Scrollは分散型のプルーフ・オブ・ステーク・ネットワークとソーターの構築に焦点を当てます。 本稿では、Scrollのアーキテクチャとテクノロジーを詳細に分析し、Scrollの現在のネットワーク状況と今後の開発方向性を皆様に理解していただくために、本稿で紹介します。 また、zkプロジェクトのセキュリティ対策を強化するために、ScrollのzkEVM回路と監査知識についても説明します。

Layer2の波の原動力であるScrollとは?

Scrollは、ゼロ知識証明技術に基づくイーサリアムレイヤー2スケーリングソリューションで、イーサリアムネットワークのトランザクションスループットと速度を向上させることを目的としています。 オプティミスティック ロールアップと比較して、Scroll はゼロ知識証明によってスケーラビリティを実現し、ハードウェア アクセラレーションによってゼロ知識証明の生成と検証を高速化します。 このデバイスは、バイトコード・レベルの EVM 互換性の実現に取り組んでいます。 つまり、開発者はSolidityやイーサリアム関連の開発ツールを直接使用してスマートコントラクトを構築し、変更を加えることなくScrollにデプロイすることができます。

Scrollの公式サイトによると、現在、Scrollチームには10人のコアメンバーがおり、アジア、アメリカ、ヨーロッパに分散しています。 チームメンバーは、zkRollupの開発と業界運営において豊富な経験を持っており、そのほとんどが名門大学を卒業し、博士号を取得しています。

現在、Scrollのエコシステムは非常に豊富で、ウォレット、開発ツール、セキュリティ施設などのインフラストラクチャプロジェクトがあります。 設計、開発、運用、セキュリティ監査まで、ライフサイクル全体を通じてプロジェクトを包括的にサポートすることを目標としています。 現在、Scrollメインネットには180以上のエコシステムプロジェクトがあります。

  1. 財布
    Scrollは現在、Metamask、TrustWallet、MathWallet、TokenPocket、WalletConnect、Binance Chain Wallet、SafePal Walletなど、ほぼすべての主流ウォレットをサポートしています。 さらに、Scrollエコシステムウォレットには、OKX Wallet、Versa Walletなども含まれています。

  2. クロスチェーンブリッジ
    Scrollの公式クロスチェーンインフラストラクチャには、Celer Network、Stargate、Orbiter Finance、Hop Protocol、LI.FI、Connextなどが含まれます。 さらに、クロスチェーン流動性プロトコルSynapse Protocol、レイヤー2クロスチェーンブリッジに焦点を当てたOwlto Finance、イーサリアムレイヤー1およびレイヤー2クロスチェーンブリッジPheasant Network、Symbiosis、Catalystなども含まれています。

  3. DeFi(分散型金融)
    Scrollエコシステムには、レンディングプロトコルのAave、マルチチェーンDEXアグリゲーターのDODO、DEX SushiSwap、DEXアグリゲーターのOpenOcean、マルチチェーンDeFiプロトコルのiZUMi Finance、DEX Syncswap、イールドプロトコルのPendle Finance、レンディングプロトコルのdForce、レバレッジ取引アグリゲーターのMUX Protocolなど、いくつかの確立されたDeFiプロジェクトがあります。 また、GMXのように、広く採用されていない革新的なプロジェクトもあります。

  4. 余人
    NFT、ゲーム、ソーシャルの面では、NFTScan、Web3タスクプラットフォームのQuestN、TaskOn、電子プロトコル署名プラットフォームのEthSign、Galaxy Blitz、OmniKingdomsなどのオンラインブロックチェーンゲームなど、Scrollエコシステムの他のプロジェクトがあります。

スクロールテクノロジーが他のテクノロジーと異なる点は何ですか?

1. 全体的なアーキテクチャ

Scroll のアーキテクチャは、次の 3 つのコンポーネントで構成されています。

スクロールノード:ユーザートランザクションに基づいてScrollネットワーク上にブロックを生成し、これらのトランザクションをイーサリアムベースレイヤーに送信し、イーサリアムとスクロール間のメッセージの受け渡しを処理します。

ローラー:ローラーは、スマートコントラクトをzkEVM回路に変換し、トランザクションの正しさを証明するための証明を生成します。 スクロールネットワークには複数のローラーがあり、トランザクションを並行して処理し、ハードウェアを介してプルーフ生成を高速化します。 Scroll は、EVM バイトコード処理の正確性を直接証明することにより、EVM とのバイトコード・レベルの互換性を実現します。

ロールアップおよびブリッジコントラクト:これらのコントラクトは、Scrollトランザクションにデータの可用性を提供し、zkEVMによって生成された有効性の証明を検証します。 Scrollは、RollupとBridgeのコントラクトを通じてイーサリアムのベースレイヤーに接続されていると言えます。 これらのコントラクトを通じて、ユーザーはイーサリアムとスクロールの間で任意のメッセージを交換し、ゲートウェイコントラクトの助けを借りてERC-20資産をどちらの方向にも転送することができます。


出典: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

スクロールは、イーサリアムブロックチェーン上にデプロイされたメインコントラクトです。

ゲートウェイ ルーティング プロキシ コントラクト (クロスチェーン操作でのトークンの正しいマッピングの保証):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

メッセージ プロキシ コントラクト(L1 と L2 間のメッセージの送信):0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

これらの契約は、プロキシ管理者と所有者が変更できることに注意してください。 さらに、Scrollには、Scroll内の特定のアドレスのガス料金を調整できるホワイトリスト機能が組み込まれています。 現在、スクロールシーケンサーは集中型で動作しており、スクロールネットワーク上のメッセージとトランザクションのレビューが可能です。 さらに、メッセージキュー内のメッセージをバイパスして、特定のメッセージを直接確認する可能性があります。

2. zkEVMワークフローのスクロール

Scrollはブロックを生成した後、コーディネーターと複数の証明者(ローラー)を通過して、集約された証明を生成します。 これらの証明は、検証のためにイーサリアムロールアップコントラクトに提出されます。 詳細なプロセスは次のとおりです。

1、シーケンサーは新しいトランザクションを受信します。 仮想マシンは、各トランザクションに関連付けられたバイトコードを読み取り、実行トレースを生成してコーディネーターに送信します。 同時に、シーケンサーはトランザクション データをロールアップ コントラクトに送信します。

2、ローラーは、コーディネーターから受け取った実行トレースをzkEVM回路に変換します。 実行トレースの各ステップは、zkEVM 回路に対応しています。 zk に対応していない関数 (hash や Keccak など) の場合、Scroll はルックアップ テーブルを構築して、実行トレース内のこれらの関数の入力と出力をルックアップ テーブルにマップします。 ルックアップテーブルの正確性を検証するために、追加の回線が使用されます。 次に、ローラーはこれらのzkEVM回路のプルーフを生成します。

3、校正刷りを生成した後、ローラーは校正刷りをコーディネーターに送り返します。 数ブロックごとに、コーディネーターは集計タスクをローラーにランダムに割り当てます。 割り当てられたローラーは、複数のブロックのプルーフを1つのプルーフに集約します。

4、最後に、コーディネーターは集約された証明をロールアップ契約に提出します。 ロールアップ コントラクトは、この証明を使用して、以前に送信された状態とトランザクション データの正確性を検証し、それによってブロックの正確性を確認します。

zkEVM 回路のスクロールと監査

1.メイン回路

zkEVMは複数の回路で構成されており、それぞれがEVM(イーサリアム仮想マシン)の特定の側面を検証する役割を担っています。 これらの回路は、最終的に結合または集約されて、トランザクション実行の証明が生成されます。 次の図は、これらの回線とテーブルの関係を示しています。

ECDSA回線やオペコード関連のサブ回路など、回線の組み合わせに影響を与えるような方法で他のテーブルや回線と相互作用しない小さなサブサーキットがあります。 これらのサブサーキットは、わかりやすくするために図から省略されています。

EVM回路

イーサリアム仮想マシン(EVM)は、イーサリアムプロトコル内の有効な状態遷移のルールを確立するステートマシンです。 これらの遷移を実現するための命令(オペコード)を実行し、実行トレースを生成します。 この評価基板 (EVM) 回路の目的は、実行トレースを表現し、ゼロ知識証明システムを使用して検証できる制約システムを作成することです。

EVM回路の高レベルの設計は、ゴーイーサリアムのように、EVM自体の設計にいくらか似ています。 ゴーイーサリアムでは、インタプリタは実行トレース上のすべての命令オペコードを反復処理します。 インタプリタは、命令ごとに、ガス、スタック、メモリなどの関連するコンテキスト情報をチェックし、オペコードをJumpTableに送信し、オペコードを実行するための詳細な命令を提供します。

同様に、EVM回路では、Scrollは実行トレースに基づいて実行ステップを構築し、オペコードと実行コンテキストの証明を提供します。 実行ステップごとに、コンテキスト情報をチェックするために一連の制約が適用されます。 オペコードごとに、その動作を検証するために一連の制約が適用されます。 実行トレース内では、同じオペコードに同じ制約が必要です。 Scrollは、セレクターを使用して、実行トレースで同じオペコードを持つすべてのステップを「開き」、バックエンドプルーフシステムを使用してそれらの動作を証明します。

状態回路

実行時には、EVM のすべての読み出し動作と書き込み動作がrw_tableに記録され、rw_counter変数順に並べられます。 状態回路の目的は、rw_tableの正確な生成を実証することです。

MPT回路

マークル・パトリシア・ツリー(MPT)は、イーサリアムのストレージ層で使用される重要なデータ構造です。 Scrollのzkevm-Circuitsでは、MPTはzkTrieに変更され、基本的にはスパースバイナリのMerkle Patricia Trieです。 zkevm-Circuitsでは、ScrollはMPTテーブルを使用して、MPT操作の状態遷移を段階的に追跡します。 MPT テーブルのレイアウトは次のとおりです。

MPT回路の目的は、上記のMPTテーブルの精度を検証することです。 これにより、MPT テーブルに記録された各更新が正しい変更になります。 つまり、すべての更新について、MPT 回線は、変更を加える方法が 1 つしかないことを保証します。 これにより、偶発的または不正な変更が防止され、MPT の整合性と正確性が確保されます。 具体的には、アカウントまたはストレージの更新によって MPT が変更された場合、MPT 回線は、これらの更新が指定されたルールに従って実行されたことを証明する必要があります。 さらに、ルートハッシュがすべての変更の結果を正確に反映していることを示す必要があります。

ケッカク・サーキット

Scroll は、NIST の Keccak 仕様と Keccak チームの仕様に従って、独自のバージョンの Keccak256 を実装しています。

また、Keccak回路は、Keccak256の動作の正しさを証明するために使用されます。 この回路の実装は複雑ですが、これは主に keccak256 アルゴリズム自体が zk に適していないためです。

Tx回線

Tx 回線は、トランザクションの正確性を検証するための制約を提供します。 主に、トランザクションの次の側面がチェックされます。

  1. CallDataLength と累積 CallDataGasCost の正確性: カスタム ゲートを決定し、tx テーブル内の呼び出しデータ バイトの最後の行を見つけます。

  2. TxSignおよびTxHash関連データの正確性:RLPテーブルとKeccakテーブルを検索します。

  3. 「if tx_type is L1Msg, then msg_hash」の正しさを証明します。 RLPテーブルを検索して検証します。

  4. ECDSA を使用して tx 署名を正しく実行し、ECDSA 署名から発信者のアドレスを正しく回復する: sig テーブルを検索して確認します。

  5. tx id、cum_num_txs、および call_data_length の正しい移行動作。

  6. 特定の指標変数のブール値など、いくつかの基本的な制約。

バイトコード回路

EVM回路は、正しいバイトコード情報を含むバイトコード・テーブルを検索する必要があります。 これにより、コントラクトに格納されたバイトが、テーブルから読み込まれたバイトと一致するようになります。 バイトコード回路の目的は、バイトコードテーブルの正確性を強制することです。 これには以下が含まれます。

  1. タグ(タグ)による境界動作に関連する制約:最初と最後の行の制約、タグ==バイトからヘッダーへの変換、およびその逆、ヘッダーからヘッダーへの変換。

  2. コードサイズの制約: バイトコードの最後のバイトのインデックスの制約によるバイトコード長の計算を含む。

  3. コードハッシュの制約:コードハッシュ内のバイトのRLC動作を正しく制約し、Keccakテーブルを検索してコードハッシュを検証します。

  4. PUSH動作の正確性の確認:is_code = push_data_left == 0(ブール値である必要があります)およびpush_tableを検索してPUSH1-PUSH32のプッシュされたデータのサイズを確認します。

  5. バイトコードの各行で正しく伝搬されるようにする。

2. セキュリティ監査

異なるチェーンには独自のカスタム・ビジネス・モジュール関数があり、通常はEVMでプリコンパイルされたコントラクトとオペコードを変更します。 その中でも、Scroll zkEVMはゼロ知識証明に基づく第2層スケーリングソリューションです。 このソリューションは、回路を使用して関連するオペコードを再構築し、実行トレースに基づいて証明を生成します。 この複雑な実装により、監査の難易度が大幅に高まります。 Beosin のセキュリティ専門家による評価の後、zkEVM のセキュリティ監査は主に次の側面に焦点を当てています。

  1. GAS:zkEVM回路の実行トレースのプルーフを生成する際に、トランザクションのガス消費の正しさも検証します。 オペコードの実装回路で制約のない自由変数が頻繁に使用されると、証明生成の失敗やその他の不明なエラーが発生する可能性があります。

  2. メモリの安全性: 一部の zkEVM 回路は、Scroll で使用される KZG コミットメントなど、多項式コミットメントに基づいています。 ただし、多項式計算は自動的に整列しないため、回路に制約がない場合、値の範囲がコンピュータープログラムのバイト範囲と一致しなくなる可能性があります。 場合によっては、受託開発者がガス最適化を有効にすると、データのコンパクトな配置が、Polygon zkEVMのBYTE_C4096定数多項式などのメモリ安全性の問題につながる可能性があります。 多項式では、パラメータ値が最大バイト値範囲の255を超えることができるため、AMMモデルを採用する一部の取引所プラットフォームでは、悪意のあるシーケンサーがパラメータを操作して利益を得る可能性があります。 基本的に、これらのタイプの脆弱性は、回路によって表される数値の妥当性範囲とプログラムの変数値の範囲との間の不整合から発生します。 例としては、Beosinのセキュリティ研究者がSnarkjsライブラリで発見した脆弱性CVE-2023-33252があります。

  3. オペコード・セキュリティ: zkEVM オペコードを実装する場合、特に精度に関して、一般的なセキュリティ上の問題があります。 たとえば、基になる回路で 2 つの数値を比較する場合、プログラム内の比較演算の精度が 1 バイトの場合、回路の制約で値の範囲を指定する必要があります。 そうしないと、回路内の演算の精度がプログラムの精度を超え、誤った結果につながります。

  4. セキュア EIP のサポート: EIP-2 や EIP-155 などのセキュリティに重点を置いた EIP のサポート。

  5. シーケンサーの集中化の問題:現在、Scroll によって生成されるすべての配達確認は、シーケンサーによって生成された実行トレースに依存しています。 Sequencer が悪意のある動作をした場合、zkEVM はユーザー資産のセキュリティを保証できません。

  6. 互換性の問題: zkEVM は実行トレースに基づいて回路プルーフを生成し、コントラクトで検証します。 シーケンサーのマイナーなアップグレードでも、基になる言語レベルで生成される実行トレースに大きな違いが生じる可能性があります。

スクロールの今後の展望

  1. Scrollは現在、Halo2プルーフシステムの2層KZGバージョンを採用しており、GPUハードウェアアクセラレーションを使用してプルーフ生成を高速化しています。 ボトルネックは、現在、監視の生成とデータ レプリケーションに移行しています。 さらに、Rollerの集中化レベルとハードウェア運用コストも、Scrollが多段プルーフシステムの将来の開発のために考慮する必要がある側面です。

  2. EVMの実行トレースは動的に変化するため、回路の制約やスケールはさまざまです。 現在、動的に変化する実行トレースに対応するために、実行トレースの各ステップは最大の回路スケールを満たす必要があり、その結果、追加のメモリが浪費されます。

  3. Scroll's Rollerは現在、ネットワーク取引手数料から利益を得ると予想されています。 しかし、現在のScrollネットワークのユーザー数と取引手数料では、Rollerとシーケンサーの運用コストを賄うことはできません。 今後、Scrollネットワークが、どのように経済的インセンティブを提供し、ユーザーを惹きつけ、安定したネットワーク運用を維持するかは、検討すべき課題です。

現在、Beosin は zk プロジェクトの監査もサポートしています。 zkのハードコアセキュリティ研究については、次の記事を読むことができます: 1. Groth16 Proofのトランザクション展性攻撃 2. Tornado Cashを詳細に調査し、ZKPプロジェクトにおける展性攻撃を明らかにします

Beosinは、世界をリードするブロックチェーンセキュリティ企業として、世界10以上の国と地域に支店を設立しています。 当社のサービスは、プロジェクト立ち上げ前のコードセキュリティ監査、セキュリティリスクの監視、プロジェクト運用中の早期警告と予防、盗まれた仮想通貨の資産回収、KYT/AMLなどの安全なコンプライアンスサービスをカバーしています。 ブロックチェーンセキュリティ製品とサービスのワンストップソリューションを提供します。 現在、世界中の3000社以上のブロックチェーン企業にセキュリティ技術サービスを提供し、3000以上のスマートコントラクトを監査しています。 お気軽にお問い合わせください。

免責事項:

  1. この記事は【ベオシン】からの転載です。 すべての著作権は原作者[Beosin]に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。

スクロールはレイヤ2の波を駆動するか?そして知っておくべきzkEVM回路と監査

中級47.30
この記事では、Scrollのアーキテクチャとテクノロジーを詳細に分析し、読者がScrollの現在のネットワーク状況と将来の開発の方向性を理解するのに役立ちます。 また、Scroll zkEVM の回路と監査についても説明します。
スクロールはレイヤ2の波を駆動するか?そして知っておくべきzkEVM回路と監査

10月10日14:00、イーサリアムレイヤー2ソリューションであるScrollメインネットが最初のブロックを生成し、Scrollのメインネットのローンチに成功しました。 10月25日現在、7600ETH以上がクロスチェーンブリッジを介してScrollネットワークにブリッジされ、24の分散型取引プラットフォームがScrollメインネット上で稼働しており、TVLの合計は約1,000万ドルです。

10月17日、Scrollはオープンソースと分散化へのコミットメントを維持しながら、メインネットの立ち上げを正式に発表しました。 次のフェーズでは、Scrollは分散型のプルーフ・オブ・ステーク・ネットワークとソーターの構築に焦点を当てます。 本稿では、Scrollのアーキテクチャとテクノロジーを詳細に分析し、Scrollの現在のネットワーク状況と今後の開発方向性を皆様に理解していただくために、本稿で紹介します。 また、zkプロジェクトのセキュリティ対策を強化するために、ScrollのzkEVM回路と監査知識についても説明します。

Layer2の波の原動力であるScrollとは?

Scrollは、ゼロ知識証明技術に基づくイーサリアムレイヤー2スケーリングソリューションで、イーサリアムネットワークのトランザクションスループットと速度を向上させることを目的としています。 オプティミスティック ロールアップと比較して、Scroll はゼロ知識証明によってスケーラビリティを実現し、ハードウェア アクセラレーションによってゼロ知識証明の生成と検証を高速化します。 このデバイスは、バイトコード・レベルの EVM 互換性の実現に取り組んでいます。 つまり、開発者はSolidityやイーサリアム関連の開発ツールを直接使用してスマートコントラクトを構築し、変更を加えることなくScrollにデプロイすることができます。

Scrollの公式サイトによると、現在、Scrollチームには10人のコアメンバーがおり、アジア、アメリカ、ヨーロッパに分散しています。 チームメンバーは、zkRollupの開発と業界運営において豊富な経験を持っており、そのほとんどが名門大学を卒業し、博士号を取得しています。

現在、Scrollのエコシステムは非常に豊富で、ウォレット、開発ツール、セキュリティ施設などのインフラストラクチャプロジェクトがあります。 設計、開発、運用、セキュリティ監査まで、ライフサイクル全体を通じてプロジェクトを包括的にサポートすることを目標としています。 現在、Scrollメインネットには180以上のエコシステムプロジェクトがあります。

  1. 財布
    Scrollは現在、Metamask、TrustWallet、MathWallet、TokenPocket、WalletConnect、Binance Chain Wallet、SafePal Walletなど、ほぼすべての主流ウォレットをサポートしています。 さらに、Scrollエコシステムウォレットには、OKX Wallet、Versa Walletなども含まれています。

  2. クロスチェーンブリッジ
    Scrollの公式クロスチェーンインフラストラクチャには、Celer Network、Stargate、Orbiter Finance、Hop Protocol、LI.FI、Connextなどが含まれます。 さらに、クロスチェーン流動性プロトコルSynapse Protocol、レイヤー2クロスチェーンブリッジに焦点を当てたOwlto Finance、イーサリアムレイヤー1およびレイヤー2クロスチェーンブリッジPheasant Network、Symbiosis、Catalystなども含まれています。

  3. DeFi(分散型金融)
    Scrollエコシステムには、レンディングプロトコルのAave、マルチチェーンDEXアグリゲーターのDODO、DEX SushiSwap、DEXアグリゲーターのOpenOcean、マルチチェーンDeFiプロトコルのiZUMi Finance、DEX Syncswap、イールドプロトコルのPendle Finance、レンディングプロトコルのdForce、レバレッジ取引アグリゲーターのMUX Protocolなど、いくつかの確立されたDeFiプロジェクトがあります。 また、GMXのように、広く採用されていない革新的なプロジェクトもあります。

  4. 余人
    NFT、ゲーム、ソーシャルの面では、NFTScan、Web3タスクプラットフォームのQuestN、TaskOn、電子プロトコル署名プラットフォームのEthSign、Galaxy Blitz、OmniKingdomsなどのオンラインブロックチェーンゲームなど、Scrollエコシステムの他のプロジェクトがあります。

スクロールテクノロジーが他のテクノロジーと異なる点は何ですか?

1. 全体的なアーキテクチャ

Scroll のアーキテクチャは、次の 3 つのコンポーネントで構成されています。

スクロールノード:ユーザートランザクションに基づいてScrollネットワーク上にブロックを生成し、これらのトランザクションをイーサリアムベースレイヤーに送信し、イーサリアムとスクロール間のメッセージの受け渡しを処理します。

ローラー:ローラーは、スマートコントラクトをzkEVM回路に変換し、トランザクションの正しさを証明するための証明を生成します。 スクロールネットワークには複数のローラーがあり、トランザクションを並行して処理し、ハードウェアを介してプルーフ生成を高速化します。 Scroll は、EVM バイトコード処理の正確性を直接証明することにより、EVM とのバイトコード・レベルの互換性を実現します。

ロールアップおよびブリッジコントラクト:これらのコントラクトは、Scrollトランザクションにデータの可用性を提供し、zkEVMによって生成された有効性の証明を検証します。 Scrollは、RollupとBridgeのコントラクトを通じてイーサリアムのベースレイヤーに接続されていると言えます。 これらのコントラクトを通じて、ユーザーはイーサリアムとスクロールの間で任意のメッセージを交換し、ゲートウェイコントラクトの助けを借りてERC-20資産をどちらの方向にも転送することができます。


出典: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

スクロールは、イーサリアムブロックチェーン上にデプロイされたメインコントラクトです。

ゲートウェイ ルーティング プロキシ コントラクト (クロスチェーン操作でのトークンの正しいマッピングの保証):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

メッセージ プロキシ コントラクト(L1 と L2 間のメッセージの送信):0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

これらの契約は、プロキシ管理者と所有者が変更できることに注意してください。 さらに、Scrollには、Scroll内の特定のアドレスのガス料金を調整できるホワイトリスト機能が組み込まれています。 現在、スクロールシーケンサーは集中型で動作しており、スクロールネットワーク上のメッセージとトランザクションのレビューが可能です。 さらに、メッセージキュー内のメッセージをバイパスして、特定のメッセージを直接確認する可能性があります。

2. zkEVMワークフローのスクロール

Scrollはブロックを生成した後、コーディネーターと複数の証明者(ローラー)を通過して、集約された証明を生成します。 これらの証明は、検証のためにイーサリアムロールアップコントラクトに提出されます。 詳細なプロセスは次のとおりです。

1、シーケンサーは新しいトランザクションを受信します。 仮想マシンは、各トランザクションに関連付けられたバイトコードを読み取り、実行トレースを生成してコーディネーターに送信します。 同時に、シーケンサーはトランザクション データをロールアップ コントラクトに送信します。

2、ローラーは、コーディネーターから受け取った実行トレースをzkEVM回路に変換します。 実行トレースの各ステップは、zkEVM 回路に対応しています。 zk に対応していない関数 (hash や Keccak など) の場合、Scroll はルックアップ テーブルを構築して、実行トレース内のこれらの関数の入力と出力をルックアップ テーブルにマップします。 ルックアップテーブルの正確性を検証するために、追加の回線が使用されます。 次に、ローラーはこれらのzkEVM回路のプルーフを生成します。

3、校正刷りを生成した後、ローラーは校正刷りをコーディネーターに送り返します。 数ブロックごとに、コーディネーターは集計タスクをローラーにランダムに割り当てます。 割り当てられたローラーは、複数のブロックのプルーフを1つのプルーフに集約します。

4、最後に、コーディネーターは集約された証明をロールアップ契約に提出します。 ロールアップ コントラクトは、この証明を使用して、以前に送信された状態とトランザクション データの正確性を検証し、それによってブロックの正確性を確認します。

zkEVM 回路のスクロールと監査

1.メイン回路

zkEVMは複数の回路で構成されており、それぞれがEVM(イーサリアム仮想マシン)の特定の側面を検証する役割を担っています。 これらの回路は、最終的に結合または集約されて、トランザクション実行の証明が生成されます。 次の図は、これらの回線とテーブルの関係を示しています。

ECDSA回線やオペコード関連のサブ回路など、回線の組み合わせに影響を与えるような方法で他のテーブルや回線と相互作用しない小さなサブサーキットがあります。 これらのサブサーキットは、わかりやすくするために図から省略されています。

EVM回路

イーサリアム仮想マシン(EVM)は、イーサリアムプロトコル内の有効な状態遷移のルールを確立するステートマシンです。 これらの遷移を実現するための命令(オペコード)を実行し、実行トレースを生成します。 この評価基板 (EVM) 回路の目的は、実行トレースを表現し、ゼロ知識証明システムを使用して検証できる制約システムを作成することです。

EVM回路の高レベルの設計は、ゴーイーサリアムのように、EVM自体の設計にいくらか似ています。 ゴーイーサリアムでは、インタプリタは実行トレース上のすべての命令オペコードを反復処理します。 インタプリタは、命令ごとに、ガス、スタック、メモリなどの関連するコンテキスト情報をチェックし、オペコードをJumpTableに送信し、オペコードを実行するための詳細な命令を提供します。

同様に、EVM回路では、Scrollは実行トレースに基づいて実行ステップを構築し、オペコードと実行コンテキストの証明を提供します。 実行ステップごとに、コンテキスト情報をチェックするために一連の制約が適用されます。 オペコードごとに、その動作を検証するために一連の制約が適用されます。 実行トレース内では、同じオペコードに同じ制約が必要です。 Scrollは、セレクターを使用して、実行トレースで同じオペコードを持つすべてのステップを「開き」、バックエンドプルーフシステムを使用してそれらの動作を証明します。

状態回路

実行時には、EVM のすべての読み出し動作と書き込み動作がrw_tableに記録され、rw_counter変数順に並べられます。 状態回路の目的は、rw_tableの正確な生成を実証することです。

MPT回路

マークル・パトリシア・ツリー(MPT)は、イーサリアムのストレージ層で使用される重要なデータ構造です。 Scrollのzkevm-Circuitsでは、MPTはzkTrieに変更され、基本的にはスパースバイナリのMerkle Patricia Trieです。 zkevm-Circuitsでは、ScrollはMPTテーブルを使用して、MPT操作の状態遷移を段階的に追跡します。 MPT テーブルのレイアウトは次のとおりです。

MPT回路の目的は、上記のMPTテーブルの精度を検証することです。 これにより、MPT テーブルに記録された各更新が正しい変更になります。 つまり、すべての更新について、MPT 回線は、変更を加える方法が 1 つしかないことを保証します。 これにより、偶発的または不正な変更が防止され、MPT の整合性と正確性が確保されます。 具体的には、アカウントまたはストレージの更新によって MPT が変更された場合、MPT 回線は、これらの更新が指定されたルールに従って実行されたことを証明する必要があります。 さらに、ルートハッシュがすべての変更の結果を正確に反映していることを示す必要があります。

ケッカク・サーキット

Scroll は、NIST の Keccak 仕様と Keccak チームの仕様に従って、独自のバージョンの Keccak256 を実装しています。

また、Keccak回路は、Keccak256の動作の正しさを証明するために使用されます。 この回路の実装は複雑ですが、これは主に keccak256 アルゴリズム自体が zk に適していないためです。

Tx回線

Tx 回線は、トランザクションの正確性を検証するための制約を提供します。 主に、トランザクションの次の側面がチェックされます。

  1. CallDataLength と累積 CallDataGasCost の正確性: カスタム ゲートを決定し、tx テーブル内の呼び出しデータ バイトの最後の行を見つけます。

  2. TxSignおよびTxHash関連データの正確性:RLPテーブルとKeccakテーブルを検索します。

  3. 「if tx_type is L1Msg, then msg_hash」の正しさを証明します。 RLPテーブルを検索して検証します。

  4. ECDSA を使用して tx 署名を正しく実行し、ECDSA 署名から発信者のアドレスを正しく回復する: sig テーブルを検索して確認します。

  5. tx id、cum_num_txs、および call_data_length の正しい移行動作。

  6. 特定の指標変数のブール値など、いくつかの基本的な制約。

バイトコード回路

EVM回路は、正しいバイトコード情報を含むバイトコード・テーブルを検索する必要があります。 これにより、コントラクトに格納されたバイトが、テーブルから読み込まれたバイトと一致するようになります。 バイトコード回路の目的は、バイトコードテーブルの正確性を強制することです。 これには以下が含まれます。

  1. タグ(タグ)による境界動作に関連する制約:最初と最後の行の制約、タグ==バイトからヘッダーへの変換、およびその逆、ヘッダーからヘッダーへの変換。

  2. コードサイズの制約: バイトコードの最後のバイトのインデックスの制約によるバイトコード長の計算を含む。

  3. コードハッシュの制約:コードハッシュ内のバイトのRLC動作を正しく制約し、Keccakテーブルを検索してコードハッシュを検証します。

  4. PUSH動作の正確性の確認:is_code = push_data_left == 0(ブール値である必要があります)およびpush_tableを検索してPUSH1-PUSH32のプッシュされたデータのサイズを確認します。

  5. バイトコードの各行で正しく伝搬されるようにする。

2. セキュリティ監査

異なるチェーンには独自のカスタム・ビジネス・モジュール関数があり、通常はEVMでプリコンパイルされたコントラクトとオペコードを変更します。 その中でも、Scroll zkEVMはゼロ知識証明に基づく第2層スケーリングソリューションです。 このソリューションは、回路を使用して関連するオペコードを再構築し、実行トレースに基づいて証明を生成します。 この複雑な実装により、監査の難易度が大幅に高まります。 Beosin のセキュリティ専門家による評価の後、zkEVM のセキュリティ監査は主に次の側面に焦点を当てています。

  1. GAS:zkEVM回路の実行トレースのプルーフを生成する際に、トランザクションのガス消費の正しさも検証します。 オペコードの実装回路で制約のない自由変数が頻繁に使用されると、証明生成の失敗やその他の不明なエラーが発生する可能性があります。

  2. メモリの安全性: 一部の zkEVM 回路は、Scroll で使用される KZG コミットメントなど、多項式コミットメントに基づいています。 ただし、多項式計算は自動的に整列しないため、回路に制約がない場合、値の範囲がコンピュータープログラムのバイト範囲と一致しなくなる可能性があります。 場合によっては、受託開発者がガス最適化を有効にすると、データのコンパクトな配置が、Polygon zkEVMのBYTE_C4096定数多項式などのメモリ安全性の問題につながる可能性があります。 多項式では、パラメータ値が最大バイト値範囲の255を超えることができるため、AMMモデルを採用する一部の取引所プラットフォームでは、悪意のあるシーケンサーがパラメータを操作して利益を得る可能性があります。 基本的に、これらのタイプの脆弱性は、回路によって表される数値の妥当性範囲とプログラムの変数値の範囲との間の不整合から発生します。 例としては、Beosinのセキュリティ研究者がSnarkjsライブラリで発見した脆弱性CVE-2023-33252があります。

  3. オペコード・セキュリティ: zkEVM オペコードを実装する場合、特に精度に関して、一般的なセキュリティ上の問題があります。 たとえば、基になる回路で 2 つの数値を比較する場合、プログラム内の比較演算の精度が 1 バイトの場合、回路の制約で値の範囲を指定する必要があります。 そうしないと、回路内の演算の精度がプログラムの精度を超え、誤った結果につながります。

  4. セキュア EIP のサポート: EIP-2 や EIP-155 などのセキュリティに重点を置いた EIP のサポート。

  5. シーケンサーの集中化の問題:現在、Scroll によって生成されるすべての配達確認は、シーケンサーによって生成された実行トレースに依存しています。 Sequencer が悪意のある動作をした場合、zkEVM はユーザー資産のセキュリティを保証できません。

  6. 互換性の問題: zkEVM は実行トレースに基づいて回路プルーフを生成し、コントラクトで検証します。 シーケンサーのマイナーなアップグレードでも、基になる言語レベルで生成される実行トレースに大きな違いが生じる可能性があります。

スクロールの今後の展望

  1. Scrollは現在、Halo2プルーフシステムの2層KZGバージョンを採用しており、GPUハードウェアアクセラレーションを使用してプルーフ生成を高速化しています。 ボトルネックは、現在、監視の生成とデータ レプリケーションに移行しています。 さらに、Rollerの集中化レベルとハードウェア運用コストも、Scrollが多段プルーフシステムの将来の開発のために考慮する必要がある側面です。

  2. EVMの実行トレースは動的に変化するため、回路の制約やスケールはさまざまです。 現在、動的に変化する実行トレースに対応するために、実行トレースの各ステップは最大の回路スケールを満たす必要があり、その結果、追加のメモリが浪費されます。

  3. Scroll's Rollerは現在、ネットワーク取引手数料から利益を得ると予想されています。 しかし、現在のScrollネットワークのユーザー数と取引手数料では、Rollerとシーケンサーの運用コストを賄うことはできません。 今後、Scrollネットワークが、どのように経済的インセンティブを提供し、ユーザーを惹きつけ、安定したネットワーク運用を維持するかは、検討すべき課題です。

現在、Beosin は zk プロジェクトの監査もサポートしています。 zkのハードコアセキュリティ研究については、次の記事を読むことができます: 1. Groth16 Proofのトランザクション展性攻撃 2. Tornado Cashを詳細に調査し、ZKPプロジェクトにおける展性攻撃を明らかにします

Beosinは、世界をリードするブロックチェーンセキュリティ企業として、世界10以上の国と地域に支店を設立しています。 当社のサービスは、プロジェクト立ち上げ前のコードセキュリティ監査、セキュリティリスクの監視、プロジェクト運用中の早期警告と予防、盗まれた仮想通貨の資産回収、KYT/AMLなどの安全なコンプライアンスサービスをカバーしています。 ブロックチェーンセキュリティ製品とサービスのワンストップソリューションを提供します。 現在、世界中の3000社以上のブロックチェーン企業にセキュリティ技術サービスを提供し、3000以上のスマートコントラクトを監査しています。 お気軽にお問い合わせください。

免責事項:

  1. この記事は【ベオシン】からの転載です。 すべての著作権は原作者[Beosin]に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!