Scrollの共同創業者張烨:Scrollのデザインアーキテクチャと課題は何ですか?
最近、Scrollの共同創設者である張烨氏がスタンフォードのブロックチェーンセミナーに招待され、Scrollのアーキテクチャ設計と課題について共有しました。講演の前半では、Scrollの全体的なアーキテクチャを紹介し、いくつかの特別な設計選択に重点を置きました。
後半では、ゼロ知識EVM(zkEVM)をゼロから構築する方法を説明し、具体的な例を用いてそのプロセスを示しました。最後に、Scrollが暗号学とプロトコル設計の分野で直面しているさまざまな研究課題について簡単に議論しました。
背景と初志
ScrollはイーサリアムのLayer 2スケーリングソリューションです。イーサリアムとの最大限の互換性を確保するために、ScrollはEVM計算の有効性を証明できるバイトコードレベルで互換性のある「zkEVM」を構築しています。Scrollの設計の初志は、開発者に優しく、最大限のコンポーザビリティを実現することです。しかし、zkEVMを構築する課題は、構築の難易度とゼロ知識証明の生成コストが非常に高いことです。幸い、近年のいくつかの技術的なブレークスルーにより、これが徐々に実現可能になっています。たとえば、多項式コミットメントは任意の次数を証明でき、ルックアップテーブルはストレージ読み取り制約を実現し、ハードウェアアクセラレーションは証明生成を加速し、再帰的証明は証明をさらに圧縮し、コストを削減します。
具体的な詳細については、Scrollブログシリーズ#1:イーサリアムネイティブzkEVMロールアップの紹介を参照してください。




Scrollアーキテクチャ
Scrollノードは、アプリケーションとユーザーがScrollと対話する主要な手段です。これは、シーケンサー(Sequencer)、コーディネーター(Coordinator)、リレイヤー(Relayer)の3つのモジュールで構成されています。
シーケンサーはJSON-RPCインターフェースを提供し、L2トランザクションを受信します。数秒ごとに、L2のメモリプールからトランザクションのバッチを取得し、それを実行して新しいL2ブロックと新しい状態ルートを生成します。Scrollのシーケンサーの実装はGo-Ethereum(Geth)に基づいており、最も主流なイーサリアムノードの実装の1つです。Gethをフォークすることで、最適な互換性を実現し、時間の試練に耐えたセキュリティを継承できます。
新しいブロックが生成されると、コーディネーターは通知を受け取り、シーケンサーからこのブロックの実行トレースを受け取ります。次に、実行トレースをランダムに選ばれたロールアッププールからのロールアップに配布して証明を生成します。
リレイヤーは、イーサリアムとScrollに同時にデプロイされたロールアップおよびブリッジコントラクトを監視します。主な責任は2つあります。まず、ロールアップコントラクトを監視してL2ブロックの状態を追跡し、データの可用性と有効性の証明を含みます。次に、イーサリアムとScrollに同時にデプロイされたブリッジコントラクトの入金および出金イベントを監視し、メッセージを1層から別の層に中継します。
各L2ブロックは、最終確認されるまで以下の3つの段階を経ます。
Pre-committedは、ブロックがシーケンサーによって提案され、ロールアップに送信されたことを示します。Pre-committedブロックはまだScroll L2の正式な部分ではなく、イーサリアムの基盤層に公開されていないため、シーケンサーを信頼するユーザーは期待通りに次のステップを進めることができます。現在、Pre-committed段階は1〜2秒で済むと予想されています。
Committedは、そのブロックのトランザクションデータがイーサリアムのロールアップコントラクトに公開されたことを示します。これにより、ブロックデータの可用性が保証されますが、正しく実行されたことを証明することはできません。現在、Committed段階は数分かかると予想されています。
Finalizedは、イーサリアムチェーン上の有効性証明を検証することによって、このブロック内のトランザクションの正確性が確認されたことを示します。最終確認されたブロックは、Scroll L2チェーンの正式な部分と見なされます。現在、Finalized段階は10分以上かかると予想されています。
Pre-Alphaテストネットの段階では、証明者の計算能力が不足しているため、全体のプロセスの時間が予想以上に長くなります。
具体的な詳細については、Scrollブログシリーズ#6:Scrollのアーキテクチャの概要を参照してください。









