A ZK SNARK Puzzle Platform that unlocks certification NFTs via ENS
Click to view video
Deployed contracts on goerli
:
erc721ForTestingAddress: https://goerli.etherscan.io/address/0xf23D13244e028F96336d8B8774debE70CE72025E#code
openSesameAddress: https://goerli.etherscan.io/address/0xed279665ef342Efb2C86e5f9fE729e92999D1B80#code
ensTrustAddresshttps://goerli.etherscan.io/address/0xb1785ECA913a0d9D5b8167297746f42B789192E2#code
https://ipfs.io/ipfs/QmSBHAk3gkTxkmbxsSU7XQkLS7XX4Gv9EbXVSw3CWpPARp?filename=mimcsponge.zkey https://ipfs.io/ipfs/Qmefc7hKQFMkgQJkEo4aZKqyfagVrsKiMaNUuXddyB5Hps?filename=mimcsponge.wtns https://ipfs.io/ipfs/QmSWFPqqPi8NrPRF6dt8zbPNervrC2rotSPrm7f4jNPeLE?filename=mimcsponge.wasm
openSesameAddress: https://mumbai.polygonscan.com/address/0x24FBDD7E662e21e0bB16a3e437d73Cc059897a7F#code
This is a prototype game that allows one to certify credentials on chain using Zero Knowledge Proof SNARKs.
User Flow:
- Proves you can solve a specific puzzle
- Claim ENS subdomain NFT (held in trust until puzzle is completed)
- Submit solution to on chain puzzle releasing NFT
The Zero Knowledge SNARKs allow us to decentralize the credentialing process. Users answer puzzles to gain credentials while not revealing the solutions to the rest of the chain.
In particular, the ENSTrust feature we develop in this project decouples the NFT which can be airdropped to people who already have EOA accounts. We believe this is going to make it much more appealing and easier for users to on ramp to Ethereum through credentialing systems
At it core, it has the following two main technologies:
- “ENSTrust” to which you can drop NFTs to an unclaimed ENS domain, EIP-5298 (draft)
- A puzzle with ZK-SNARKS to proof that you know the answer, using CIRCOM, zksnarkjs, Plonk
- Hardhat to build solidity smart contract
- Deployed verifier smart contract on Goerli (test net)
- Django, NodeJS for backend serving which is currently being used to generate the proof