[ad_1]
This is an article series that is going to be covered in two parts, where in first part we will cover the introduction and core concepts of Polygon ID and in second part we will see an example of On chain verification of user with the help of Polygon ID wallet.
Topics that we will cover in this article are —
- What is Polygon ID?
- Core concepts of Polygon ID
- Why Polygon ID?
- Polygon ID Wallet App
Topics that will be covered in Part-2 will be —
- Implementing On Chain Verification Example
- Issuing Claims using Polygon ID Platform
- Verifying Claims
Polygon ID is a decentralized and permissionless identity framework for web2 and web3 applications. It works on the principles of Self Sovereign Identity (SSI) and cryptography that lets individuals own and control their identities.
There are four core concepts that we should know to proceed ahead with Polygon ID. This are —
- Claim
- Issuer
- Identity Holder
- Verifier
Claim
Claim represents any type of information related to an individual, enterprise or an object. For ex- A claim can represent your age or your University Degree.
The person who generates the claim is called the Issuer and he sends this claims to the Holder.
We will see in next part of the article on how we can issue claims via the Polygon ID platform. You can try it yourself by going through this video.
Issuer
Issuer is an entity or an organization that issues claims to the Identity Holder. This claims are cryptographically signed by the Issuer Organization or an entity.
For ex — An University Issuing Degree to the Student can be a Issuer which generates a Claim claiming that student has earned degree from their university.
The issuer can define the structure of the claims that he wants to issue by creating schemas or using some of the pre-existing schemas available.
From above picture we can see that an Issuer creates a schema with DOB and CountryOfResidence where while issuing claims to the user he will fill in the DOB and CountryOfResidence of user i.e. 29/10/1996 & 380 respectively and then issue the claim to the user. User now gets this claim and can send this claim to the verifier.
Let us now check how do schemas actually look like —
...
"countryCode": {
"@id": "kyc-vocab:countryCode",
"@type": "serialization:IndexDataSlotA"
},
"documentType": {
"@id": "kyc-vocab:documentType",
"@type": "serialization:ValueDataSlotB"
}
...
Here is the example of KYCCountryOfResidenceCredential schema. Schemas are described via JSON-LD documents.
Claims store data inside four data slots: two index slots(i_2,i_3) and two value slots (v_2, v_3). To properly design and fill a claim with information, it is necessary to define which data should be stored inside which data slots. These rules are encoded inside the Claim Schema.
countryCode should be stored in IndexDataSlotA while the documentType is stored in IndexDataSlotB.
Identity Holder
Identity Holder are the end users like us who hold the claims in their Polygon ID wallet.
With the help of this claim, Holder can generate a zero-knowledge proofs of the claims in his wallet and presents these zero-knowledge proofs to the Verifier.
Verifier
Verifier verifies the proof presented by a Holder. Verifier requests for the proofs based on the claims that Holder holds in his wallet.
Verifier can add his additional checks to see if the holder’s claim satisfies the criteria needed by him. For ex- Verifier can add a check that the Holder has the claim that satisfies >18 age criteria and the claim is issued to the holder by a reputed and trusted issuer.
NOTE : There should exist a trust between the verifier and Issuer for verifying the claim of the holder because the Claim just resembles the cryptographically verifiable doesn’t guarantee its truth. The Verifier here should see to it that the Claim is coming from a trusted Issuer.
Now there are two types of verifications —
- Onchain verification
- Offchain verification
On-chain Verification allows Dapps to verify users’ claim inside a Smart Contract using zero knowledge proof cryptography.
Off-chain Verification provides all the elements to create a customized Query, set up a verifier server and generate a QR code on the client side to request proof from the user.
However, The proof generated is the same for both cases; the only difference is in the verification process.
We will cover about the Query language and how verifier queries the claim in the next part of the article.
Now we have some overview about Polygon ID, let’s recap through what advantages Polygon ID provides us.
Polygon ID lets people prove their identity without exposing their crucial information to the people. User’s Identity here is secured by zero-knowledge cryptography. Let’s discuss some of the advantages that Polygon ID provides —
Privacy using zero-knowledge
As we saw above the Identity Holder without revealing his sensitive information can send a cryptographic proof to the verifier with the help of his claim.
For ex- Identity Holder with the help of the claim given to him from the verified Issuer that he is >18 years of age can get verified from the verifier without actually revealing his age to anyone. This ensures minimum data exposure and hence ensures the safety of any sensitive data.
NOTE : Issuer can’t track the claim that is issued to the holder i.e. holder can use that claim anywhere.
On Chain Verification
Verification of Proofs unlike previously that was done off-chain can now be done on-chain with the help of smart contracts.
For ex- Any verifier can allow access to their website to only that identity holders who are >18 yrs of age and who met the criteria.
Self-Sovereignty
Self-sovereignty means that holder is in full control of his/her sharing of data, private keys etc. There is no Issuer who can track where the claim has been used.
Transitive Trust
Trust here refers to the relation between Issuer and Verifier. The claim issued by Issuer can be used with multiple verifiers but it is important to note here that every verifier accepts the claim issued by the Issuer. For this, it is important to have a trust between Issuer and Verifier.
Another trust here refers in between Issuer and Holder. Holder if collects the claims from the trusted Issuers then he can have a hassle free verification at the verifier’s end.
The Polygon ID Wallet is a Privacy By Default wallet that helps protect a user’s identity (and other metadata) by using zero-knowledge proofs. The wallet interacts with an Issuer to fetch claims and with Verifier for sharing zkProofs based on these claims.
Polygon ID wallet app has following features —
- Privacy by design and Self-sovereignty
- Open and Permissionless.
- Fetching, storing, and managing claims.
- Generating cost-optimized zero-knowledge proofs for claim verification.
- Communication with Issuer and Verifier.
- Identity recovery using seed phrase.
You can download the Polygon ID wallet app from Playstore or Appstore.
However don’t confuse Polygon ID wallet app with Metamask or any other crypto wallet because they are used for sending the transactions on chain whereas Polygon ID Wallet is used for creating and storing unique identities for the wallet so that these identities can be used to authenticate with the Issuer and the Verifier.
So, this brings end to the first part of the article. I hope you would have gained some expertise in understanding the core concepts of Polygon ID.
I suggest you to go through the resources that I have provided for strengthening your knowledge on Polygon ID. If you want to go more deep into the concepts of Polygon ID, you can read about iden3 protocol on which Polygon ID is based upon. I have provided the links in the resources section.
If you enjoyed reading this article, please do leave a clap or a comment and you can also connect with me on LinkedIn and Twitter. You can follow me on Medium as I keep writing about some of the new and less known things about Blockchain.
[ad_2]
Source link