著者: Link、Geek Web3はじめに: Solana が徐々に衰退し、OP による Token がリリースされて以来、Layer2 と Rollup は無数の Web3 実践者にとっての新たな避難所となったようです。弱気相場が広がり続け、FTXはゲームから外れ、マルチコインは大きな損失を被り、イーサリアムの競合他社はWeb3段階から徐々に姿を消し、ETHと競争する自信を失い続けている。ますます多くの人々が Rollup を新たな物語の核とみなすようになり、雨後の筍のように L2 上でプロジェクトがどんどん生まれました。しかし、このすべては「偽りの繁栄」なのか、それとも「いつ崩壊するか分からないバブル」なのか?ロールアップと L2 は本当に多くの人が主張するほど優れているのでしょうか?本当に人々が思っているほど安全なのでしょうか?多くの OP ロールアップには不正行為の証拠がないことは言うまでもありませんが、** ロールアップのセキュリティ リスクは何ですか? **L2BEAT によって最近リリースされた「イーサリアム L2 のアップグレード可能性」に触発されたこの記事は、ロールアップ アップグレードの背後にあるマルチ署名と委員会の信頼リスク (ロールアップ コントラクトを即座にアップグレードし、ユーザー資産を奪う) とロールアップに関する以前の常套句に焦点を当てています。最近のマルチチェーンを思い出させながら、L2 が多くの人が考えるほど「美しく」ない理由について話します。### ロールアップ原則の簡単な説明Rollup の動作原理の簡単な説明:**イーサリアム ロールアップ = レイヤ 1 + レイヤ 2 ネットワーク独自のノード上の一連のコントラクト。 **レイヤ 2 ネットワーク ノードのグループはいくつかの種類の役割に分類できますが、その中で最も重要なものはシーケンサ (シーケンサ) です。 Layer2 で発生したトランザクションリクエストを受け取り、その実行順序を決定し、一連のトランザクションをバッチ (Batch) にパッケージ化し、Layer1 のロールアップ プロジェクトのコントラクト (以下、まとめてロールアップ コントラクトと呼びます) に送信します。**Layer2** のフルノードは、シーケンサーからトランザクションシーケンスを直接取得することも、シーケンサーから Layer1 に送信されたトランザクションバッチ (Batch) を読み込むこともできますが、後者の方が前者よりも **最終確実性** (不変性) が高くなります。通常、シーケンサによってトランザクションのバッチが Layer1 に送信されるとき、トランザクションのバッチの順序は変更できません (イーサリアムでブロックのロールバックがない限り、Rollup のトランザクションの順序は変更されません)。トランザクションの実行により、トランザクションの順序に加えてブロックチェーン台帳の状態が変更されるため、レイヤー 2 フル ノードは、一貫性を確保するために台帳の状態をシーケンサーと同期する必要もあります。したがって、シーケンサはトランザクション バッチを Layer1 の Rollup コントラクトに送信するだけでなく、トランザクション実行後の状態更新結果 (Stateroot/State diff) も Layer1 に送信する必要があります。**L1 (イーサリアム) が実際に L2 ノードの掲示板として機能する**ことを理解するのは難しくありません。これは、L2 自身のネットワークよりもはるかに分散化され、トラストレスで、より安全です。 L2 フルノードの場合、L1 のロールアップ トランザクション シーケンス + 初期ステートルートを取得している限り、L2 ブロックチェーン台帳を復元し、最新のステートルートを計算できます。 L2 フル ノード自体によって計算された Stateroot が、シーケンサーによって L1 に公開された Stateroot と一致しない場合、シーケンサーに **不正**があることを意味します。最も直観的な仮説ケースは、**L2 のシーケンサーがユーザー資産を盗む可能性がある**です。たとえば、発生すべきでないトランザクションを偽造することはできますか (追記: L2 ユーザーのトークンをシーケンサー オペレーターのアドレスに転送し、これらのトークンを L1 に転送します)。この種の質問は、要約すると次のようになります。シーケンサーが間違ったトランザクション データまたは間違った Stateroot を発行した後はどうすればよいですか? **シーケンサーの不正リスクについては、ロールアップの種類ごとに対策が異なります。オプティミスティック ロールアップ (Optimistic Rollup) を使用すると、L2 フル ノードが不正証明 (Fraud Proof) を提供し、L1 のシーケンサーによってリリースされたデータにエラーがあることを証明できます。たとえば、Arbitrum はノード ホワイトリストを設定し、ホワイトリスト上の L2 ノードが不正証明を発行できるようにしています。さらに、**ほとんどの取引所とプライベート クロスチェーン ブリッジ プロジェクト関係者が L2 フル ノードを実行している**ことを考慮すると、エラーはすぐに見つかり、コインを盗むほとんどのロールアップ シーケンサーの成功率は基本的に 0 です (最終的に換金する必要があるため、まだ取引所で完了する必要があります。そうでない場合は、盗まれたコインを L1 に転送してから別の方法を見つけることができます)。(図の Aggregator は実際にはシーケンサーです)しかし、不正証拠のないオプティミズムの場合、シーケンサーはロールアップ独自のクロスチェーンブリッジコントラクトを通じてコインを盗むことができます。たとえば、シーケンサーのオペレーターはトランザクション命令を偽造し、L2 にある他人の資産を自分のアドレスに転送し、その後、Rollup に組み込まれたブリッジ コントラクトを通じて盗んだコインを L1 に転送することができます。不正行為の証拠がないため、OP のフル ノードは間違ったトランザクションに異議を唱えることができません。したがって、理論上、**OP のシーケンサーは L2 内のユーザーの資産を盗むことができます** (本当にそうしたい限り)。この種の問題の解決策は、**「社会的合意」** (コミュニティメンバーやソーシャルメディアなどの世論によって監視される)、または **OP の公式信用承認に依存することです。 **興味深いことに、取引所は最近、Arbitrum と Optimism のユーザーがコインを取引所に転送するまでの遅延を短縮しました (100 L2 ブロックから 1 L2 ブロックに)。これは実際には、ARB と OP のシーケンサーが悪さをしないことを信頼するためです** (デフォルトでは、これらは公式の承認を得た集中サーバーです)**。楽観的なロールアップとは異なり、L2 フル ノードに依存することに加えて、ZK ロールアップは Validity Proof (ZK Proof と混同されることがよくあります) を通じてシーケンサー詐欺の問題を解決します。 ZK Rollup ネットワークには Prover と呼ばれるノードがあり、シーケンサーによって発行されたトランザクション バッチの有効性証明を生成するように設計されています。同時に、L1上には証明書の有効性を特別に検証するコントラクト(一般にVerifierと呼ばれます)が存在し、トランザクションバッチとStateroot/State diffに対応する証明書がVerifierコントラクトの検証を通過する限り、ファイナライズ(Finalized)されます。 ZKロールアップの公式ブリッジは、有効性証明書によって検証された出金トランザクションのみをリリースします。これは明らかにOptimismよりもはるかに信頼性があります。理論的には、OP Rollup のセキュリティは L2 フル ノード (不正証明を発行できる少なくとも 1 つの正直なノード) によって保証されます。 ZK Rollup のセキュリティは、L1 上の Verifier コントラクトによって保証されます (トランザクションは最終的に L1 ノードによって確認されます)。表面的には、それらはすべて「L1のセキュリティを継承」することができ(トランザクションの最終確認/決済を完了するためにL1の助けを借りて)、イーサリアムマキシマリストはそれを「L1のセキュリティと同等」(L1のトランザクション結果のファイナリティと一致する)とさえ呼んでいますが、実際の状況はそうではないか、あるいはそれに程遠いものです。### これらの「決まり文句」のポイントまず第一に、ZK Rollup の **有効性証明の生成速度は非常に遅い**。シーケンサーは 1 秒間に数千のトランザクションを実行できますが、これらの数千のトランザクションの証明を生成するには長くても数時間かかる場合があります。しかし、この問題も解決するのは簡単で、主流の ZKR は基本的に Proof 生成タスクを分割し、それを別の Prover ノードに送信して並列処理することで、Proof 生成の速度を大幅に向上させます。次に、**L1** にデータを公開する L2 ノードの遅延を考慮する必要があります。シーケンサーまたは証明者が L1 にデータを送信するたびに、固定コストが発生するためです (出荷ごとにコンテナが消費されるなど)。 L1 にデータを頻繁に公開するのは費用対効果が低く、損失さえも発生します。そのため、シーケンサーと証明者は、L1 にデータを公開する頻度を最小限に抑え、大量のデータを一度にパッケージ化してリリースします。つまり、ユーザーの数が不十分で、開始されたトランザクションの数が不十分な場合、シーケンサーは L1 へのデータのリリースを遅らせます。たとえば、昨年ユーザーがほとんどいなかったとき、Optimism は 30 分ごとにトランザクション バッチを L1 に送信するだけでした。現在ではユーザー数が増加したため、この問題は実質的に解決されました。 OP とは異なり、Starknet はデータコストを削減するために状態の差分リリースの頻度を減らす方法を採用しており、これにより Starknet のトランザクションの最終確認の遅延が 7 ~ 8 時間に延長されました。さらに、ほとんどの ZK ロールアップは、コストをさらに削減するために、「多くのプルーフを集約して一度に L1 に送信」することがよくあります。つまり、Prover は Proof を生成した後すぐに L1 に送信するのではなく、複数の Proof が生成されるのを待ってそれらを集約してから、L1 の Verifier コントラクトに送信します。 (実際、プルーフを集約するプロセスは、複数のプルーフを検証することによって生成された計算ステップを含めるために 1 つのプルーフを使用することです)この結果、Proof リリースの頻度がさらに減り、トランザクションの開始から最終確認までの遅延がさらに長くなります。ブロック エクスプローラーによると、**Polygon ZKEVM のトランザクション確認の遅延は約 30 ~ 50 分、Starknet と Zksync Era では 7 時間以上です。 **明らかにこれは「L1の安全性を部分的に引き継いでいる」だけであり、イーサリアム支持者が言う「L1と同等の安全性」とは程遠いものです。もちろん、上記の問題はいずれも技術の進歩によって解決可能であり、近い将来実現されるでしょう。たとえば、多くのプロジェクト関係者は、有効性証明の生成時間を短縮するために高性能ハードウェアを開発しています。オプティミズムも不正防止システムを間もなくリリースすると約束しています。イーサリアムのダンクシャーディング ソリューションは、ロールアップのデータ コストを数十倍、あるいはそれ以上削減し、上記の問題を効果的に解決できます。### 「人間の支配」問題の解決は困難Defiなどのアプリケーションプロジェクトと同様に、ロールアップネットワークの運用はL1上の関連コントラクトに依存しており、これらのコントラクトは「アップグレード可能」です。これは、一部のコードを置き換えることができ(ほとんどのロールアップはプロキシコントラクトを使用します)、マルチシグまたはセキュリティ委員会の承認の下ですぐに実行できることを意味します。まず結論からお話します。 **Rollup は、数人で管理されるマルチ署名またはセキュリティ委員会を通じて、L1 上の契約コードを迅速に変更し、ユーザーの資産を盗むことができます。 **まず、「なぜロールアップ契約をアップグレードする必要があるのか」と「どのようにアップグレードするのか」です。イーサリアム上のコントラクトコードはデプロイ後に変更することはできませんが、Rollup は開発過程で必然的にさまざまなバグが発生し、誤った結果につながる可能性があります。同時に、Rollup は製品のイテレーションも頻繁に行われ、新しい機能を頻繁に追加する必要があります。さらに極端な場合には、Rollup コントラクトを攻撃するハッカーが存在する可能性があるため、Rollup コントラクトはアップグレード可能である必要があり、これは代理契約を通じて実現されることがよくあります。プロキシコントラクトとは、実はイーサリアムのコントラクト開発でよく使われる手法で、コントラクトのデータをビジネスロジックから分離して別のコントラクトに格納するというものです。データ (状態変数) はプロキシ コントラクトに格納され、ビジネス ロジック (関数) はロジック コントラクトに格納されます。プロキシ コントラクト (Proxy) は、関数の実行処理を delegatecall を通じてロジック コントラクト (Implementation) に委託し、最終結果を呼び出し元 (Caller) に返します。プロキシ モードでコントラクトをアップグレードするには、プロキシ コントラクトが新しいロジック コントラクトを指すようにするだけです (プロキシ コントラクトに格納されているロジック コントラクトのアドレスを書き換えます)。 **ほとんどのロールアップ プロジェクトでは、この契約アップグレード方法が採用されていますが、これは単純かつ失礼とも言えます。 ****Rollup のコントラクトをアップグレードできるということが実際には大きな衝撃であることは想像に難くありません**。アップグレードされたコントラクトに、Rollup に組み込まれている Bridge コントラクトの引き出し条件やリリース条件を変更したり、正当性を証明するために Verifier コントラクトの有効性を判断する条件を変更したりするなどの悪意のあるコードが含まれている場合、シーケンサーはコインを盗むことができます (原理は前述しました)。しかし問題は、ロールアップ契約をアップグレードできないことです。その理由は非常に明白です。結局のところ、ロールアップの大多数は、DAO ガバナンス、セキュリティ委員会、またはマルチ署名承認を通じてロールアップ コントラクトをアップグレードするかどうかを決定します。さらに、タイム ロック Timelock は、契約アップグレードの遅延ウィンドウ期間を設定するために使用されます。ほとんどの DAO 提案には自動実行プロセス (オンチェーン コントラクトを通じて実装) があることを考慮すると、コントラクトをアップグレードする場合でも、最初に十分な投票を取得する必要があり、その後コントラクトのアップグレード操作は、タイムロックで指定された遅延 (多くの場合、数日) が経過した後にのみ実行されます。誰かが悪意のある契約のアップグレードに従事したい場合、ガバナンス攻撃(Tornado Cashで発生したガバナンス攻撃など)を通じてDAOガバナンスを克服する必要がありますが、そのコストは非常に高く、まず十分なトークンを取得する必要があり、通常の状況では成功しません。たとえガバナンス攻撃が成功したとしても、タイムロックにより、ユーザーはL2から資産を引き出すのに十分な時間があり、**ロールアップ担当者は緊急措置を講じるのに十分な時間があります。 **タイムロックは、悪意のある契約のアップグレードに対する魔法の武器のようです。しかし問題は、いわゆる**「ロールアップ担当者が講じることができる緊急措置」**が実際にはDAOのガバナンスとタイムロックを回避し、マルチ署名またはセキュリティ委員会の承認を通じてロールアップ契約を即座にアップグレードしていることです。現在主流のロールアップが数十億ドルのユーザー資産をホストしていることを考慮すると、マルチ署名およびセキュリティ委員会によって承認された「契約の即時アップグレード」は究極の緊急措置ですが、同時にすべてのユーザーの頭上にぶら下がっているダモクレスの剣でもあります。明らかに、これは**信頼を最大化する**の問題です。ロールアップ担当者があなたの資産を盗むという考えを持っていないことを信頼する必要があります。 **Trustless の観点から考えると** (Nick Szabo の観点)、**複数署名およびセキュリティ委員会によって管理されているすべてのロールアップは安全ではありません。 **Avalanche の創設者である Emin Gun Sirer、Solana の創設者である Anatoly、そして有名な黒点の Justin Bons は皆、この種の問題を強調しています。### どのロールアップがマルチシグ/委員会によって操作されていますか?有名な L2 研究機関である L2 BEAT と L2BEAT データ視覚化 Web サイトが発表したレポート「イーサリアム L2 のアップグレード可能性」によると、**Arbitrum、Optimism、Loopring (Loopring)、ZKSync Lite、ZkSync Era、Starknet、Polygon ZKEVM、およびその他の主流のロールアップはすべて、マルチシグネチャまたは委員会が承認したアップグレード可能なコントラクトを持ち、タイム ロック制限を回避できます。 **dYdX には、DAO ガバナンス アップグレード契約をバイパスできる EOA アドレスがありますが、タイム ロック (少なくとも 2 日間の遅延) によって制限されます。 Immutable X には 14 日間の契約アップグレード遅延があるため、L2BEAT によると、**dYdX と Immutable X は、メインネットを立ち上げた他のメインストリーム ロールアップよりもトラストレスです。 ****では、複数の署名と安全委員会によってもたらされる信頼リスクを軽減するにはどうすればよいでしょうか? **その答えは実際にはマルチチェーン事件と似ており、反魔女問題に起因すると考えられます。マルチシグ/委員会は、高度に重複する利害がなく、共謀のリスクが低い複数の異なる主体によって管理されることを保証する必要があります。現時点では、DAO の分散型ガバナンスの成熟度を高め、有名で評判の高い著名人や機関をマルチ署名/委員会に参加させること以外に良い方法はないようです。上記のシナリオは、現実世界の民主主義では一般的だったようです。もちろん、タイムロックによってマルチシグネチャ/コミッティが管理する契約のアップグレード動作を制限することも可能ですが、マルチシグネチャ/コミティの目的は緊急事態に迅速に対処することであり、同時にロールアッププロジェクト当事者がトラストレスの問題について確固たる決意を持っていない場合、この問題は解決できないため、これには多くの要素を考慮する必要があります。したがって、さまざまなロールアップ プロジェクトは、洗練されたメカニズム設計を通じてほとんどの場合ユーザー資産のセキュリティを保証できますが、複数の署名や委員会が存在するため、ロールアップでブラック スワン イベントが発生する可能性はゼロではありません。マルチシグと委員会メンバーの共謀の確率が 10,000 分の 1 にすぎないとしても、L2 管理下の資産価値 (100 億米ドルと想定) を考慮すると、L2 ユーザー資産のリスクは依然として 1 日あたり 100 万米ドルにも上ります。マルチチェーン事件を彷彿とさせ、本当に不気味です。したがって、Polynya が以前に述べたように、私は個人的に、イーサリアム エコシステムのほとんどの資金は依然として L2 ではなく L1 に循環して固定される傾向があり、ロールアップ エコシステムは長期的にはイーサリアム エコシステムの価値のほとんどを獲得することができないだろうと考えています。大規模な投資家やクジラにとって、イーサリアムのメインネットは明らかに L2 よりも資金調達に適しており、信頼できる場所です。したがって、多くの人が「L2の台頭がL1の放棄につながるかどうか」を検討しており、実際、すでに答えを持っています。東野圭吾が著書の中で述べているように、人間の心は数式よりもはるかにとらえどころがなく、理解するのが難しく、複雑で、変えるのが難しいものです。多くのことは純粋に技術的な手段だけでは解決できませんが、「人間の本性」に関係する要因は常に、この世界で最も制御不能で予測不可能で最も深刻な問題となります。ここで、カントの墓石にある古典的な一文を思い出してください。「常に私の心を取り囲んでいる二つのものがあり、それらについて考えれば考えるほど、私の中にさらなる驚きと畏怖の念が呼び起こされます。それは内なる道徳律と頭上の星空です。
ロールアップ最大の信頼リスク:無視できない「人間の支配」の問題
著者: Link、Geek Web3
はじめに: Solana が徐々に衰退し、OP による Token がリリースされて以来、Layer2 と Rollup は無数の Web3 実践者にとっての新たな避難所となったようです。弱気相場が広がり続け、FTXはゲームから外れ、マルチコインは大きな損失を被り、イーサリアムの競合他社はWeb3段階から徐々に姿を消し、ETHと競争する自信を失い続けている。ますます多くの人々が Rollup を新たな物語の核とみなすようになり、雨後の筍のように L2 上でプロジェクトがどんどん生まれました。
しかし、このすべては「偽りの繁栄」なのか、それとも「いつ崩壊するか分からないバブル」なのか?ロールアップと L2 は本当に多くの人が主張するほど優れているのでしょうか?本当に人々が思っているほど安全なのでしょうか?多くの OP ロールアップには不正行為の証拠がないことは言うまでもありませんが、** ロールアップのセキュリティ リスクは何ですか? **
L2BEAT によって最近リリースされた「イーサリアム L2 のアップグレード可能性」に触発されたこの記事は、ロールアップ アップグレードの背後にあるマルチ署名と委員会の信頼リスク (ロールアップ コントラクトを即座にアップグレードし、ユーザー資産を奪う) とロールアップに関する以前の常套句に焦点を当てています。最近のマルチチェーンを思い出させながら、L2 が多くの人が考えるほど「美しく」ない理由について話します。
ロールアップ原則の簡単な説明
Rollup の動作原理の簡単な説明:
**イーサリアム ロールアップ = レイヤ 1 + レイヤ 2 ネットワーク独自のノード上の一連のコントラクト。 **
レイヤ 2 ネットワーク ノードのグループはいくつかの種類の役割に分類できますが、その中で最も重要なものはシーケンサ (シーケンサ) です。 Layer2 で発生したトランザクションリクエストを受け取り、その実行順序を決定し、一連のトランザクションをバッチ (Batch) にパッケージ化し、Layer1 のロールアップ プロジェクトのコントラクト (以下、まとめてロールアップ コントラクトと呼びます) に送信します。
Layer2 のフルノードは、シーケンサーからトランザクションシーケンスを直接取得することも、シーケンサーから Layer1 に送信されたトランザクションバッチ (Batch) を読み込むこともできますが、後者の方が前者よりも 最終確実性 (不変性) が高くなります。通常、シーケンサによってトランザクションのバッチが Layer1 に送信されるとき、トランザクションのバッチの順序は変更できません (イーサリアムでブロックのロールバックがない限り、Rollup のトランザクションの順序は変更されません)。
トランザクションの実行により、トランザクションの順序に加えてブロックチェーン台帳の状態が変更されるため、レイヤー 2 フル ノードは、一貫性を確保するために台帳の状態をシーケンサーと同期する必要もあります。
したがって、シーケンサはトランザクション バッチを Layer1 の Rollup コントラクトに送信するだけでなく、トランザクション実行後の状態更新結果 (Stateroot/State diff) も Layer1 に送信する必要があります。
L1 (イーサリアム) が実際に L2 ノードの掲示板として機能することを理解するのは難しくありません。これは、L2 自身のネットワークよりもはるかに分散化され、トラストレスで、より安全です。 L2 フルノードの場合、L1 のロールアップ トランザクション シーケンス + 初期ステートルートを取得している限り、L2 ブロックチェーン台帳を復元し、最新のステートルートを計算できます。 L2 フル ノード自体によって計算された Stateroot が、シーケンサーによって L1 に公開された Stateroot と一致しない場合、シーケンサーに 不正があることを意味します。
最も直観的な仮説ケースは、L2 のシーケンサーがユーザー資産を盗む可能性があるです。たとえば、発生すべきでないトランザクションを偽造することはできますか (追記: L2 ユーザーのトークンをシーケンサー オペレーターのアドレスに転送し、これらのトークンを L1 に転送します)。この種の質問は、要約すると次のようになります。シーケンサーが間違ったトランザクション データまたは間違った Stateroot を発行した後はどうすればよいですか? **
シーケンサーの不正リスクについては、ロールアップの種類ごとに対策が異なります。オプティミスティック ロールアップ (Optimistic Rollup) を使用すると、L2 フル ノードが不正証明 (Fraud Proof) を提供し、L1 のシーケンサーによってリリースされたデータにエラーがあることを証明できます。たとえば、Arbitrum はノード ホワイトリストを設定し、ホワイトリスト上の L2 ノードが不正証明を発行できるようにしています。
さらに、ほとんどの取引所とプライベート クロスチェーン ブリッジ プロジェクト関係者が L2 フル ノードを実行していることを考慮すると、エラーはすぐに見つかり、コインを盗むほとんどのロールアップ シーケンサーの成功率は基本的に 0 です (最終的に換金する必要があるため、まだ取引所で完了する必要があります。そうでない場合は、盗まれたコインを L1 に転送してから別の方法を見つけることができます)。

