QRコードをスキャンしてダウンロードしてください。
BTC $78,175.70 +4.67%
ETH $2,454.94 +5.13%
BNB $644.99 +2.88%
XRP $1.50 +4.43%
SOL $90.31 +4.33%
TRX $0.3254 -0.31%
DOGE $0.1013 +3.20%
ADA $0.2649 +4.10%
BCH $460.05 +4.02%
LINK $9.80 +3.98%
HYPE $45.39 +1.86%
AAVE $117.17 +6.96%
SUI $1.02 +4.31%
XLM $0.1744 +5.62%
ZEC $343.56 +1.97%
BTC $78,175.70 +4.67%
ETH $2,454.94 +5.13%
BNB $644.99 +2.88%
XRP $1.50 +4.43%
SOL $90.31 +4.33%
TRX $0.3254 -0.31%
DOGE $0.1013 +3.20%
ADA $0.2649 +4.10%
BCH $460.05 +4.02%
LINK $9.80 +3.98%
HYPE $45.39 +1.86%
AAVE $117.17 +6.96%
SUI $1.02 +4.31%
XLM $0.1744 +5.62%
ZEC $343.56 +1.97%

Foresight Ventures: zk、zkVM、zkEVM およびその未来の詳細解説

Summary: 原生 zkEVM はブロックチェーンの未来であり、汎用 zkVM は Web3 の未来です。
コレクション
原生 zkEVM はブロックチェーンの未来であり、汎用 zkVM は Web3 の未来です。

著者:Suning Yao、Foresight Ventures

TL; DR

  • ゼロ知識証明技術は、計算の完全性、正確性、プライバシーを保証し、ブロックチェーンのスケーラビリティとプライバシーに応用される。
  • zk-SNARK と zk-STARK はそれぞれ利点があり、合理的な組み合わせがより大きな可能性を秘めている。
  • zkVM はアプリケーションにゼロ知識証明の能力を付与し、zkVM は主流、EVM、または全く新しい命令セットを使用するものに分かれる。
  • EVM の適合には、EVM 互換性、同等性、Specification 上の適合が含まれる。
  • zkEVM は EVM 互換でありながらゼロ知識証明に優しい環境で、主にネイティブとコンパイル派に分かれる。
  • ネイティブベースの zkEVM はイーサリアムとブロックチェーンの未来である。
  • Solidity エコシステムをサポートする汎用 zkVM は Web3 の未来である。

ゼロ知識証明

厳密ではないが簡単にゼロ知識証明を紹介すると:

あなたは小学校に通っています。先生が検証者で、あなたは学生として証明者です。あなたはどのようにして一元二次方程式の解法を習得していることを証明しますか?それには数学のテストが必要です。

先生はランダムに10問の関連問題を出題しますが、あなたが習得していれば、すべて解くことができます。この過程で、あなたは解法の具体的な内容を暗記したり書き取ったりすることはありませんが、先生はあなたの知識の習得度を簡単に検証できます。

実際、これは Tartaglia と Cardano(そう、これがその名前です)が一元三次方程式の発見者を争った際に用いた方法です。彼らはお互いに自分の公式の内容を教えたくありませんでしたが、問題を解くことで、知識を漏らすことなく、彼らがその知識を習得しているかどうかを簡単に判断できました。

ゼロ知識証明には何の役に立つのでしょうか?その用途は、全体のプロセスが計算能力を節約し、チェーン上のスペースを圧縮できること、またプライバシーを保護できることです。これはブロックチェーンの非信任性の特徴や暗号学の遺伝子に合致しています。

SNARK と STARK

ブロックチェーン分野で使用される「zk」は、通常は真のゼロ知識証明ではなく、しばしば Validity Proof です。関連する用語の混乱のため、この記事のいくつかの部分ではこれらの「誤用」を引き継ぎます。

image

現在のブロックチェーンの地図において、zk はブロックチェーンのスケーラビリティ(非 zk の Validity Proof)とプライバシー技術(真の zk)の最前線であり、Tornado.cash、ZCash、zkSync、zk.money、Filecoin、Mina などのプロジェクトで使用されています。

現在の技術ソリューションは主に SNARK と STARK の2つに分かれます。STARK の S はスケーラブルを意味し、証明される文が繰り返しの構造を持つことを示します。一方、SNARK は任意の回路をサポートし、これらの回路は簡潔な証明を実現するために前処理されます。SNARK の技術実践が主導的地位を占めており、STARK は主に StarkWare が既存の製品で大規模に採用しています。以下はそれらの比較です。

image

ミームの観点から見ると、STARK は SNARK よりも優れています(?、スター・ウォーズ、スター・トレック)。

