🔗 スマートコントラクトの設計とインターフェース定義
このレッスンでは、ゼロ知識証明を使ってNFTをミントするスマートコントラクトZKNFT.sol
の全体像を設計し、証明を検証するための「窓口」となるインタフェースを定義します。
🏛️ スマートコントラクトのアーキテクチャ
このプロジェクトのバックエンドは、2つの主要なスマートコントラクトが連携して動作します。役割分担が重要です。
-
PasswordHashVerifier.sol
(検証者コントラクト) 🕵️♂️:-
これは、前のセクションで
circom
とsnarkjs
を使って自動生成されたコントラクトです。
私たちはこの中身を直接編集しません。 -
役割はただ一つ、「提出されたゼロ知識証明が正しいかどうか」を厳格に検証することです。
verifyProof
という関数を持っており、これに証明データを渡すと、有効であればtrue
を、無効であればfalse
を返します。まさに門番のような存在です。
-
-
ZKNFT.sol
(NFTコントラクト) 🖼️:-
こちらが私たちが
-