なぜ証明なのか?
インデクサーは ZCash ブロックチェーンをスキャンし、名前のレジストリを構築します。しかし、なぜ誰もそれを信頼する必要があるのでしょうか?次の場合はどうなるでしょうか:
- チェーン上で決して起こらなかった登録を捏造しますか?
- 間違った料金を請求しませんか?
- 名前を二重に登録しますか?
- レジストリの状態を改ざんしますか?
ZK 証明はこれらの疑問を解消します。各証明は、登録が正しく処理されたことを示す暗号証明書です。誰でも独立して証明を検証できます。
各証明が検証する内容
ZCash 証明者は、RISC-V ゼロ知識仮想マシンである SP1 を使用します。ドメインとのすべてのトランザクションについて、証明者は zkVM 内で次のチェックを実行します。
- 名前の有効性 - 1-64文字、小文字の英数字 + ハイフン
- 十分な手数料 - トランザクションは 名前の長さ に対して十分な ZEC を支払いました
- プロトコル コマンドの整合性 - すべてのプロトコルの条件が満たされている
- Ed25519 署名 --
memo command上の署名は有効です - マークル ツリーの挿入 -- 名前はまだ存在しておらず、新しい状態のルートは正しいです
いずれかのチェックが失敗した場合、プルーフを生成できません。
パブリック出力
各プルーフは、永続的にバインドされる 3 つの値をコミットします。
| 出力 | 説明 |
|---|---|
old_root | マークル ツリー ルート この登録の前 |
new_root | マークル ツリー ルート この登録後 |
end_block_height | 登録バッチの最新の ZCash ブロック |
block_height は、証明を特定の ZCash ブロック (チェックポイントなど) に固定します。誰でも ZCash ノード上のトランザクションを検索して、メモと値が一致していることを確認できます。