ハードコア科学普及:動物園を例に、zkSync回路の動作原理を分析する
作者:Haotian
多くの人が@zkSyncの新しい動物園の科学普及図文を見て混乱し、動物園を回路 circuit に例え、特別なスキルを持つ動物を「論理ゲート Gate」と見なし、動物たちが楽しそうに集合写真を撮ることを「証明 Proof」と考えました。このように、入力回路のデータは具体的な内容を明かさずに、一連の複雑な計算を経て、Proofを生成し、ゼロ知識証明プロセスが完了します。さあ、私がハードコアに科学を普及してみましょう:
1)動物園は「回路」に対応し、回路は実際には一連の論理ゲートの制約(加算、減算、乗算、除算などの公式)の集まりであり、すべての動物の能力の集中した表現に相当します。これはコンピュータを構成する基本要素でもあります。したがって、回路に入力される「データ」は必ずさまざまな公式に組み込まれ、演算が実行される必要があります。
layer2環境では、取引ハッシュ値、アカウント、データ残高などのデータが存在し、これらのデータは公式に変換して計算することができます。公式化できない場合は、他のエンコーディング変換を行い、元のデータを公式に変換する必要があります。これは回路が処理を実行する前提条件です。
2)さまざまな動物は回路内の論理ゲートに対応し、動物園モードでは次のようになります:木箱------公開されていない数字を表し、「変数」と呼ばれます;ガラス箱------公開されている数字を表し、「公開入力」となります;石------動かせない数字を表し、「定数」と見なされます;
シマウマは2つの数が「等しい」かどうかを比較する能力を持ち、結果が等しいとシマウマは喜びます;ワニは「小さい」を表し、右側の数が左側の数より小さい場合にのみワニは喜びます;クモはより複雑な多選択ゲートを表し、入力が0の場合は必ずtrueを返し、入力が1の場合はfalseを返します;さらにビーバーは除算を、リスはパーセンテージを表し、毛虫は加算を表します。異なる動物は異なる加減乗除の公式を表し、動物たちの喜びや悲しみは公式演算の構造を示します。
多くの動物 + 異なる種類の箱の組み合わせが1つの回路を形成します。例えば、公式2x + 3 = Yを計算する場合、xは木箱を、Yは石を表し、2つの木箱と毛虫、シマウマなどが働きに来て、最後にその公式が成立するかどうかを検証します。注意が必要なのは、なぜ異なる動物が異なる能力を持っているのかにこだわる必要はなく、これが回路要素の基本的な原理であり、コンピュータが計算を実行する基本ルールです。
複雑な回路はさまざまな動物(論理ゲート)と箱(ルール)によって共同で構築されます。
3)先ほど入力した公式2x + 3 = Yが成立した場合、シマウマや毛虫などの動物が喜んでいることになります。そして、その公式のために「Proof」が生成される必要があります。このProofが正確かどうかを認識できる役割が必要です。したがって、証明の信頼性を確保するために、動物園の管理者、つまり回路の構築者は、特別な動物「Zeek」を模擬しました。Zeekは他の動物が喜んでいるかどうかを見分けることができ、layer2システムではVerifierに相当します。
Zeekが動物が喜んでいるかどうかを観察するプロセスは、実際にはProverシステムの検証プロセスです。すべての動物が喜んでいる場合、検証が通過し、Proofが本当にメインネットにアップロードされ、最終的に確認されます。もちろん、動物園には何千もの動物がいて、大量の証明が生成されるため、Zeekが一つ一つを確認することは不可能です。したがって、Zeekは自分自身の分身の状態が喜んでいるかどうかを観察することもでき、このプロセスをRecursive Proof(再帰的証明)と呼びます。
4)写真を撮るプロセスはSNARK証明またはKZGコミットメントを生成するプロセスに相当し、印刷されたフィルムはSTARK\SNARK証明そのものに相当します。動物園の訪問者は、1つ1つの取引に相当し、動物が喜んで集合写真を撮ることでProofが生成され、最終的に訪問者が写真を持って動物園を出ることで証明が残され、最終的にブロックチェーンに確定されます。
動物園には多くの動物がいて、同時にすべてが喜んで決められたルールに従って働くことは不可能です。多くの論理ゲートがあり、接続が切れるなどの状況が避けられません。このため、混雑や遅延、エラーが発生し、無効な状態変化が生じ、Under-Constrainedとなり、最終的な検証を通過できなくなります。