TL;DR
ゼロ知識証明技術は、計算の完全性、正確性、プライバシーを保証でき、ブロックチェーンの拡張とプライバシーに応用できます。
zk-SNARK と zk-STARK にはそれぞれ独自の利点があり、それらを合理的に組み合わせることでより多くの可能性を秘めています。
zkVM はアプリケーションにゼロ知識証明機能を与えることができ、zkVM はメインストリーム、EVM、または新しい命令セットに分類できます。
EVM の適応には、EVM の互換性、同等性、および仕様上の適応が含まれます。
zkEVM は、EVM と互換性があり、ゼロ知識証明に適した環境であり、主にネイティブ ジャンルとコンパイル済みジャンルに分かれています。
ネイティブ zkEVM は、イーサリアムとブロックチェーンの未来です。
Solidity エコロジーをサポートするユニバーサル zkVM は、Web3 の未来です。
0. ゼロ知識証明厳密ではありませんが、ゼロ知識証明を導入するのは簡単です。
あなたは小学生です。教師が検証者で、生徒であるあなたが認証者です。1 つの変数における二次方程式の解の公式を習得したことをどのように証明しますか?その場合は数学のテストが必要です。
教師が関連する問題を 10 問ランダムに選択し、それをマスターしていればすべて解くことができます。このプロセスでは、解答公式の具体的な内容を暗唱したりメモしたりする必要はありませんが、教師は簡単にあなたのレベルを確認できます。知識の習得。
実際、これは、タルターリアとカルダーノ(はい、それが名前です) が 1 つの変数の 3 次方程式の発見者を競うために使用した方法です。彼らはお互いに公式の内容を教えたくないのですが、質問をすることで簡単に確認でき、その過程で知識を明らかにすることなく、その知識を習得したかどうかを判断できます。
ゼロ知識証明の用途は何ですか? その用途は、プロセス全体でコンピューティング能力を節約し、チェーン上のスペースを圧縮し、同時にプライバシーを保護することであり、これはブロックチェーンのトラストレス特性とその遺伝子に一致しています。暗号化。
1. スナークとスタークブロックチェーン分野で使用または言及されている「zk」は、通常、真のゼロ知識証明ではなく、妥当性証明であることがよくあります。関連する語彙が混乱しているため、この記事の一部の場所ではこれらの「誤用」が継続されます。
現在のブロックチェーン情勢において、zkはブロックチェーンの拡張(zkを使用しないValidity Proof)とプライバシー技術(real zk)にとって最も最先端かつ最適なソリューションであると言えます。 zk.money、Filecoin、Mina などのプロジェクト。
現在の技術ソリューションは主に SNARK と STARK の 2 つのカテゴリに分類されます。STARK の S はスケーラブルを表し、証明されたステートメントが繰り返し構造を持つことを意味します。一方、SNARK は、簡潔な証明を達成するために前処理された任意の回路をサポートします。 SNARK の技術的実践は支配的な地位を占めており、STARK は主に StarkWare が大規模に発売した製品に採用されています。
ミームの観点から見ると、STARK は SNARK (?、スター ウォーズ、スタートレック) よりも優れています。
SNARK がイーサリアム 2.0 の未来であるならば、STARK はイーサリアム 3.0 の未来となるでしょう。真面目に言うと、STARK の利点は次のとおりです。
ただし、STARK によって生成されるプルーフのボリュームは大きく、非常に大きくなります。たとえば、WASM の制限により、構築中に追加の操作が必要になる場合があります (ここでは SNARK)。 STARK のは Plonky2 の一部です (Plonky2 と Starky の関係はさらに複雑です...) 個人的には、大きなサイズはさまざまな方法で最適化できると思いますが、アルゴリズム自体の時間計算量をさらに圧縮するのは困難です。
これらのゼロ知識証明技術を合理的に組み合わせて、より強力なアプリケーションを構築することができます。たとえば、Polygon Hermez は SNARK を使用して STARK の正しさを検証し、それによって最終的に証明がリリースされるときのガス料金を削減します。
要約すると、SNARK と STARK はどちらも優れたゼロ知識証明技術であり、それぞれに長所と短所があり、それらを合理的に組み合わせることで、より多くの可能性を秘めています。
2.zkVM前述のTornado.cashとzk.moneyは、どちらも転送操作のみをサポートし、汎用的な計算をサポートしていないゼロ知識証明アプリケーションであり、同様に、これらのアプリケーションはビットコインの機能のみを備えており、イーサリアムの機能にははるかに劣っています。エコロジーの構築は言うまでもなく、チューリングは完了しました (ビットコインのスマート コントラクトがエコロジーに組み込まれたことはありません)。
zkVM は、ゼロ知識証明によってセキュリティ、検証可能、信頼できる機能を保証する仮想マシンです。簡単に言えば、古い状態とプログラムを入力し、新しい状態を返します。これにより、すべてのアプリケーションにゼロ知識証明のスーパーパワーを与えることができます。
ETHアムステルダムでの Miden 氏の講演では、zkVM が実際に何であるかがよくわかりました。
zkVM の利点:
使いやすさ: 開発者は、暗号化やゼロ知識開発を学習せずに zkVM を使用してプログラムを実行し、コンピューティングのセキュリティを確保できます (しきい値がまったくないという意味ではありません)。
一般: zkVM は、あらゆるプログラムと計算の証明を生成できます。
簡潔さ: 比較的少数の制約で (VM 全体の回路を繰り返すことなく) VM 全体を説明できます。
Recursion: 無料の再帰機能. 汎用性と同様に、VM の検証も VM を通じて行うことができます. これは非常に興味深いです. たとえば、zkVM に zkVM を置くことができます. これは StarkWare が言及した L3 の概念に似ています.
zkVM の欠点:
現在、メインストリームの zkVM には 3 つの主要なタイプがあり、それらの命令セットは括弧内にあります: メインストリーム (WASM、RISC-V)、EVM (EVM バイトコード)、ZK-Optimized (ゼロ知識証明用に最適化された新しい命令セット。 Cairo と zkSync ). 以下は、ETH Amsterdam での Miden の講演に従って編集された型比較表です。
ゼロ知識証明開発エコロジーが行うことのほとんどは、開発者が Circom ライブラリ (および snarkyjs) またはその他の新しく作成された言語 (Leo や Cairo などの言語には奇妙な制限があります) を使用して汎用 ZK を実行できるようにすることです。 DApp の開発は、イーサリアム上の Solidity ほど単純で簡単ではありません。
さらに、zkSync、Scroll などの多くのプロジェクトがあり、Polygon 傘下の多くの企業が zkEVM やその他の zkVM を作成しようとしています。
3.EVM EVM はイーサリアムの仮想マシンであり、スマート コントラクトを実行するための実行環境としても理解できます。
長年にわたり、イーサリアムの開発エコロジーに接続するために、さまざまなパブリックチェーンが EVM と互換性を持たせる試みが行われ、この概念に対して EVM の互換性、等価性、その他の定義が導かれてきました。
EVM 互換性: Solidity などの言語レベルでの適応。
EVM 等価性: EVM バイトコード レベルでの適応。
EVM 仕様の適応: いわゆる本物の zkEVM は、ほとんどの場合、下位互換性の最適化されたスーパーセットであっても、アカウントの抽象化 (つまり、各アカウントはスマート コントラクトです) や、EVM が提供しないその他の特徴を提供できます。
4.zkEVM zkEVM をもう一度解釈しましょう。定義上、zkEVM は EVM と互換性があり、ゼロ知識証明に適しており、プログラム、操作、入出力の完全な正確性を保証できる仮想マシンです。
一般的なコンピューティングを実現するには、zkEVM を実行するには主に 2 つの問題を解決する必要があります。
a) 回路が複雑です異なる契約では異なる回路を生成する必要があり、これらの回路は「複雑」です。
この側面は主に、分散クラスターによる Proof の同時計算や、さまざまなハードウェア最適化による の高速化など、さまざまな最適化に依存します。
b) 設計が難しいzkEVM は EVM を再構築するだけでなく、ゼロ知識証明技術を使用してイーサリアムの全体的な状態遷移を再構築する必要があります。
EVM が設計されたとき、私は将来 zkEVM を実行するとは予想していなかったので、大きな困難を引き起こしました。
または、VM のアーキテクチャによれば、次のようになります (元の図の概要を提供してくれた Scroll Tech に感謝!) オペコードは EVM オペコードを指します。StarkWare 部分は Warp を使用して Solidity を Cairo コントラクトに変換するか、Cairo コントラクトに直接書き込みます、優れた開発エクスペリエンスと完全なツールセットも得られます。
開発者とユーザーのレベルでは、これらのソリューションに基本的な違いはないと思いますが、インフラストラクチャの観点では、右にあるほどEVMの互換性が高く、Gethなどのインフラストラクチャにシームレスに接続できますが、開発の進捗状況は次のとおりです。基本的には遅いです。
5.zkEVMとzkVM zkEVM の存在は、イーサリアムの生態系を刷新しパッチを当て、イーサリアムとその生態系の繁栄に貢献できるものだと思いますが、zkVM の存在は必ずしもイーサリアムを強化するものではなく、より大きな想像力を持っています。
StarkNet の Cairo VM は私の想像では完璧な zkVM ではないかもしれませんが、EVM や zkEVM よりも多くのことができ、これらは単なる EIP レベルの機能拡張ではありません。機械学習モデルは Cairo VM 上で実行でき、さらにはStarkNet 上に構築されている機械学習モデル プラットフォームでもあります。
zkEVM と比較して、zkVM は構築が容易 (EVM の技術的負債を心配する必要がない)、柔軟性が高く (EVM の更新を心配する必要がない)、最適化が容易です (回路と証明器のハードウェアとソフトウェアの最適化は、 zkEVM を構築するよりもはるかに簡単で安価です)。
もちろん、zkVM の最も小さいながらも致命的な欠点の 1 つは、zkVM が EVM 互換性 (Solidity 言語レベル) をサポートできない場合、zkVM が EVM のような最も完全で成熟した Web3 開発エコシステムを持つことが困難になることです。
ZkVM は、EVM の垂直方向の最適化を EVM エコロジーの水平方向の拡張に変え、EVM の限界を打ち破る、より大きなトレンドとなる可能性があります。
6. zkVMの将来Solidity だけでなく、Cairo だけでなく、Rust、C++、Go など、すべてのプログラミング言語でスマート コントラクトをゼロ知識証明の恩恵を受けて安全に実行できる汎用 zkVM があればどうなるでしょうか? (Stellar は試しましたが、失敗しました。)
@kelvinfichter が言ったように: zkMIPS ならなぜ zkEVM なのか? @KyleSamani が言ったように: EVM は機能ではなくバグです。zkVM ならなぜ zkEVM ですか?
Winterfall や Distaff、Miden VM などの zkVM は開発にはあまり適していません。Nervos には RISC-V VM がありますが、Nervos はゼロ知識証明技術を使用していません。
現状における最適な解決策は、できれば Rust、Go、C++、さらには Solidity などの言語をサポートする WASM または RISC-V zkVM を構築することです (zkSync は多大な貢献ができるようです)。一般的な zkVM の場合、zkEVM の場合は次元削減の一撃になります。
Web3 開発者の数は全開発者の約 0.07% を占めており、Solidity 開発者の数は実際には 0.07% 未満であり、Cairo を使用して契約書を作成したり、Leo を使用して回路を作成したりする開発者はさらに少ないと推測できます。このようにして、完璧な zkVM はほぼ 100% の開発者を対象としており、あらゆる開発者がほぼすべての言語を使用して知識ゼロの完璧なオペレーティング環境を入手できます。
Web3 と Crypto が世界を支配する日が来るとしたら、EVM エコロジーがすべての開発者の 100% を占めることは絶対にないと思いますが、すべての開発者が徐々に Web3 と Crypto の開発者に変わっていくと思います。場所。
ネイティブ zkEVM はブロックチェーンの未来です。
Universal zkVM は Web3 の未来です。
著者: Suning Yao @ Foresight Ventures