our project belongs to zero knowledge by using semaphore zk-protocol
First of all , the main idea of this project is that paper was used when internal votes at the Blockchain Valley (korea univ blockchain society) at this moment , I thought like it would be good to write a feedback or vote through dApp instead of paper. Because we were blockchain society! After this, I attended a conference in a zk session at BoomLabs and got to know a zk protocol called semaphore. I was convinced that I could create the dApp I imagined through Semephore and decided to use the boilerplate and make additional developments in Hackathon that needed to be supplemented and continue to upgrade after event. There are three things that I tried to supplement. The first is to add permission for only people with NFTs issued by the group to join the group to generate feedback and view the contents. The second is a login feature that saves the value generated when the authorized address joins the group and allows users to view the contents generated in the group as soon as the values match from the contract mapping storage. The third is to modify the transaction occurrence so that the user could occur every transactions by themselves. The last is that we wanted to running on real world for increasing scalability so that others can use our dApp.
As I mentioned on the description, we used Semaphore zk-procotol. This is Ethereum foundation's technology. Thanks to using this protocol, we could make a dApp project what we imagine at the first place. It has really good documentations and good demo. so we used a demo before start. After that we realized that we have to deploy not only Feedback contract but also Semephore contract. Because there were many groups by using Semephore contract that already existed on Polygon Mumbai Test Network. So if we want to handling a group, we have to get our own Semephore contract. And we deployed Semephore contract first, after that , custormize a Feedback contract what we want to change and make a NFT contract that will be using on Feedback contract. We used Ether.js library when modify the transaction occurrence so that the user could occur every transactions by themselves. and used hardhat when we deploy Semaphore, Feedback, NFT contracts.