AndLaw inc. CTO
AndLaw inc. CTO

Subscribe to Adachi Tomoki

Subscribe to Adachi Tomoki
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
Ethereumのスケーリング技術の一つ。いわゆるL2ソリューション。
という説明だと理解しにくいので前提から説明します。
Rollupの内容の前になぜRollupが誕生したのかを見る必要があります。
ブロックチェーンのトリレンマ(分散性、セキュリティ、スケーラビリティ)の中でEthereumにおいてはスケーラビリティ(処理能力)が問題になる。
そこでベースのブロックチェーン(レイヤー1・この場合Ethereum)ではなく、ベースのものではないブロックチェーン(レイヤー2)で処理することでスケーラビリティ問題を解決しようとした。
そのレイヤー2(以下、L2)は大きく4つあります。zk-Rollup、Validium、Optimistic Rollup、Plasmaの4つです。
その中の2つのソリューションにRollupが使用されています。
Rollupは、Plasmaに似たL2スケーリングソリューション。
Plasma
Ethereumのブロックチェーンを親ブロックチェーン(ルートブロックチェーン)として、それぞれのプラズマブロックチェーンをツリー状に接続していく。
トランザクションはPlasmaブロックチェーン上で処理され、その結果が接続している親Plasmaブロックチェーンに伝わっていく。最終的にEthereumブロックチェーンにトランザクションが記録される。

しかし、Plasmaではスマートコントラクトの複雑性やルートチェーンに51%攻撃を受けるとプラズマチェーン全体に影響を受けてしまうなど、可用性の部分で問題になってしまう。
一方でRollupはデータ処理の一部をL2で行うが、L1であるEthereumの方にも処理を部分的に残していることによってセキュリティを維持した状態でスケーラビリティを向上させることができます。
EVMを通じてトランザクションを実行
データの抽出
データの圧縮
Ethereumに書き込む
4でEthereumに書き込む際には何千ものトランザクションを1つのRollupブロックにまとめて書き込むようになっている。
しかし、4で書き込む際にデータの有効性や悪意のあるデータかどうかを判断する必要があります。その判断を行う手法が先ほど述べたzk-Rollup、Optimistic Rollupになります。
zk-Rollupとは異なり、毎回Rollupコントラクトで検証しない。代わりに不正を告発するための紛争期間(Dispute period)を1〜7日程度設け、その期間内で無効なトランザクションを指摘したオペレーターやユーザーは該当ブロックを元に戻す、悪意のあるトランザクションを生成した当事者にペナルティを与える。
課題
L1のファイナリティに時間がかかるため、L1からの引き出しに時間がかかる。
全ての状態遷移に関して**ゼロ知識証明(SNARK)**を生成する必要がある。メインチェーン(Ethereum)のRollupコントラクトで検証を行う。
ゼロ知識証明とは、秘密を知っていることを秘密を教えることなく、第三者に秘密を知っていると証明できる仕組みのことで、私も具体的な仕組みはあまり理解していません、、、
zk-Rollupの流れ

ユーザーがトランザクションに署名してオペレーターに渡す
オペレーターは複数のトランザクションを受け取る
オペレーターは回路にトランザクションやMerkle Treeの情報をinputとして計算する(Prove)
検証者(Ethereumのコントラクト)にProof(3の生成物)を渡して検証する
新しいMerkle RootがEthereumコントラクトに刻まれる→残高が反映され、状態遷移が完了する
課題
証明生成の計算に時間とコストがかかる。
Ethereumのスケーリング技術の一つ。いわゆるL2ソリューション。
という説明だと理解しにくいので前提から説明します。
Rollupの内容の前になぜRollupが誕生したのかを見る必要があります。
ブロックチェーンのトリレンマ(分散性、セキュリティ、スケーラビリティ)の中でEthereumにおいてはスケーラビリティ(処理能力)が問題になる。
そこでベースのブロックチェーン(レイヤー1・この場合Ethereum)ではなく、ベースのものではないブロックチェーン(レイヤー2)で処理することでスケーラビリティ問題を解決しようとした。
そのレイヤー2(以下、L2)は大きく4つあります。zk-Rollup、Validium、Optimistic Rollup、Plasmaの4つです。
その中の2つのソリューションにRollupが使用されています。
Rollupは、Plasmaに似たL2スケーリングソリューション。
Plasma
Ethereumのブロックチェーンを親ブロックチェーン(ルートブロックチェーン)として、それぞれのプラズマブロックチェーンをツリー状に接続していく。
トランザクションはPlasmaブロックチェーン上で処理され、その結果が接続している親Plasmaブロックチェーンに伝わっていく。最終的にEthereumブロックチェーンにトランザクションが記録される。

しかし、Plasmaではスマートコントラクトの複雑性やルートチェーンに51%攻撃を受けるとプラズマチェーン全体に影響を受けてしまうなど、可用性の部分で問題になってしまう。
一方でRollupはデータ処理の一部をL2で行うが、L1であるEthereumの方にも処理を部分的に残していることによってセキュリティを維持した状態でスケーラビリティを向上させることができます。
EVMを通じてトランザクションを実行
データの抽出
データの圧縮
Ethereumに書き込む
4でEthereumに書き込む際には何千ものトランザクションを1つのRollupブロックにまとめて書き込むようになっている。
しかし、4で書き込む際にデータの有効性や悪意のあるデータかどうかを判断する必要があります。その判断を行う手法が先ほど述べたzk-Rollup、Optimistic Rollupになります。
zk-Rollupとは異なり、毎回Rollupコントラクトで検証しない。代わりに不正を告発するための紛争期間(Dispute period)を1〜7日程度設け、その期間内で無効なトランザクションを指摘したオペレーターやユーザーは該当ブロックを元に戻す、悪意のあるトランザクションを生成した当事者にペナルティを与える。
課題
L1のファイナリティに時間がかかるため、L1からの引き出しに時間がかかる。
全ての状態遷移に関して**ゼロ知識証明(SNARK)**を生成する必要がある。メインチェーン(Ethereum)のRollupコントラクトで検証を行う。
ゼロ知識証明とは、秘密を知っていることを秘密を教えることなく、第三者に秘密を知っていると証明できる仕組みのことで、私も具体的な仕組みはあまり理解していません、、、
zk-Rollupの流れ

ユーザーがトランザクションに署名してオペレーターに渡す
オペレーターは複数のトランザクションを受け取る
オペレーターは回路にトランザクションやMerkle Treeの情報をinputとして計算する(Prove)
検証者(Ethereumのコントラクト)にProof(3の生成物)を渡して検証する
新しいMerkle RootがEthereumコントラクトに刻まれる→残高が反映され、状態遷移が完了する
課題
証明生成の計算に時間とコストがかかる。
No activity yet