  We present an implementation of a Web3 platform that leverages the Groth16
Zero-Knowledge Proof schema to verify the validity of questionnaire results
within Smart Contracts. Our approach ensures that the answer key of the
questionnaire remains undisclosed throughout the verification process, while
ensuring that the evaluation is done fairly. To accomplish this, users respond
to a series of questions, and their answers are encoded and securely
transmitted to a hidden backend. The backend then performs an evaluation of the
user's answers, generating the overall result of the questionnaire.
Additionally, it generates a Zero-Knowledge Proof, attesting that the answers
were appropriately evaluated against a valid set of constraints. Next, the user
submits their result along with the proof to a Smart Contract, which verifies
their validity and issues a non-fungible token (NFT) as an attestation of the
user's test result. In this research, we implemented the Zero-Knowledge
functionality using Circom 2 and deployed the Smart Contract using Solidity,
thereby showcasing a practical and secure solution for questionnaire validity
verification in the context of Smart Contracts.
