zkVM プロジェクトの TPS に関連する要素であり、1-5 はゼロ知識に関連しています。
-
EVM 互換性の観点から、計算量を証明する必要があります
EVM 互換性(高水準言語等価性、zkVM)> EVM 等価性 > ETH 等価性(PSE)
Starknet = Sin7Y > Zksync > PloygonZkevm > Scroll > Ploygon Zero > PSE
-
多項式コミットメントから証明生成の速度を見る
小域 + FRI > FRI > FRI&KZG > KZG(アルゴリズムの複雑さによって順序が異なる場合があります)
Ploygon Zero > Starknet > Sin7Y > PloygonZkevm > Zksync = Scroll = PSE
-
ハードウェア並列証明の実現可能性をアルゴリズムの方向から考える
単一のアルゴリズムは最適化が容易であり、MSM は現在 FFT よりも優れています
純粋な MSM > 純粋な FFT > ハイブリッド
Sin7Y(純粋な MSM)> Ploygon Zero(純粋な FFT)> Starknet > PloygonZkevm > Zksync > Scroll > PSE
-
ゼロ知識証明システムの再帰的証明の最適化
Plonky2 > Stark > Plonk = Halo2
Ploygon Zero > Sin7Y > Starknet > PloygonZkevm > Zksync = Scroll = PSE
-
ゼロ知識証明システムの組み合わせ可能性
Ploygon Zero = Sin7Y > PloygonZkevm > Starknet > Zksync = Scroll = PSE
-
VM 自体の並列性(トランザクションの並列処理)
OlaVM > zkVM > zkEVM
Sin7Y > Starknet > Zksync > PloygonZkevm > Scroll > Ploygon > PSE
VM の開発言語も効率に一定の影響を与えます。
-
メインネットで大量のアプリケーションを実行できる時点(できるだけ早く)
Zksync > Starknet > PloygonZkevm > Scroll > Sin7y > Ploygon Zero > PSE
-
L3 を実行できる時点(できるだけ早く)
Starknet > Zksync > PloygonZkevm > Sin7y > Ploygon Zero > Scroll
異なる証明システムによって、証明生成プロセスは異なる場合がありますが、ボトルネックは次のとおりです:
- Variable-base and Fixed-base Multi-scalar Multiplication(MSM)
- Fast Fourier Transform(FFT)および逆 FFT
FFT と MSM の両方が遅いですが、パフォーマンスを向上させる方法があります:
- MSM は尋常でない並列性を持ち、複数のスレッドで実行することで高速化できます。しかし、数百のコアでも乗算は依然として多くの時間を要します。つまり、同じ操作を頻繁に繰り返し行い、デバイス上のほとんどの利用可能なメモリを消費します。要するに、MSM は大量のメモリを必要とし、高度に並列化されていても遅いです。
- FFT は、アルゴリズム実行時のデータの頻繁なシャッフルに大きく依存しています。さらに、ハードウェア上で実行する際には大量の帯域幅が必要です。シャッフルによって、16GB 以下のメモリを持つハードウェアチップ上の > 100GB のデータセットなど、要素の「ランダム」なロードとアンロードが必要です。ハードウェア上の操作は非常に高速ですが、データのネットワーク上のロードとアンロードにかかる時間が最終的に操作の速度を著しく低下させます。
要するに:
- MSM は予測可能なメモリアクセスを持ち、大規模な並列化が可能ですが、必要な計算量とメモリ量が高いため、コストが高いです。
- FFT はランダムなメモリアクセスを持ち、ハードウェアにとっては非効率的であり、分散インフラストラクチャ上での実行が困難です。
大規模な MSM と FFT の遅さの問題を解決するために、最も有望な取り組みは PipeZK です。彼らの論文では、MSM をより安価にするためにPippenger アルゴリズムを使用して重複計算をスキップする方法が説明されています。
彼らはまた、FFT を「展開」する方法を説明しており、これにより、改組がほとんどない状態で実行できるようになります。これにより、予測可能なメモリアクセスパターンが得られるため、速度が向上します。
最近、Plonk 系統では、MSM の最適化後に新しいアプローチが提案されました。
並列化
Rust VM
Cairo 1.0
https://medium.com/starkware/cairo-1-0-aa96eefb19a0
再生(Regenesis)
https://medium.com/starkware/starknet-regenesis-the-plan-bd0219843ef4