Skip to content
@zkMask

zkMask

ZKMask 🎭

(Easy and Secure transactions using 2 Factor Authentication)

Once the keys are lost the Funds are too!

Through ZKMask we are trying to prevent user funds by adding an extra layer of security by leveraging the power of AI Face Recognition and ZK Proofs.

What is ZK Mask?

ZKMask is the ultimate 2 Factor Authentication app needed to secure all transactions through Face Recognition and proving the identity by Zero Knowledge Proofs eliminating any centralization and privacy risks. The architecture of the project makes it different from traditional 2 factor authentication apps - biometric or secret code based. The project leverages decentralization, AI, ZKP to it's best to prevent users from one of the most common and devastating risks.

How it is built?

The project consists of several parts:

  • Registration of user through WalletConnect
  • User recognition (not identification) through DeepFace AI model
  • Anonymous Zero-Knowledge Idenetification of user signature through circom circuits.
  • Transaction initiation or rejection

Links To Repositories

Architecture reg_flow auth_flow

At the time of user registration, the user needs to connect his wallet through walletconnect, this helps in login sessions of user for the public hash association which might be needed to generate proof. The unique key is generated randomly using strong cryptographic functions and logics. The Poseidon hash of the unique key is stored in a mapping for verification and proof generation. Along with this he needs to capture 5-6 different images of his face for the dataset to be used by the AI model.

Now whenever the user initiates any transaction through a dapp which integrates our app, he will have to verify on another device (we did this to add another back up method). He logins into the app, gets the notif of a new authentication request which he could either accept or decline. When he accepts the request, he needs to scan his face, the face then goes to DeepFace AI model which recognises whether the user is right and then sends the inputs to the custom implemented zk circuit which does the further verification and outputs the result to the dapp who is listening to the zkMask's contract. Based on the result, the dapp performs the further transactions.

ZK Implementation We are using custom circom circuits implementation to verify user anonymously. The circom circuit take the unique key as private input and the Poseidon hash as the public input and using the circuit maths verifies that the proof generated is correct or not based on the circuit logic.

0xb6A381c10a367816Be5fb1dd4f35f150b7d8bc1b - Chiado Testnet 0x6187EBe7d3D7fe033E3EA060b15a26fBe157fE01 - Goerli Chain

Popular repositories

  1. contracts contracts Public

    Solidity 1

  2. mobile-frontend mobile-frontend Public

    zkMask Mobile App - React Native

    JavaScript

  3. zkMask-subgraph zkMask-subgraph Public

    Subgraphs for ZK-Mask

    TypeScript

  4. backend backend Public

    zkMask - Backend

    TypeScript

  5. zkMask-circuits zkMask-circuits Public

    zk circuits for zkMask

    JavaScript

  6. TestingDapp TestingDapp Public

    JavaScript

Repositories

Showing 8 of 8 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…