The ERC 725 standard enables decentralized identity management on the Ethereum blockchain by allowing users to create identity contracts that can store and verify claims about themselves, where claims are signed by trusted issuers and can be validated by other contracts to control access to services.
ERC 725 Identity Management: A Live Demo on Ethereum
Added:in this video I'm going to be demonstrating the identity playground which is a UI built around an implementation of the ERC 725 standard for managing identity on the ethereum blockchain so this repo is available on github at origin protocol forward slash identity playground and it's released with the MIT license it's also available at this URL here which is currently connected to the rinkeby test net so this is what the UI looks like if you to go to this URL you can also so by default you get these three wallets some ether in them you can also add more wallets of the wallet settings page here where you can switch the network to one of these other ones and you can manage your networks down here so this is the the version on the and the ring v test net but if you want something that is more responsive than it's easier if you just run the repo locally and the way that you do that is by cloning it from github and then just running npm install and then once that has completed then you can just run NPM start and that's going to start up your own local test chain and open it in your browser the UI in your browser so when you first start up the app it's going to create your three wallets up here populate them with two ether each and then it's also going to create one of these claim issuers here which we'll talk about in a minute so the way that I'm going to try and demonstrate this ERC 7:25 is by imagining a service called block V and V which is a new service that hasn't been created yet for allowing you to rent properties using the etherium network and so the way we're going to represent that is by adding one of these claim checkers and this is just to kind of simulate a listing contract that you might use to rent a property so we're just going to call this property listing and what we want to do is only allow identities that have been that have received a claim that they have a Facebook account and so we're going to trust this claim issuer origin here so any claims that have been signed by origin and with a claim type of house Facebook then we're going to allow interactions from those identities I'm just going to give this button the name of rent me here so that's created our property listing here with this button record rent me which we'll use in in a second and now we're going to switch to a different wallet and deploy an identity contract I'm just going to call that Nick and so we can see that this identity defaults to just having one key which is the management key and this is taken from the private key of this wallet so essentially whoever deploys the identity contract by default they're the person that controls that identity contract so they can do things like add different keys or add different claims and so the first thing that we can try and do is just add a claim about ourselves so we'll click this add claim button and we're going to just issue a self-signed claim here so we can click this add self claim gonna do a claim type of email and we're just gonna say Nick example.com go ahead and add that claim so we have our first claim on our identity contract here the claims Hyper's email the data is Nick example Kham Kham and we can see that the the issuer is the same as the actual identity contract so this is a self issued claim right here so now if we switch back to the property listing let's simulate what would happen if Nick were to try and run this rentme method so the identity were choosing is Nick go ahead and check that claim and we can see that the result is currently invalid so this contract has looked at the the nick identity for a claim type of house Facebook that was issued by the origin identity contract and the result was failure so Nick does not currently have a claim of type has Facebook issued by the origin contract so let's go ahead and try and get one of those claims but before that let's have a look at this origin claim issuer and we can see here that the origin the origin identity contract has two keys has a management key which all identity contracts have then it also has a claim sign a key so this is the key that's going to be used to sign the claims claim that we're going to get on our identity contract in a minute and then we can also see that we have all these claim signer services so these are web apps that are currently set up to issue claims and and that's essentially going to be a piece of data that's signed by this I density contract so we have this this claim signer that this is the the public key right here but with the private key that's associated with this public key is only known to origin so that private key is what's going to be used to sign the claim so let's go ahead and try and get one of these has facebook claims will switch back to the Nick identity here and then we're going to add a claim and we're gonna say get claim from an issuer so that's gonna list out all of these claim as she was here and all of the claims that they have available so I'm going to go ahead and click on the Facebook claim and that is going to take us to the URL that we saw before and it's going to redirect us to Facebook Oh auth page so I'm just going to go ahead and sign in with a test account here and then we're gonna be popped up with the familiar Facebook auth and so we go ahead and continue and then Facebook is gonna redirect us back to our origin protocol up here and in the code for this app we're essentially going to sign this piece of data which is just a string it says verified okay with the private key from our claim signer we were looking at before and we're going to end up with this signature so let's go ahead and press the ok button and that's going to pre populate our claim ad form here and so the target identity is going to be Nick the issuer is going to be origin the claim type is that Nick has Facebook has a Facebook account the data is just a string that says that Origin verified it and then the signature is going to be a signed version of the claim type and the data along with that private key is only known to origin so let's go ahead and add that claim now and we can see that we have this new claim on our identity the claim is that we have a Facebook account the issuer is origin which is this identity over here we can see that that's coming back as valid so that's actually a valid claim right now we can click on that to see the details of this claim and all the different fields we can click on these little eye icons over here to get explanations of what these fields are so let's go back to our property listing and let's try running this rentme method again so we're going to use the a the NIC identity here we're going to check that claim exists on the Nick identity we can see that it does exist now so this is mined and block 11 and this contract is checking the NIC identity contracts for a claim of type has facebook issued by the origin identity contract and when it tried to validate that it found that it could actually validate that so we get this valid message over here so now let's go and see what happens if we remove this claim signer key from the origin issuer so this is the key that's used to sign claims so if we were to remove this key now to switch to the correct wallet in order to get access to do that if we go ahead and remove this key and let's go have a look at the NIC identity and we can see that this has facebook claim is now invalid because the the key that we need in order to validate that claim is no longer present on the origin identity contracts this claim is now invalid and so again if we go back to the property listing and try and try and run this method rent me then we can see that it's now coming back as invalid say so that's how we can prove that the Nick identity no longer has a valid claim from the origin issuer so that's pretty much what I wanted to demo there's some other features of this app you can see all of the events that have been emitted from these different from these identity contracts so if we go to the neck identity and look at the events we can see all these events that have happened over the lifetime of this contract can also go to the info tab to get the the address of the contracts and the owner of the contract and we can also if we're on the correct wallet we can remove this identity and that's pretty much it
Up Next

Polymesh: A Purpose-Built Blockchain for Capital Markets | Hyperledger
@lfdecentralizedtrust
142 views•2024-03-22

Torrent File Format & Bencoding: A Technical Deep Dive
@AsliEngineering
12.5K views•2022-08-08

Operational Security Essentials: A Guide for Hacktivists (OPSEC)
@hitbsecconf
157.4K views•2012-11-26

Understanding Ethereum: A Comprehensive Beginner's Overview
@99Bitcoins
3.1M views•2018-06-26
Related Study Plans & Knowledge Roadmaps
Structured learning paths in Blockchain & Crypto






































