# Rollupのお勉強 **Published by:** [Adachi Tomoki](https://paragraph.com/@adachi-tomoki/) **Published on:** 2022-03-22 **URL:** https://paragraph.com/@adachi-tomoki/rollup ## Content Rollupとは何か?Ethereumのスケーリング技術の一つ。いわゆるL2ソリューション。 という説明だと理解しにくいので前提から説明します。Rollup誕生の経緯Rollupの内容の前になぜRollupが誕生したのかを見る必要があります。 ブロックチェーンのトリレンマ(分散性、セキュリティ、スケーラビリティ)の中でEthereumにおいてはスケーラビリティ(処理能力)が問題になる。 そこでベースのブロックチェーン(レイヤー1・この場合Ethereum)ではなく、ベースのものではないブロックチェーン(レイヤー2)で処理することでスケーラビリティ問題を解決しようとした。 そのレイヤー2(以下、L2)は大きく4つあります。zk-Rollup、Validium、Optimistic Rollup、Plasmaの4つです。 その中の2つのソリューションにRollupが使用されています。RollUpの特徴Rollupは、Plasmaに似たL2スケーリングソリューション。 Plasma Ethereumのブロックチェーンを親ブロックチェーン(ルートブロックチェーン)として、それぞれのプラズマブロックチェーンをツリー状に接続していく。 トランザクションはPlasmaブロックチェーン上で処理され、その結果が接続している親Plasmaブロックチェーンに伝わっていく。最終的にEthereumブロックチェーンにトランザクションが記録される。しかし、Plasmaではスマートコントラクトの複雑性やルートチェーンに51%攻撃を受けるとプラズマチェーン全体に影響を受けてしまうなど、可用性の部分で問題になってしまう。 一方でRollupはデータ処理の一部をL2で行うが、L1であるEthereumの方にも処理を部分的に残していることによってセキュリティを維持した状態でスケーラビリティを向上させることができます。Rollupの基本的な処理EVMを通じてトランザクションを実行データの抽出データの圧縮Ethereumに書き込む4でEthereumに書き込む際には何千ものトランザクションを1つのRollupブロックにまとめて書き込むようになっている。 しかし、4で書き込む際にデータの有効性や悪意のあるデータかどうかを判断する必要があります。その判断を行う手法が先ほど述べたzk-Rollup、Optimistic Rollupになります。Optimistic Rollupzk-Rollupとは異なり、毎回Rollupコントラクトで検証しない。代わりに不正を告発するための紛争期間(Dispute period)を1〜7日程度設け、その期間内で無効なトランザクションを指摘したオペレーターやユーザーは該当ブロックを元に戻す、悪意のあるトランザクションを生成した当事者にペナルティを与える。 課題 L1のファイナリティに時間がかかるため、L1からの引き出しに時間がかかる。zk-Rollup全ての状態遷移に関して**ゼロ知識証明(SNARK)**を生成する必要がある。メインチェーン(Ethereum)のRollupコントラクトで検証を行う。 ゼロ知識証明とは、秘密を知っていることを秘密を教えることなく、第三者に秘密を知っていると証明できる仕組みのことで、私も具体的な仕組みはあまり理解していません、、、 zk-Rollupの流れユーザーがトランザクションに署名してオペレーターに渡すオペレーターは複数のトランザクションを受け取るオペレーターは回路にトランザクションやMerkle Treeの情報をinputとして計算する(Prove)検証者(Ethereumのコントラクト)にProof(3の生成物)を渡して検証する新しいMerkle RootがEthereumコントラクトに刻まれる→残高が反映され、状態遷移が完了する課題 証明生成の計算に時間とコストがかかる。 ## Publication Information - [Adachi Tomoki](https://paragraph.com/@adachi-tomoki/): Publication homepage - [All Posts](https://paragraph.com/@adachi-tomoki/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@adachi-tomoki): Subscribe to updates