もし SNARK がイーサリアム 2.0 の未来であれば、STARK はイーサリアム 3.0 の未来となるでしょう。真面目に言えば、STARK の利点は:

  • より低いガス(よりスケール可能)
  • より大きなバッチサイズ(よりスケール * 2)
  • より速い証明(よりスケール * 3)
  • トラストセットアップなし(生成されたパラメータは現在のアプリケーションにのみ有効で、変更があれば再設定が必要)
  • 後量子安全

しかし、STARK が生成する証明のサイズは大きく、かなり大きいです。例えば、WASM のいくつかの制限により、構築時に追加の操作が必要になる場合があります(ここは SNARK)。Mir は最近、Starky で AIR ベースの STARK の実践を示しましたが、これは Plonky2 の一部です(Plonky2 と Starky の関係はかなり複雑です。。。)。私個人の意見では、サイズが大きいことはさまざまな手法で最適化できますが、アルゴリズム自体の時間計算量はさらに圧縮するのが難しいです。

これらのゼロ知識証明技術は、合理的な組み合わせによってより強力なアプリケーションを構築できます。例えば、Polygon Hermez は SNARK を使用して STARK の正確性を証明し、最終的な証明の発行時のガス料金を削減します。

要約すると、SNARK と STARK はどちらも優れたゼロ知識証明技術であり、それぞれに特長があり、合理的な組み合わせがより大きな可能性を秘めています。

zkVM

前述の Tornado.cash や zk.money は、送金操作のみをサポートするゼロ知識証明アプリケーションであり、汎用計算をサポートしていません。これらのアプリケーションは、ビットコインの機能しか持たず、イーサリアムのチューリング完全性には遠く及びません。エコシステムを構築することは言うまでもありません(ビットコイン上のスマートコントラクトはエコシステムを構築できていません)。

zkVM は、ゼロ知識証明によって安全で検証可能な信頼性を保証する仮想マシンです。簡単に言えば、旧状態とプログラムを入力し、新状態を返します。これにより、すべてのアプリケーションにゼロ知識証明の超能力を付与します。

Miden は ETH Amsterdam の講演で、zkVM が何であるかを一枚の図でうまく要約しました。

image

zkVM の利点:

  • 使いやすい:開発者は暗号学やゼロ知識開発を学ばなくても、zkVM を使用してプログラムを実行し、計算の安全性を保証できます(完全に無門檻ではないことを意味します)。
  • 汎用性:zkVM は任意のプログラムと計算に対して証明を生成できます。
  • 簡潔:比較的少量の制約で全体の VM を記述できます(全体の VM の回路を繰り返し生成する必要はありません)。
  • 再帰的:無料の再帰的特性。汎用性と同様に、VM の検証は VM を通じて行うことができます。これは非常に面白いことで、例えば、zkVM の中に zkVM を置くことができ、StarkWare が言う L3 の概念に似ています。

zkVM の欠点:

  • 計算アーキテクチャが特殊:すべてのゼロ知識証明システムが zkVM に使用できるわけではありません。
  • パフォーマンスの問題:回路の最適化が必要であり、特定の計算に対してターゲットを絞った最適化が可能です。

現在の主流の zkVM は三大類に分かれます。括弧内はそれらの命令セットです:主流(WASM、RISC-V)、EVM(EVM バイトコード)、ZK-Optimized(全く新しい命令セットで、ゼロ知識証明に最適化されたもの、例えば Cairo や zkSync)。以下は Miden の ETH Amsterdam の講演に基づいて整理したタイプ比較図です。

image

多くのゼロ知識証明開発エコシステムが行っていることは、開発者が Circom ライブラリ(および snarkyjs など)や他の新たに創造された言語(Leo や Cairo などの言語には奇妙な制限があります)を使用して汎用 zk DApp の開発を行えるようにすることですが、イーサリアム上で Solidity を使用するほど直接的で学びやすいものではありません。

そのほかにも、zkSync、Scroll、または Polygon 傘下の多くの企業が zkEVM または他の zkVM の構築を試みています。

EVM

EVM はイーサリアムの仮想マシンであり、スマートコントラクトを実行するための一連の実行環境とも理解できます。

数年間、さまざまなパブリックチェーンが EVM との互換性を持ち、イーサリアムの開発エコシステムに接続しようと試みてきました。この概念から、EVM 互換性、同等性、その他の定義が派生しました。

  • EVM 互換性:Solidity などの言語レベルの適合。
  • EVM 同等性:EVM バイトコードレベルの適合。
  • EVM Specification 適合:通常言われる真の zkEVM であり、大多数の場合、後方互換性のある最適化されたスーパーセットで、アカウント抽象(すべてのアカウントがスマートコントラクトであること)など、EVM が提供していない特性を提供します。

zkEVM

zkEVM を再解釈してみましょう。定義上、zkEVM は EVM 互換でありながらゼロ知識証明に優しい仮想マシンで、プログラム、操作、入力出力などの完全な正確性を保証します。

