ZK-Mask

ZK-Mask

Our project is getting personal facial scores by third parties using zk technology. Users could upload their picture for rating, wait for a certain epoch, and the score is finalized and written in ID

ZK-Mask

ZK-Mask

Our project is getting personal facial scores by third parties using zk technology. Users could upload their picture for rating, wait for a certain epoch, and the score is finalized and written in ID

The problem ZK-Mask solves

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.

Challenges we ran into

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)

QF Track

zkmask

Open Track

zk-mask

Sponsor Prizes

zkevm, semaphore, unirep

Demo Day

zkmask

Sponsor Track: Linea

linea zkevm

Sponsor Track: Taiko

takio zkevm

Sponsor Track: Polygon

polygon zkevm

Sponsor Track: EF PSE

semaphore, unirep

Discussion