Ankr Verify
Development Details

Anrk Verify development details

AnkrVerify is a Web3 proof-verification service. It allows any Web3 participant (DeFi protocol, developer, ordinary user) to request proof to comply a specific policy (e.g., age => 18).

Architecture

Ankr Verify is implemented in a modular manner:

  • Synaps node
  • AnkrVerify backend
  • AnkrVerify frontend
  • AnkrVerify smart contract

Actors

  • User — anybody who wants to prove they comply with the required policies of a blockchain, DeFi platform, or a dApp.
  • Synaps — the KYC provider. Synaps requests, processes, and stores real user data.
  • AnkrVerify Wallet Service (backend + frontend) — a service for generating proofs (claims) for policies.
  • AnkrVerify smart contract — a contract deployed on a specific chain; stores links to the IPFS proofs (claims).
  • Chain — a blockchain where a Ankr Verify smart contract is deployed.
  • DeFi platform, dApp, developer — any third-party that wants the user to comply with a specific policy.

Workflow

Ankr Verify architecture
Right-click and open the image in a new tab for a larger size

  1. The user undergoes KYC.
  2. The issuer:
    1. Checks the provided KYC data.
    2. Creates Identity Attributes (claims) for the user based on the provided data. Types of the attributes are predefined by Ankr (curr., age. residence, name, surname).
    3. Updates the GIST tree with the claims. The tree stores all the claims of all the users.
  3. The issuer sends the claims encrypted by the PK of the user's wallet to Ankr Verify.
  4. The user connects their wallet to their Ankr Verify Wallet Service. Ankr Verify sends user their encrypted claims, and the user decrypts them via the decrypt-encrypt MetaMask function.
  5. Ankr Verify sends the user the policies available for verification.
  6. If the user's claim matches the policy requirements, the user generates a proof, signs it, chooses chains to upload the proof to, and sends the proof to Ankr Verify.
  7. Ankr Verify validates the received proof, stores it on the IPFS, and also stores the link to the IPFS in the smart contract on the chains selected by the user.
  8. A third-party (DeFi platform, developer) check if the required policy is met via isPolicyValidated(address user, policyId).