For use cases, this scoring method can be used in many areas of dating industry. For example, some people might not want to give their personal pictures to their future possible candidates of blind dating for several reasons. Like privacy, shyness etc. With zk-mask, participants of blind date could verify their partner's facial score is in certain range without looking their pictures before the actual meeting. It could be used as a access ticket for entering a social group which requires certain range of facial score. In both cases, user could verify a person's facial ZKP and decide whether to grant access to him or her.
In a sense of DID, a lot of decentralized identity relies to the data source that comes from a central party. This could cause an oracle problem and oracle's data could be corrupted if a central authority tampers a data. However, we showed the possibility through this project that with zk technology, evaluation from decentralized party could also be reliable data source. Only with the information who has private key could solve the zk puzzle.
Our app's main functionality was making zk-proof and validating it. In order to make this happen, our first trial was using Bandada and TLSNotary. However, we found out that these libraries were not perfect fit for our application since the data source does not exist in off-chain web space. For the next trial, we used UniRep and Semaphore. However, the way to make it work was not easy also. UniRep's documentation had some part deprecated so our developers had to understand by looking at all the codes thoroughly and understood the logic through by running the example app.
We also had a time problem. We spent almost half of the time deciding one-best topic among various ideas. Ideas came from different fields including DeFi, DAO, NFTs and we chose our final idea which was very interesting but also very challenging since the lack of knowledge at this domain space. After finalizing the topic, we had to spend some time understanding zero knowledge technology, how to make proofs, how to verify it, how to deploy it on-chain and so on.
Tracks Applied (8)
Technologies used
Discussion