0

私は一般的にZoKratesとZKのものに不慣れです。証人がどのように機能するかについて混乱しています。無効な証人を計算しても、検証者は証明が正しいと検証します。たとえば(ZoKratesの「開始」に基づく)。

このプログラムを考えると:

def main(private field a, field b) -> bool:
  return a * a == b

次に、以下を実行します。

zokrates compile -i root.zok
zokrates setup
zokrates compute-witness -a 337 113569
zokrates generate-proof

私が走るとき

zokrates verify

PASSED を返します。

ただし、悪い値を指定しcompute-witnessても合格します。例えば:

zokrates compute-witness -a 1 113569
zokrates generate-proof
zokrates verify // PASSES

ここで何かを理解していないことは明らかですが、オンラインでさまざまなビットを数時間読んだ後でも、何がわからないのですか。

4

1 に答える 1