New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Polygon 🛠️ Getting Started with Polygon ID

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Oleksandr Brezhniev and Dima Sukhyi from Polygon for a workshop titled "Getting Started with Polygon ID". Self-Sovereign Identity is the future. Use Polygon ID to represent identity-based information as [verifiable credentials](https://0xpolygonid.github.io/tutorials/#core-concepts-of-polygon-id-verifiable-credentials-identity-holder-issuer-and-verifier-triangle-of-trust) in your dapp so your users can prove access rights to dapp features without giving up their private data. Thank you to everyone who joined us for ETHGlobal Paris 2023! Paris is the city of light and birthplace of many revolutions. Therefore we were thrilled to be back in one of the most buzzing and free-spirited cities in Europe for ETHGlobal Paris 2023. A lot has changed in the European ecosystem since the last time we hosted a hackathon in 2019. ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

foreign [Music] we will do a presentation of polygon ID and my name is Dima I'm developer of polygon ID of the core protocol and this Sasha is also the developer and team lead with our protocol team so Sasha will do the presentation and explanation of the core concept and after this I will do the presentation of the demo tooling and how you can build with polygen ID yep thank you so what's a polygon ID polygon ID is a self-solving identity solution it's built with zero knowledge proofs technology and based on verifiable credential standards and and the standardized identifiers so in this concept of identity we have three main parties it's a user identity holder we have also verified the one who receives data and will and consumes it and also is sure is a source of trust who is issuing credentials to the user so in let's say we have issues that is a kyc provider it could be like we know jumia or on Fido let's say that have done kyc verification of your identity and then issues to you credential that has for example your passport data country of residence date of birth and so on and then later you apply for a job and you need to to prove that you are eligible for example for for this uh a dow Grant or whatever and you need to prove that you are from non-sunctioned country and that you are over 18 and so on So based on this verify can ask you a question are you over 18 and and so on and you as a user can just prove that this is true that you are eligible without revealing any of the data it's just that that yes I have a credential that states that satisfies them requirements that the verifiers have set and and for this to work we have created a set of tools a protocol and um for for each of these parties we have a number of tools to to be used for for the users and for the wallet providers it's a mobile application and also sdks to to embed it in into existing mobile wallets and also maybe web extensions and snaps then for for the issues we have issue no this uh applications that can be run on on your server to issue credential to to the user and then you user would be able to fetch it store on his own device and prove some statements also for for the issue we have schema Builder because verifiable potentials they are built built on top of the schemas and to facilitate this process to make it easier for for the issuers uh to create credentials we have built a schema Builder it's a uh just a very simple interface and demo will be showing it today how to create your own schema upload it store and then import later into the issue node and actually use it to to issue credential this is also used uh this the schema is also used on the verifier site verifier needs to ask questions based on this schema like do you have credential of um password type and then based on on this credential and the schema I would be asking additional questions like are you over 18 country of residence and so on and for it to make this query easier we have built another tool and that is query Builder and just because we have uh it's pretty simple but but still you need to know how how to use it as a key query language and also it's uh still in in development but uh kinda available for early adopters and early testers just on the test net we have on chain issue it's a decentralized uh issue that [Music] um could be trustless in the way that in usual models we have issue that is working somehow of chain it does processing of data and then later issues credential but this process is not transparent to to anyone and on chin issue is solving this in a way that all the rules everything on how credential is issued what data was supplied is it true or not is done every single chain that's why it's a um fully transparent and auditable how it was created to whom and so on and here's your code where you can get our tutorials our documentation and read about everything and now Dima will show how it works okay Showtime and so we will start with a schema Builder so we'll build our schema then we'll create a create credential fetch it to our phone enter phone verification with zero knowledge proof verification on the back end because we have limited time I will try to be like super fast okay so this is our schema Builder so we can try to build a schema let's call this is uh global teacher one yeah then we need to define the attributes that will be stored in our schema I will call this maybe scorp score and select the type so the data types this is very important because this is types that you can then verify in zero knowledge proofs so here right now this is supported types that we have there's like integer Boolean numbers and strings um the most may be important this is integers because you can do some query operations inside zero knowledge with strings but the rest is also possible but Boolean technically this is zero and one which is obvious but strings will be stored as a hash of your data inside the circuit and you can do selective disclosure maybe you will have a document and verify will ask you hey can you disclose this value at me can you disclose this document for me and you can show the whole document and prove that this document actually store it in your credential it's not maybe like useful for all of the cases but for some kyc and various like specific verifications is very important case so we will do something with integers or this score I'm okay I need to connect my metamask to publish this on ipfs so what is the changes of our schemas right now we're publishing them for schema Builder on ipfs so schemas can be stored on ipfs this is not necessary you still can store them in some like on GitHub and like on your HTTP server but for the like our schema Builder we decided that they will be stored on the apfs so up to you where you will store it but if you will create this on in our schema Builder and they will publish it to ipfs but you can download there is a button to download and you will have the bundle with the schemas so I will do the publishing category okay so this is a schema right now we can create a credential with this schema I will go to our UI first thing that we need to do is just import the schema that we created and just okay I just import the schema I have the Swiss Global and I can issue this to my wallet so like couple worlds about this uh like credential link and uh data directations for direct editions you need to know in advance uh identifier of your user for example if you will build a platform or like some dial you will know because users will log in so you will know the identifier of the user then maybe you will pass some kyc maybe like joining the groups and so on and you can like issue credential and send push notification with this credential if you don't know the identifier in advance and maybe we want to just distribute these credentials to your group members maybe through the Thousand Channel or just put the QR code somewhere on the East Global you can do this through credentialing for example I can put here like 10 credentials this is maximum number of credentials that can be issued so first 10 people will have this credential maybe this is you can do some campaign maybe some game or like I don't know some event based on this and can just engage okay 10 first people who can who can get this credential can go to my website to my the app and will be rewarded for for this interaction Okay so I will put here score I know 100 it's good looks like a good score uh okay uh proof types we have a signature type this is just the proof times that you share just sign your credential you don't need to publish it in anywhere just signature that's it for mercury proof types this is credential that has anchored on chain for this you sure need to send transaction on chain and publish his state so this will mean that your credential was issued at some specific time like timestamp so for some use cases it may be important or maybe some uh on chain use cases can be important but it's up to you for signatures this is just kind of three issuance you don't need to spend like gas or like anything Okay so expiration date you can embed in your not can but you have to embed the expression they in your credentials because during the zero launch proofs verification we're also checking the expiration date so with this you can play with short event Prudential maybe a credential common Leaf one second for one hour or like for for a few years it depends on your business cases and business requirements so I'm creating the this link and now I'll check credential to my phone then just kind just a second I'll try to share a screen so connect with my wallet I mean the internet is not the best here so if we need to wait a little bit so the thing that I have done right now I just did authentication oh like I'll cash I need to receive the credential on by push notifications but maybe because of the lack of the connection I just fetched through the on this QR code okay while I wait and I will show you the next step so so right now your user has a credential on his phone right now it's just a responsibility of the user to communicate with the verifier so and for this verifier you need to build the request to the user so as you have a schema and your your verifier can get this schema well okay it's not so fast I can build query Builder I can I can build the the query so I put my URL I select the type and buy that in this schema and now I can just ask some specific question so this is a score and I can cast okay put a condition it should be less than 200. so this you so you can copy and just past in your JavaScript code but I will show you on our demo application how to perform the verification so here we just put the same URL select the type from from your selection select a field score ask that Fields should be less than 100 and so now I have a query from the verifier and this must be embedded in your website and usually in majority of this like verifications will be embedded in your Arcadia platform or what you're building well this can be embedded in the smart contract so smart contract also can ask you the same question like easier score like less than 200 this will be questioned from the smart contract and you can generate a zero launch proof and send directly to the smart contract hang so here I've been scan this QR code I'm going to share my screen okay right now on the screen you see this is request that was embedded in this coin in this query so if I have the credential of this type and the value is less than 200 so just approve this request so right now is zero knowledge proof is generated on my phone so I'm not sharing the credential itself I'm just sharing the proof that I have this credential and the requirement is fulfilled that field okay sorry sir went right okay one more time in case since I don't have that internet connection my phone hmm so oops sorry about knowledge proof should be generated but as usually demo fail and we will send xenology proof to the user oh sorry to the verifier back end on the back end we will refine the zero noise proof and that's it lawyers will send it to the smart contract then smart contract perform the verification and just give you access to to the website to the dollar or like to your specific web case so what you can potentially build you can build like decentralized dial which will endow or like Ico where you can ask user to fulfill some criterias that maybe you should be about 18 or you should be like from specific country or not from a specific country or you should have or be a part of the specific group and just just up to you I would say what use cases you will cover with this okay I think that's it any questions [Music] comments okay now if you will build that with a polygon ID will be here okay it's easier as well oh let's see I this SDK is in Swift as well or is react native only I'm sorry the SDK is in Swift or react native uh SDK right now the teams on the flutter kotlin flutter kotlin and JavaScript well working on this Rift as well and on react native so I hope till the end of the year we will have uh mobile sdks and all of the platforms also we have a JavaScript SDK so at some companies just embed the JavaScript SDK in their mobile application for example you can generate a proofs we have approver for the mobile applications we have a cooler for like web browsers like of course for the desktops but this is up to you I think the majority of the platforms you can build right now the same for verifications you can we have verification libraries written in Google and JavaScript which is right now should be a good good enough at least for the beginning okay thank you very much yes thank you

Automatic transcript — names and jargon may be misspelled.