ZK Part 3: Claim Holder and Polygon ID Wallet
A digital wallet is a software that allows you to securely store and manage sensitive information, such as your login credentials, personal information, and financial details. With the help of cryptography and self-sovereign identity (SSI) principles, you can share your information with others without disclosing any sensitive data. It gives you complete control over your data and lets you decide what to share and keep private.
The Polygon ID Wallet is an example of a privacy-focused digital wallet that protects your identity and metadata using zero-knowledge proofs. This wallet interacts with issuers to fetch credentials and verifiers to share proof of these credentials. The Polygon ID Wallet app is built using a Wallet SDK, which allows other web3 wallets to add similar functionalities.
How to use PolygonID with DAO
- On the right side, we see the Polygon ID mobile wallet. On the left side, we see the Polygon Verify website. We are now creating a wallet. It contains no claims.
- We scan the QR code on the Polygon Verify website to authenticate. The wallet is now connected.
- We are now guided towards Jumio, where we verify the ID document. Verification is successful, and we are presented with a screen where we can collect claims into our Polygon ID wallet.
- Four claims are being added. Now, the wallet contains four claims: the proof of personhood used for simple resistance within the ecosystem, the Polygon DOW membership claim currently tied to the proof of personhood, and two claims management unrelated to the current integration: date of birth and country of residence.
- We are now at the Grail web page. We click on “Connect your wallet,” and a QR code is presented, which we scan to authenticate via our wallet. We are now connected, and the platform has generated a random username for us in order to maintain privacy.
- Going to proposals, we see one proposal in the Polygon DOW space: the Grail roadmap. We can vote by distributing the weight to each of the options. We are prompted to scan the QR code, and we are asked to provide proof of our Polygon DOW claim ownership. An infographic pops up with the mobile wallet, indicating that we are providing proof. The wallet now generates proof based on that claim.
- After the proof has been generated, the vote has been recorded on the website and has become part of the results. Congratulations! You’ve now become a DOW member and participated in the first zero-knowledge, Sybil-resistant voting ever.
PolygonID SDK and Wallet
Polygon ID SDK and Polygon ID Wallet App are key concepts to understand when developing the Polygon network. The Polygon ID SDK is a software development kit that provides core functionality for creating identity wallets. On the other hand, the Polygon ID Wallet App is an example implementation of an identity wallet built on top of the Polygon ID SDK.
Developers can use the Polygon ID SDK to create their own custom identity wallets or modify existing identity wallets using the features provided by the SDK. In the following sections, we will explore the Polygon ID SDK plugin and provide an example app to guide developers through the initial setup required for using the plugin. The example app will also illustrate the overall flow of the Polygon ID SDK functionality.
Check the Polygon ID SDK Plugin
- The proof generation process starts with the Wallet scanning the Verifier’s QR code.
- The Verifier generates a Query Request, which the Wallet parses and uses to generate a proof.
- The Wallet must authenticate itself before generating proof using a pin or biometrics.
- The Wallet generates a signature or Merkle-tree-based proof sent to the Verifier via a callback URL.
- The Verifier analyzes the proof for authenticity and verifies it.
- The Verifier shows both the authorization request and the proof information to the Integrator.
- After successful verification, the Integrator can use the services of the Verifier, such as becoming a DAO member and participating in voting activities.
- Circuits are used for the proof generation, which can be further explored.
Read more about the circuits used for a proof generation Iden3 Documentation.
Iden3comm is a protocol that standardizes the communication between an Identity Holder, Issuer, and Verifier. It defines the syntax, rules, and semantics of data exchange to ensure the proper synchronization of all parties involved.
The protocol specifies the structure of messages, requests, and responses necessary for exchanging information. It supports various types of messages, such as authorization requests and responses, zero-knowledge proof requests and responses, credential requests for issuance and fetching, Iden3 messages for message fetch requests, revocation status request messages, and device registration requests.
In summary, Iden3comm provides a common language for exchanging information in the context of identity management, facilitating secure and efficient communication between all parties involved.
For more details on the structure of each type of message, click Iden3comm Protocol.
Difference between wallets
Polygon ID Wallet is distinct from other crypto wallets such as Metamask, Trust Wallet, Coinbase Wallet, and Ledger due to its focus on identity management rather than on-chain transactions. Unlike other wallets, Polygon ID Wallet is specifically designed to create and store unique identities that can be used for authentication with the Issuer and the Verifier. The Identity Wallet enables an Integrator to obtain and store credentials from Issuers and then present these credentials to the Verifiers as zero-knowledge proofs.
While other wallet encryption allows interaction with Ethereum and other blockchain technology networks using RPCs, Polygon ID Wallet functions solely to store credentials associated with an identity, unlike traditional wallets, which store cryptographic keys, the Polygon ID Wallet stores user identities based on the Baby Jubjub Key. This key generates the Polygon ID Identifier, the unique identifier for the wallet, in contrast to the Ethereum Wallet Address generated using the secp256k1 elliptic curve used in wallets like MetaMask.
Originally published at Reveation Labs Blog Page — ZK Part 3: Claim Holder and Polygon ID Wallet