汎用計算を実現するためには、zkEVM を構築する際に主に2つの難点を解決する必要があります:

a) 回路の複雑さ

異なるコントラクトには異なる回路を生成する必要があり、これらの回路は非常に「複雑」です。

この点では、さまざまな最適化に依存する必要があります。例えば、Aleo(ただし、これは直接的な ZK ではありません。。。最適化の例として挙げています)は、分散型クラスタを通じて証明を並行計算したり、さまざまなハードウェアの最適化を通じて加速したりします。

b) 設計の難しさ

zkEVM は EVM の再構築だけでなく、イーサリアムの全体的な状態遷移もゼロ知識証明技術を用いて再構築する必要があります。

EVM の設計時には、後に zkEVM を作成することを考慮していなかったため、非常に大きな困難が生じました。これにより、2つの派閥のルートが生まれました。図に示されています。

image

また、VM のアーキテクチャに基づいて分けると、こうなります(Scroll Tech の元の図の要約に感謝します!)。Opcode は EVM Opcode を指します。StarkWare 部分は、Solidity を Cairo コントラクトに変換するために Warp を使用するか、直接 Cairo でコントラクトを書くことで、優れた開発体験と全ツールを得ることができます。

image

開発者とユーザーの観点から見ると、これらのいくつかのソリューションは基本的に差がないと考えていますが、インフラストラクチャの面では、右に行くほど EVM 互換性が高く、Geth などのインフラにシームレスに接続できますが、開発の進捗は基本的に遅くなります。

zkEVM と zkVM

zkEVM の存在は、イーサリアムエコシステムの刷新とパッチを行い、イーサリアムとそのエコシステムの繁栄に貢献するものであり、zkVM の存在は必ずしもイーサリアムを強化するものではなく、より大きな想像力を持っています。

StarkNet の Cairo VM は、私が想像する最も完璧な zkVM ではないかもしれませんが、EVM や zkEVM よりも多くのことを行うことができ、これらは単に EIP レベルの機能拡張にとどまりません。Cairo VM 上では機械学習モデルを実行でき、現在も機械学習モデルプラットフォームが StarkNet 上で構築されています。

zkEVM に比べて、zkVM は構築が容易で(EVM の技術的負債を心配する必要がない)、柔軟性があり(EVM の更新を心配する必要がない)、最適化が容易です(回路と証明器のソフトウェアとハードウェアの最適化は、zkEVM を構築するよりもはるかに簡単で安価です)。

もちろん、zkVM の最も小さなが致命的な欠点は、zkVM が EVM 互換(Solidity 言語レベル)をサポートできない場合、zkVM は EVM のように最も完全で成熟した Web3 開発エコシステムを持つことが難しいということです。

zkVM はおそらくより大きなトレンドであり、EVM の縦の最適化を EVM エコシステムの横の拡張に変え、EVM の制約を超えることができます。

zkVM の未来

もし、すべてのプログラミング言語のスマートコントラクト、単に Solidity や Cairo だけでなく、Rust、C++、Go がゼロ知識証明の支援を受けて安全に実行できる汎用の zkVM があればどうでしょうか?(Stellar は試みましたが、失敗しました。)

@kelvinfichter が言ったように:Why zkEVM if zkMIPS?@KyleSamani が言ったように:EVM is a bug not a feature。Why zkEVM if zkVM?

Winterfall や Distaff、Miden VM などの zkVM は、非常に良い開発の友好度を実現していません。Nervos には RISC-V の VM がありますが、Nervos はゼロ知識証明技術を使用していません。

現状での最適解は、WASM または RISC-V の zkVM を構築し、Rust、Go、C++、さらには Solidity(zkSync は大きな貢献ができるようです)などの言語をサポートできることです。このような汎用 zkVM があれば、zkEVM に対して次元を超えた打撃となるでしょう。

Web3 開発者の数は、すべての開発者の約 0.07% を占めており、Solidity 開発者の数は実際には 0.07% よりも少ないと推測できます。Cairo でコントラクトを書くか、Leo で回路を書くことができる人はさらに少ないでしょう。このような完璧な zkVM は、ほぼ 100% の開発者を対象としており、どの開発者もほぼ任意の言語で完璧なゼロ知識実行環境を得ることができます。

image

もし Web3 と Crypto が世界を支配する日が来るなら、私は絶対に EVM エコシステムがすべての開発者の 100% を占めることはないと考えています。すべての開発者が徐々に Web3 と Crypto 開発者に転換していくでしょう。これが汎用の zkVM の素晴らしさです。

ネイティブ zkEVM はブロックチェーンの未来です。

汎用 zkVM は Web3 の未来です。

warnning リスク警告
app_icon
ChainCatcher Building the Web3 world with innovations.