(図の Aggregator は実際にはシーケンサーです)
しかし、不正証拠のないオプティミズムの場合、シーケンサーはロールアップ独自のクロスチェーンブリッジコントラクトを通じてコインを盗むことができます。たとえば、シーケンサーのオペレーターはトランザクション命令を偽造し、L2 にある他人の資産を自分のアドレスに転送し、その後、Rollup に組み込まれたブリッジ コントラクトを通じて盗んだコインを L1 に転送することができます。不正行為の証拠がないため、OP のフル ノードは間違ったトランザクションに異議を唱えることができません。したがって、理論上、OP のシーケンサーは L2 内のユーザーの資産を盗むことができます (本当にそうしたい限り)。
この種の問題の解決策は、「社会的合意」 (コミュニティメンバーやソーシャルメディアなどの世論によって監視される)、または **OP の公式信用承認に依存することです。 **
興味深いことに、取引所は最近、Arbitrum と Optimism のユーザーがコインを取引所に転送するまでの遅延を短縮しました (100 L2 ブロックから 1 L2 ブロックに)。これは実際には、ARB と OP のシーケンサーが悪さをしないことを信頼するためです** (デフォルトでは、これらは公式の承認を得た集中サーバーです)**。
楽観的なロールアップとは異なり、L2 フル ノードに依存することに加えて、ZK ロールアップは Validity Proof (ZK Proof と混同されることがよくあります) を通じてシーケンサー詐欺の問題を解決します。 ZK Rollup ネットワークには Prover と呼ばれるノードがあり、シーケンサーによって発行されたトランザクション バッチの有効性証明を生成するように設計されています。同時に、L1上には証明書の有効性を特別に検証するコントラクト(一般にVerifierと呼ばれます)が存在し、トランザクションバッチとStateroot/State diffに対応する証明書がVerifierコントラクトの検証を通過する限り、ファイナライズ(Finalized)されます。 ZKロールアップの公式ブリッジは、有効性証明書によって検証された出金トランザクションのみをリリースします。これは明らかにOptimismよりもはるかに信頼性があります。
理論的には、OP Rollup のセキュリティは L2 フル ノード (不正証明を発行できる少なくとも 1 つの正直なノード) によって保証されます。 ZK Rollup のセキュリティは、L1 上の Verifier コントラクトによって保証されます (トランザクションは最終的に L1 ノードによって確認されます)。表面的には、それらはすべて「L1のセキュリティを継承」することができ(トランザクションの最終確認/決済を完了するためにL1の助けを借りて)、イーサリアムマキシマリストはそれを「L1のセキュリティと同等」(L1のトランザクション結果のファイナリティと一致する)とさえ呼んでいますが、実際の状況はそうではないか、あるいはそれに程遠いものです。
これらの「決まり文句」のポイント
まず第一に、ZK Rollup の 有効性証明の生成速度は非常に遅い。シーケンサーは 1 秒間に数千のトランザクションを実行できますが、これらの数千のトランザクションの証明を生成するには長くても数時間かかる場合があります。しかし、この問題も解決するのは簡単で、主流の ZKR は基本的に Proof 生成タスクを分割し、それを別の Prover ノードに送信して並列処理することで、Proof 生成の速度を大幅に向上させます。
次に、L1 にデータを公開する L2 ノードの遅延を考慮する必要があります。シーケンサーまたは証明者が L1 にデータを送信するたびに、固定コストが発生するためです (出荷ごとにコンテナが消費されるなど)。 L1 にデータを頻繁に公開するのは費用対効果が低く、損失さえも発生します。そのため、シーケンサーと証明者は、L1 にデータを公開する頻度を最小限に抑え、大量のデータを一度にパッケージ化してリリースします。
つまり、ユーザーの数が不十分で、開始されたトランザクションの数が不十分な場合、シーケンサーは L1 へのデータのリリースを遅らせます。たとえば、昨年ユーザーがほとんどいなかったとき、Optimism は 30 分ごとにトランザクション バッチを L1 に送信するだけでした。現在ではユーザー数が増加したため、この問題は実質的に解決されました。 OP とは異なり、Starknet はデータコストを削減するために状態の差分リリースの頻度を減らす方法を採用しており、これにより Starknet のトランザクションの最終確認の遅延が 7 ~ 8 時間に延長されました。
さらに、ほとんどの ZK ロールアップは、コストをさらに削減するために、「多くのプルーフを集約して一度に L1 に送信」することがよくあります。つまり、Prover は Proof を生成した後すぐに L1 に送信するのではなく、複数の Proof が生成されるのを待ってそれらを集約してから、L1 の Verifier コントラクトに送信します。 (実際、プルーフを集約するプロセスは、複数のプルーフを検証することによって生成された計算ステップを含めるために 1 つのプルーフを使用することです)
この結果、Proof リリースの頻度がさらに減り、トランザクションの開始から最終確認までの遅延がさらに長くなります。
ブロック エクスプローラーによると、**Polygon ZKEVM のトランザクション確認の遅延は約 30 ~ 50 分、Starknet と Zksync Era では 7 時間以上です。 **明らかにこれは「L1の安全性を部分的に引き継いでいる」だけであり、イーサリアム支持者が言う「L1と同等の安全性」とは程遠いものです。
もちろん、上記の問題はいずれも技術の進歩によって解決可能であり、近い将来実現されるでしょう。たとえば、多くのプロジェクト関係者は、有効性証明の生成時間を短縮するために高性能ハードウェアを開発しています。オプティミズムも不正防止システムを間もなくリリースすると約束しています。イーサリアムのダンクシャーディング ソリューションは、ロールアップのデータ コストを数十倍、あるいはそれ以上削減し、上記の問題を効果的に解決できます。
「人間の支配」問題の解決は困難
Defiなどのアプリケーションプロジェクトと同様に、ロールアップネットワークの運用はL1上の関連コントラクトに依存しており、これらのコントラクトは「アップグレード可能」です。これは、一部のコードを置き換えることができ(ほとんどのロールアップはプロキシコントラクトを使用します)、マルチシグまたはセキュリティ委員会の承認の下ですぐに実行できることを意味します。まず結論からお話します。 **Rollup は、数人で管理されるマルチ署名またはセキュリティ委員会を通じて、L1 上の契約コードを迅速に変更し、ユーザーの資産を盗むことができます。 **
まず、「なぜロールアップ契約をアップグレードする必要があるのか」と「どのようにアップグレードするのか」です。イーサリアム上のコントラクトコードはデプロイ後に変更することはできませんが、Rollup は開発過程で必然的にさまざまなバグが発生し、誤った結果につながる可能性があります。同時に、Rollup は製品のイテレーションも頻繁に行われ、新しい機能を頻繁に追加する必要があります。さらに極端な場合には、Rollup コントラクトを攻撃するハッカーが存在する可能性があるため、Rollup コントラクトはアップグレード可能である必要があり、これは代理契約を通じて実現されることがよくあります。
プロキシコントラクトとは、実はイーサリアムのコントラクト開発でよく使われる手法で、コントラクトのデータをビジネスロジックから分離して別のコントラクトに格納するというものです。データ (状態変数) はプロキシ コントラクトに格納され、ビジネス ロジック (関数) はロジック コントラクトに格納されます。プロキシ コントラクト (Proxy) は、関数の実行処理を delegatecall を通じてロジック コントラクト (Implementation) に委託し、最終結果を呼び出し元 (Caller) に返します。
プロキシ モードでコントラクトをアップグレードするには、プロキシ コントラクトが新しいロジック コントラクトを指すようにするだけです (プロキシ コントラクトに格納されているロジック コントラクトのアドレスを書き換えます)。 **ほとんどのロールアップ プロジェクトでは、この契約アップグレード方法が採用されていますが、これは単純かつ失礼とも言えます。 **
Rollup のコントラクトをアップグレードできるということが実際には大きな衝撃であることは想像に難くありません。アップグレードされたコントラクトに、Rollup に組み込まれている Bridge コントラクトの引き出し条件やリリース条件を変更したり、正当性を証明するために Verifier コントラクトの有効性を判断する条件を変更したりするなどの悪意のあるコードが含まれている場合、シーケンサーはコインを盗むことができます (原理は前述しました)。
しかし問題は、ロールアップ契約をアップグレードできないことです。その理由は非常に明白です。結局のところ、ロールアップの大多数は、DAO ガバナンス、セキュリティ委員会、またはマルチ署名承認を通じてロールアップ コントラクトをアップグレードするかどうかを決定します。さらに、タイム ロック Timelock は、契約アップグレードの遅延ウィンドウ期間を設定するために使用されます。
ほとんどの DAO 提案には自動実行プロセス (オンチェーン コントラクトを通じて実装) があることを考慮すると、コントラクトをアップグレードする場合でも、最初に十分な投票を取得する必要があり、その後コントラクトのアップグレード操作は、タイムロックで指定された遅延 (多くの場合、数日) が経過した後にのみ実行されます。誰かが悪意のある契約のアップグレードに従事したい場合、ガバナンス攻撃(Tornado Cashで発生したガバナンス攻撃など)を通じてDAOガバナンスを克服する必要がありますが、そのコストは非常に高く、まず十分なトークンを取得する必要があり、通常の状況では成功しません。たとえガバナンス攻撃が成功したとしても、タイムロックにより、ユーザーはL2から資産を引き出すのに十分な時間があり、**ロールアップ担当者は緊急措置を講じるのに十分な時間があります。 **
タイムロックは、悪意のある契約のアップグレードに対する魔法の武器のようです。しかし問題は、いわゆる**「ロールアップ担当者が講じることができる緊急措置」**が実際にはDAOのガバナンスとタイムロックを回避し、マルチ署名またはセキュリティ委員会の承認を通じてロールアップ契約を即座にアップグレードしていることです。現在主流のロールアップが数十億ドルのユーザー資産をホストしていることを考慮すると、マルチ署名およびセキュリティ委員会によって承認された「契約の即時アップグレード」は究極の緊急措置ですが、同時にすべてのユーザーの頭上にぶら下がっているダモクレスの剣でもあります。
明らかに、これは信頼を最大化するの問題です。ロールアップ担当者があなたの資産を盗むという考えを持っていないことを信頼する必要があります。 Trustless の観点から考えると (Nick Szabo の観点)、**複数署名およびセキュリティ委員会によって管理されているすべてのロールアップは安全ではありません。 **Avalanche の創設者である Emin Gun Sirer、Solana の創設者である Anatoly、そして有名な黒点の Justin Bons は皆、この種の問題を強調しています。
どのロールアップがマルチシグ/委員会によって操作されていますか?
有名な L2 研究機関である L2 BEAT と L2BEAT データ視覚化 Web サイトが発表したレポート「イーサリアム L2 のアップグレード可能性」によると、**Arbitrum、Optimism、Loopring (Loopring)、ZKSync Lite、ZkSync Era、Starknet、Polygon ZKEVM、およびその他の主流のロールアップはすべて、マルチシグネチャまたは委員会が承認したアップグレード可能なコントラクトを持ち、タイム ロック制限を回避できます。 **
dYdX には、DAO ガバナンス アップグレード契約をバイパスできる EOA アドレスがありますが、タイム ロック (少なくとも 2 日間の遅延) によって制限されます。 Immutable X には 14 日間の契約アップグレード遅延があるため、L2BEAT によると、**dYdX と Immutable X は、メインネットを立ち上げた他のメインストリーム ロールアップよりもトラストレスです。 **
**では、複数の署名と安全委員会によってもたらされる信頼リスクを軽減するにはどうすればよいでしょうか? **その答えは実際にはマルチチェーン事件と似ており、反魔女問題に起因すると考えられます。マルチシグ/委員会は、高度に重複する利害がなく、共謀のリスクが低い複数の異なる主体によって管理されることを保証する必要があります。現時点では、DAO の分散型ガバナンスの成熟度を高め、有名で評判の高い著名人や機関をマルチ署名/委員会に参加させること以外に良い方法はないようです。上記のシナリオは、現実世界の民主主義では一般的だったようです。
もちろん、タイムロックによってマルチシグネチャ/コミッティが管理する契約のアップグレード動作を制限することも可能ですが、マルチシグネチャ/コミティの目的は緊急事態に迅速に対処することであり、同時にロールアッププロジェクト当事者がトラストレスの問題について確固たる決意を持っていない場合、この問題は解決できないため、これには多くの要素を考慮する必要があります。
したがって、さまざまなロールアップ プロジェクトは、洗練されたメカニズム設計を通じてほとんどの場合ユーザー資産のセキュリティを保証できますが、複数の署名や委員会が存在するため、ロールアップでブラック スワン イベントが発生する可能性はゼロではありません。マルチシグと委員会メンバーの共謀の確率が 10,000 分の 1 にすぎないとしても、L2 管理下の資産価値 (100 億米ドルと想定) を考慮すると、L2 ユーザー資産のリスクは依然として 1 日あたり 100 万米ドルにも上ります。マルチチェーン事件を彷彿とさせ、本当に不気味です。
したがって、Polynya が以前に述べたように、私は個人的に、イーサリアム エコシステムのほとんどの資金は依然として L2 ではなく L1 に循環して固定される傾向があり、ロールアップ エコシステムは長期的にはイーサリアム エコシステムの価値のほとんどを獲得することができないだろうと考えています。大規模な投資家やクジラにとって、イーサリアムのメインネットは明らかに L2 よりも資金調達に適しており、信頼できる場所です。したがって、多くの人が「L2の台頭がL1の放棄につながるかどうか」を検討しており、実際、すでに答えを持っています。
東野圭吾が著書の中で述べているように、人間の心は数式よりもはるかにとらえどころがなく、理解するのが難しく、複雑で、変えるのが難しいものです。多くのことは純粋に技術的な手段だけでは解決できませんが、「人間の本性」に関係する要因は常に、この世界で最も制御不能で予測不可能で最も深刻な問題となります。ここで、カントの墓石にある古典的な一文を思い出してください。
「常に私の心を取り囲んでいる二つのものがあり、それらについて考えれば考えるほど、私の中にさらなる驚きと畏怖の念が呼び起こされます。それは内なる道徳律と頭上の星空です。