# バリデityロールアップ: イーサリアムのスケーラビリティに最適な選択Validity Rollups(別名zk-rollups)は、エーテルの処理能力を安全かつ分散型の方法で向上させる最も有望なソリューションと考えられています。この拡張ソリューションの核心は、有効性証明を使用して検証可能な計算を行うことです。その動作原理は以下の通りです:オペレーターは、各取引をイーサリアムメインネットで処理するのではなく、取引処理をチェーン外環境(第2層と呼ばれる)に移行します。大量の取引を処理した後、第2層オペレーターは結果を返し、イーサリアムの状態に適用します。また、チェーン外での実行の整合性を証明する有効性証明を提供します。この証明は、バッチ内のすべての取引の有効性を保証し、オンチェーン検証者契約によって自動的に検証されます。これにより、イーサリアムは結果を自身の状態に適用できるようになります。注意すべきは、Validity Rollups は通常ゼロ知識ロールアップと誤って呼ばれますが、これは正確ではありません。ほとんどのValidity RollupはZKPを使用せず、プライバシーを確保するためのものでもありません。したがって、「Validity Rollup」という用語の方が正確です。! [なぜValidity RollupsはEthereumをスケーリングするための最も有望な方法なのですか? ](https://img-cdn.gateio.im/social/moments-153dacb136e22a06d86040ffe5e822e0)## オフチェーン仮想マシン深入議論する前に、私たちは仮想マシン(VM)の概念を理解する必要があります。簡単に言えば、VMはプログラムを実行できる環境であり、Mac上でWindowsオペレーティングシステムを実行するのと同じです。それは特定の入力に対して計算を実行した後、異なる状態間で変換します。イーサリアム仮想マシン(EVM)は、イーサリアムのスマートコントラクトを実行するためのVMです。零知識仮想マシン(zkVM)は、プログラムが正しく実行されたことを証明するために検証しやすい有効性証明を生成できるプログラム実行環境です。"zkEVM"という用語は通常、イーサリアム仮想マシン(EVM)を利用し、EVMの実行を証明することができる集約を指します。この用語は誤解を招く可能性があります。なぜなら、EVM自体はこれらの証明を生成しないからです。むしろ、証明はEVMの実行結果を起点として生成される別の証明メカニズムによって生成されます。さらに、これらの証明は主に有効性に焦点を当てており、プライバシーには重点を置いていないため、完全に零知識証明ではありません。すべてのValidity Rollupsは有効性証明を利用してイーサリアムを拡張することを目的としていますが、実行チェーン外取引のVMを選択する際に違いがあります。多くのValidity RollupsはEVMの設計を複製することを選択し(そのため「zkEVM rollups」と呼ばれます)、L2 rollup上でイーサリアムの体験を複製しようとしています。一方、Starknetは有効性証明の効率を最適化するために特別に設計された新しいVMであるCairo VM(CVM)を使用しています。この二つの方法にはそれぞれ利点と欠点があります:zkEVMは性能と引き換えにイーサリアム互換性を得ており、Cairo VMは性能を互換性の上に置き、拡張能力を優先しています。## zkEVMの実践zkEVMは、イーサリアムの体験を完全にLayer-2ブロックチェーンに導入することを目指しています。その目的は、サマリー内でイーサリアムの開発者環境を複製することです。zkEVMを使用することで、開発者はスマートコントラクトを作成したり、よりスケーラブルなソリューションに移植したりする際に、コードを変更したり、既存のEVMツールやスマートコントラクトを放棄したりする必要がありません。しかし、この方法の主な欠点の一つは、有効性証明の拡張の可能性を制限することです。zkEVMはイーサリアムとの互換性を重視しているため、速度が遅く、リソース消費が大きくなります。CVMとは異なり、EVMは設計時に証明効率を考慮していません。これにより、効率とスケーラビリティを向上させるための最適化が制限され、最終的にはシステム全体の性能に影響を与えます。## EVMのプロバビリティの課題zkEVM方法が直面する核心的な課題は、EVMの原始的な設計に由来しています——それは有効性証明環境での運用のために設計されたものではありません。そのため、その機能を模倣しようとする試みは、有効性証明の潜在能力を十分に引き出すことができず、効率が悪化します。この低効率は最終的にシステム全体のパフォーマンスを低下させます。EVMと有効性証明の互換性は、以下の要因によって妨げられています:1. EVMはスタックベースのモデルを採用しており、有効性証明はレジスターベースのモデルにより適しています。EVMのスタック特性は、その実行の正当性を証明し、ネイティブツールチェーンに直接サポートを提供することをより困難にしています。2. イーサリアムのストレージレイアウトは、Keccakと大型Merkle Patricia Treeに大きく依存しており、これらは有効性証明に不利であり、大量の証明負担を増加させます。例えば、Keccakはx86アーキテクチャ上で非常に高速に動作しますが、証明するのに90kステップが必要です。それに対して、Pedersen(zkに優しいハッシュ関数)は32ステップのみで済みます。したがって、さまざまなzkEVMはイーサリアムツールに異なるレベルのサポートを提供します——zkEVMとイーサリアムの互換性が高いほど、性能は低下します。## Cairo-VMのアプローチzkEVMが"EVMをValidity Rollupsに適応させる"ために多くの開発時間を投入しているのとは異なり、もう一つの選択肢があります。それは、新しい専用の仮想マシンを使用し、その上にイーサリアムツールのサポートを追加レイヤーとして加えることです。これがStarknetの採用した方法であり、Starknetは2021年11月に登場した許可不要のValidity Rollupです。Starknetは、完全に組み合わせ可能なネットワーク上で汎用スマートコントラクトプラットフォームを提供する最初のValidity Rollupです。StarknetはCairo-VM(CVM)を使用しており、これは同名の高級言語です。Cairo-VMはプログラムの実行の有効性証明を効率的に生成するために特別に設計されています。Cairo(仮想マシンとプログラミング言語)を使用することにより、以下の利点があります:1. 最適化された有効性証明——各命令には有効な代数的表現があります2. 証明可能なプログラムを書くためのクラスRust言語3. 高度なCairoとCairoアセンブリ(VM命令)間の中間表現(シエラ)は、Cairoコードの効率的な実行を可能にします。新しい言語を開発することで、特定のニーズに応じてカスタマイズでき、以前のニーズを満たしていなかった機能を備えることができます。## カイロとコーディングの多様性Starknetは革新を奨励しており、これはその多様なコードアプローチに反映されています。CairoはSTARKsを使用して最適なスケーラビリティを実現する能力は、Cairoで直接契約を記述する開発者に限られません。開発者は自分に最適な方法を選択できます:1. Cairoでネイティブにコードを書く:Cairo 1.0のリリースに伴い、開発者は人間工学的で安全なRustに準拠した言語を使用できるようになりました。2. Solidityの互換性:Solidity開発者はCairo VMで使用するコードを記述できます。このアプローチは、イーサリアムに似た開発体験を提供し、SolidityスマートコントラクトをStarknetに移植可能にします。実装方法は2つあります: - 翻訳: ワープ トランスレータを使用して、Solidity コードを Cairo に変換します。 - Starknet上のzkEVM:Kakarotを使用し、Cairoで書かれたzkEVMで、Starknet上でイーサリアムのスマートコントラクトを実行します。短い時間にもかかわらず、CairoはTVLランキングで第4位の最も人気のあるスマートコントラクト言語となり、3.5億ドル以上の資金サポートを受けています。## まとめzkEVMは、開発者が馴染みのあるイーサリアムツールを使用できるように、イーサリアム環境をロールアップとして複製することを目的としています。しかし、このアプローチは有効性証明の可能性を制限し、膨大なリソースを消費する可能性があります。Cairo VMは有効性証明システムのために設計されており、EVMの制約を受けません。これは新しく、安全で人間工学に基づいたRust系のプログラミング言語Cairo 1.0によってサポートされており、STARK証明を使用することでイーサリアムの拡張効率を最大化することを目的とした強力なツールを形成しています。Cairoの継続的な進展、Kakarot zkEVMやWarpなどの多様な開発選択肢の増加は、非常に興奮させるものです。Starknet dAppが製品段階に入るにつれて、Cairoの強力な機能が示され、将来的にはより野心的なプロジェクトに使用されると確信しています。STARKの拡張によるさまざまな方法のおかげで、今後数か月内に新しい方法が登場する可能性があるため、開発者はブロックチェーンの拡張に対して前例のないコントロールを持っています。! [なぜValidity RollupsはEthereumをスケーリングするための最も有望な方法なのですか? ](https://img-cdn.gateio.im/social/moments-12eef6e2fc5e11f187106BDD011fd720)
Validity Rollups:イーサリアム拡張の最適なソリューションとその論争
バリデityロールアップ: イーサリアムのスケーラビリティに最適な選択
Validity Rollups(別名zk-rollups)は、エーテルの処理能力を安全かつ分散型の方法で向上させる最も有望なソリューションと考えられています。この拡張ソリューションの核心は、有効性証明を使用して検証可能な計算を行うことです。その動作原理は以下の通りです:
オペレーターは、各取引をイーサリアムメインネットで処理するのではなく、取引処理をチェーン外環境(第2層と呼ばれる)に移行します。大量の取引を処理した後、第2層オペレーターは結果を返し、イーサリアムの状態に適用します。また、チェーン外での実行の整合性を証明する有効性証明を提供します。この証明は、バッチ内のすべての取引の有効性を保証し、オンチェーン検証者契約によって自動的に検証されます。これにより、イーサリアムは結果を自身の状態に適用できるようになります。
注意すべきは、Validity Rollups は通常ゼロ知識ロールアップと誤って呼ばれますが、これは正確ではありません。ほとんどのValidity RollupはZKPを使用せず、プライバシーを確保するためのものでもありません。したがって、「Validity Rollup」という用語の方が正確です。
! なぜValidity RollupsはEthereumをスケーリングするための最も有望な方法なのですか?
オフチェーン仮想マシン
深入議論する前に、私たちは仮想マシン(VM)の概念を理解する必要があります。簡単に言えば、VMはプログラムを実行できる環境であり、Mac上でWindowsオペレーティングシステムを実行するのと同じです。それは特定の入力に対して計算を実行した後、異なる状態間で変換します。イーサリアム仮想マシン(EVM)は、イーサリアムのスマートコントラクトを実行するためのVMです。
零知識仮想マシン(zkVM)は、プログラムが正しく実行されたことを証明するために検証しやすい有効性証明を生成できるプログラム実行環境です。"zkEVM"という用語は通常、イーサリアム仮想マシン(EVM)を利用し、EVMの実行を証明することができる集約を指します。この用語は誤解を招く可能性があります。なぜなら、EVM自体はこれらの証明を生成しないからです。むしろ、証明はEVMの実行結果を起点として生成される別の証明メカニズムによって生成されます。さらに、これらの証明は主に有効性に焦点を当てており、プライバシーには重点を置いていないため、完全に零知識証明ではありません。
すべてのValidity Rollupsは有効性証明を利用してイーサリアムを拡張することを目的としていますが、実行チェーン外取引のVMを選択する際に違いがあります。多くのValidity RollupsはEVMの設計を複製することを選択し(そのため「zkEVM rollups」と呼ばれます)、L2 rollup上でイーサリアムの体験を複製しようとしています。一方、Starknetは有効性証明の効率を最適化するために特別に設計された新しいVMであるCairo VM(CVM)を使用しています。
この二つの方法にはそれぞれ利点と欠点があります:zkEVMは性能と引き換えにイーサリアム互換性を得ており、Cairo VMは性能を互換性の上に置き、拡張能力を優先しています。
zkEVMの実践
zkEVMは、イーサリアムの体験を完全にLayer-2ブロックチェーンに導入することを目指しています。その目的は、サマリー内でイーサリアムの開発者環境を複製することです。zkEVMを使用することで、開発者はスマートコントラクトを作成したり、よりスケーラブルなソリューションに移植したりする際に、コードを変更したり、既存のEVMツールやスマートコントラクトを放棄したりする必要がありません。
しかし、この方法の主な欠点の一つは、有効性証明の拡張の可能性を制限することです。zkEVMはイーサリアムとの互換性を重視しているため、速度が遅く、リソース消費が大きくなります。CVMとは異なり、EVMは設計時に証明効率を考慮していません。これにより、効率とスケーラビリティを向上させるための最適化が制限され、最終的にはシステム全体の性能に影響を与えます。
EVMのプロバビリティの課題
zkEVM方法が直面する核心的な課題は、EVMの原始的な設計に由来しています——それは有効性証明環境での運用のために設計されたものではありません。そのため、その機能を模倣しようとする試みは、有効性証明の潜在能力を十分に引き出すことができず、効率が悪化します。この低効率は最終的にシステム全体のパフォーマンスを低下させます。EVMと有効性証明の互換性は、以下の要因によって妨げられています:
EVMはスタックベースのモデルを採用しており、有効性証明はレジスターベースのモデルにより適しています。EVMのスタック特性は、その実行の正当性を証明し、ネイティブツールチェーンに直接サポートを提供することをより困難にしています。
イーサリアムのストレージレイアウトは、Keccakと大型Merkle Patricia Treeに大きく依存しており、これらは有効性証明に不利であり、大量の証明負担を増加させます。例えば、Keccakはx86アーキテクチャ上で非常に高速に動作しますが、証明するのに90kステップが必要です。それに対して、Pedersen(zkに優しいハッシュ関数)は32ステップのみで済みます。
したがって、さまざまなzkEVMはイーサリアムツールに異なるレベルのサポートを提供します——zkEVMとイーサリアムの互換性が高いほど、性能は低下します。
Cairo-VMのアプローチ
zkEVMが"EVMをValidity Rollupsに適応させる"ために多くの開発時間を投入しているのとは異なり、もう一つの選択肢があります。それは、新しい専用の仮想マシンを使用し、その上にイーサリアムツールのサポートを追加レイヤーとして加えることです。これがStarknetの採用した方法であり、Starknetは2021年11月に登場した許可不要のValidity Rollupです。Starknetは、完全に組み合わせ可能なネットワーク上で汎用スマートコントラクトプラットフォームを提供する最初のValidity Rollupです。
StarknetはCairo-VM(CVM)を使用しており、これは同名の高級言語です。Cairo-VMはプログラムの実行の有効性証明を効率的に生成するために特別に設計されています。
Cairo(仮想マシンとプログラミング言語)を使用することにより、以下の利点があります:
新しい言語を開発することで、特定のニーズに応じてカスタマイズでき、以前のニーズを満たしていなかった機能を備えることができます。
カイロとコーディングの多様性
Starknetは革新を奨励しており、これはその多様なコードアプローチに反映されています。CairoはSTARKsを使用して最適なスケーラビリティを実現する能力は、Cairoで直接契約を記述する開発者に限られません。開発者は自分に最適な方法を選択できます:
Cairoでネイティブにコードを書く:Cairo 1.0のリリースに伴い、開発者は人間工学的で安全なRustに準拠した言語を使用できるようになりました。
Solidityの互換性:Solidity開発者はCairo VMで使用するコードを記述できます。このアプローチは、イーサリアムに似た開発体験を提供し、SolidityスマートコントラクトをStarknetに移植可能にします。実装方法は2つあります:
短い時間にもかかわらず、CairoはTVLランキングで第4位の最も人気のあるスマートコントラクト言語となり、3.5億ドル以上の資金サポートを受けています。
まとめ
zkEVMは、開発者が馴染みのあるイーサリアムツールを使用できるように、イーサリアム環境をロールアップとして複製することを目的としています。しかし、このアプローチは有効性証明の可能性を制限し、膨大なリソースを消費する可能性があります。
Cairo VMは有効性証明システムのために設計されており、EVMの制約を受けません。これは新しく、安全で人間工学に基づいたRust系のプログラミング言語Cairo 1.0によってサポートされており、STARK証明を使用することでイーサリアムの拡張効率を最大化することを目的とした強力なツールを形成しています。
Cairoの継続的な進展、Kakarot zkEVMやWarpなどの多様な開発選択肢の増加は、非常に興奮させるものです。Starknet dAppが製品段階に入るにつれて、Cairoの強力な機能が示され、将来的にはより野心的なプロジェクトに使用されると確信しています。
STARKの拡張によるさまざまな方法のおかげで、今後数か月内に新しい方法が登場する可能性があるため、開発者はブロックチェーンの拡張に対して前例のないコントロールを持っています。
! なぜValidity RollupsはEthereumをスケーリングするための最も有望な方法なのですか?