zkEVMの本質
zkEVMの本質は、EVM仮想マシン計算によって生成された実行トレースに対して証明を生成することです。ScrollのzkEVM設計では、第一層はEVMのロジックを直接証明することを含み、EVM回路、RAM回路、ストレージ回路、ECDSA署名を検証するためのSignature回路などが含まれます。第二層は第一層の証明の集約証明を行います。動的な実行トレースを考慮して、証明システムのフロントエンド部分には、現在最新のPlonkishプロトコルを採用しています。標準のPlonkが前後の制約をPermutationで関連付けるのに対し、Plonkishはより低次のCustom gateを使用し、各ステップの制約を柔軟に設定できます。
ハードウェアアクセラレーションの面では、Scrollは独自のPipeZK加速ソリューションを持っています。第一層のEVM回路に対して、加速されたGPUは9倍の速度を向上させ、30秒以内に証明を完了できます。第二層の集約回路に対して、加速されたGPUは15倍の速度を向上させ、約2分半で証明を完了できます。現在のPre-Alphaテストネットでは約10人の証明者しかいないため、実際の速度は実験データよりも若干遅くなる可能性があります。
具体的な詳細については、Scroll Devcon 6シリーズ#1:zk-Rollupsの証明システム選択を参照してください。




興味深い研究方向(プロトコルと暗号学)
現在、Scrollの研究チームはプロトコル層と暗号学の方向で興味深い研究探索を行っています。


研究の第1の方向は、証明者とシーケンサーの非中央集権化です。Scrollが提案した最初のソリューションは、シーケンサーと証明者のタスクを1つのノードに委任し、トランザクションの処理と証明の生成を同時に行うことです。代償として、ノードの負担が増加し、ある程度の中央集権が生じる可能性があります。第2のソリューションは、シーケンサーのノードが合意に基づいてブロックを生成し、証明者のノードが自由に証明を提出できるようにすることです。代償として、システムは最も速い検証者に依存し、他の計算能力が不足している証明者は証明をさらに提出するインセンティブがなくなり、システムから退出することになります。証明システムは最も速い検証者に拘束されることになります。第2のソリューションに対して、Scrollが提案した解決策は、時間ウィンドウを設定し、規定の時間内に証明を提出した者に証明報酬を与えることです。


研究の第2の方向は、L3の存在意義です。L3は最初にStarkNetによって提案されましたが、データの可用性がL1に置かれる場合、あまりコストを節約できないという点で議論があります。データの可用性がL1に置かれない場合、L2で類似の機能を実現できる可能性があります。L3は、独自のシーケンサー、カスタマイズされた実行環境、またはより低価格の入出金手数料、あるいはL3間で必要なコンポーザビリティなど、アプリケーションのカスタムニーズに適している可能性があります。L3に関するさらなる議論については、Vitalik: どのようなLayer 3が意味があるのか?を参照してください。


研究の第3の方向は、L2層間の流動性配分です。たとえば、Uniswapは異なるL2層にそれぞれ流動性プールをデプロイする必要があります。異なるL2層間の流動性プールを接続する方法は、ユーザー体験を大幅に向上させるでしょう。

研究の第4の方向は、zkEVMのリソース価格設定問題です。計算コストは主に検証と証明トランザクションから成り、ストレージコストは主に過去のトランザクションとcalldataのデータストレージから成ります。理想的な状態は、現在のイーサリアムメインネットのリソース価格設定スキームを維持することですが、Keccakなどのzkに不利な計算によるコスト増加のため、zkEVMのリソース価格設定スキームを適切に調整する必要があります。

その他の研究方向には、ゼロ知識証明における回路のランダム性、算数化が含まれます。Scrollの証明システムは2層に分かれているため、証明者のハードウェア加速アルゴリズムも2層設計に基づいて展開されています。Scrollは現在、第一層と第二層の証明システムの両方でHalo2プロトコルを選択していますが、異なる証明システム間のコンポーザビリティも積極的に探求しています。
もちろん、現在のzkシステムはまだ開発中であり、監査や実践的な検証を受けていないため、予見可能な長期にわたって、これらのコードが完璧であることを保証することはできず、コードレベルでは依然として多くの監査作業が必要です。具体的には、Scroll Rollup Day#1: Vitalikが多重証明を用いてロールアップの安全性を強化する方法を紹介を参照してください。





























