EthCC 2: Jordi Baylina and David Suarez
Ethereum Paris·Wed, Oct 9, 2019, 12:00 AM
Speaker
EthCC 2 EthCC, the Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. Follow us : @AssethFR https://ethcc.io
Transcript
okay good morning would you hello good morning I am David I will introduce shortly sorry I will introduce shortly about item three project before Jordi comes into detail technique technical details for us I don't which is still a very young project and we have been very quiet in terms of communication but in we have communicated about the libraries that you're developed about city compiler of citizen arcs and notions now CS which impart in fact is call for a technology but the project is much more than that I want to position and to explain to you what we are and where we are not okay so what we are is developing protocols data structures and models for this for a complete identity management system okay and what we do is happen source code and we developed reference implementations for these protocols of we design in fact we are not forcing anyone to use our technology in the full stack or anything any specific model but we are encouraging to use your models reference to use our api's even contribute or provide feedback to the project what they could the objectives of the project are very specific we are we are developing a submarine ethidium based entity well we we want this is free for the users for the users users we will see how is it performed we also develop a scalability being off chain and not transactional chain with minimizing and the structure you know all in mental trees okay we also is a process core a to provide privacy by design with this underlying silicon technology that I've mentioned before and the concept of the non-reusable proofs and we also deliver a reference plantation for the user wallet and this key management solution for to take care of the user piece and also we are involved in the community standardization in terms of providing new standards and even adapting to the existing asset for the community so we are in the u.s. track and we wanted to show it our own efforts of the usability what we are doing in terms of the wallet so we are developing we are the rebirth or new version of a web-based wallet and this wallet we present some of the functionalities that we are developing to the user so for us it is very important to to be a reference implementation which shows what we are doing but in fact suffering from implementation okay we are working hard to improve that because for us and we understand all the color projects mentioned before that adoption is key okay we also include the dysfunctionality of export import but we are working on these improvements with some of the top methodologies in terms of designing for trust for the user these are very new concepts usually have to understand what we are doing with entities with claims also with which word that is placed who has in control of these accesses where that they shared okay and also the make sense for transactions and access to applications so that users have to feel comfortable what we are doing and make make some usability for them so we had this process which is also you know something called methodology but we are researching on what was the state of the technology what can be performed or current will map even leap provides new functionalities we are trying to include that and we map the user flow in some screens and you know navigation for the user which is an understandable we will do some testing and iterations on the delivery of that and also we try to provide and receive feedback for the users so this is a process which which are working on and what we imagine in the future is not a wallet which presents to the use of this complexity of the centralization but something which is more easy for for them like this concept of you know identities which are structured into roles and these roles has these claims or information attributes and also they have access to applications in a delayed way so this is more structure like current applications and also complex for the users even though we are including something like zero knowledge proof access or private access we try to show what user is doing and him to understand with the technology in that line but being easy for him to use that so this is why what we imagine in terms of our wallet that for sure what his finish is also reference implementation and you can you can reuse because it's open close and so we are now seeing that the first delivery which is an alpha version for our technology in terms of models with combining a new creation and use for identity on single single login all centralized apps okay so we have this document which has planes how to use that in terms of integration and terms of examples and so you were able to have a look at that the next thing we are doing is the for the decentralized applications but there is the register ok so I don't even spend more details about technology well this is a starting point I think that you all know about identity this is the basic the basic game that we're playing here somebody is to have identities we have claimers somebody's claim or it's not entity that's doing a claim on another identity and then we prove that claim to a third party we can do this proof in a normal proof or we can generate also zero knowledge proof don't reduce the world knowledge zero knowledge proof on our other kind of proof but we always have this three party game now claimer recipient of the claim and very fire in the in in the system but i want to explain some of the different concepts that we are working in ID and three more technical part the first is defining an identity we call it identity Genesis when you want to create an identity a digital identity what do you need what's the first thing that you need think probably you will need a private key if it's a self sovereign identity at least you will need a private key for sure but you will probably need other things for example you can you may need a recovery recovery procedure for this private key probably you are you want to you will want to make claims so you will have to say where all those claims are going to be anchored okay so maybe what blockchain or what contractor from what watch and you want to specify and maybe you can have any other data that you need before you define an identity you need this displace so what we are doing and I think this is something that we are improving and we aren't discovering that this is probably the best way to do it is we're putting all these all these no parameters we can take these parameters as a self claims so you are critical derivatives of these of self claims we Merkel Ides all these claims and the miracle root of all these initial data that defines their entity this can be the identity ID and this is very very useful when you were to work later on with these identities it's like the first merkel root of the initial claims that an identity have and from there you can create more claims how we are creating claims well mainly we are every time that we are putting a claim this is the problem maybe that is that the genesis at the beginning but every time that an identity is creating more claims is generating a new new new merkel new database which has a new miracle tree and have any a different a new merkel merkel root okay and in a normal system you know in addy what we collect in a direct claim will put this root in a in a blockchain this works this model works quite well for you know for for for example for governments or for authorities that generates many claims per day now a government that's generating I don't know thousands of claims per minute it's okay that they do transaction every ten minutes to the blockchain okay but for normal users if you want to democratize if you want to everybody be able should be able to be an a certification authority and have their own certification of thirty admit claims this is a model that does not work quite well and that's not a scale and Asthma that much so what we are doing is we're working we're doing a things that's quite similar for example what plasma plasma Z cash is doing that mainly is the reserve layer to be a centralized relay or the centralized relator that mainly is making a claim that says that the route of the claims of an identity is this one so this relay can aggregate many many users many claims of many users and with a single transaction we can anchor all of those claims and the nice thing of this is that this can be done in a truthless manner so the idea is that the relay can be at ruthless ruler so that not so the earlier cannot put everybody's a random root for each user the recruitment needs to be sang that and needs to follow some of some of the rules so we are sure that nobody neither the relay is going to be able to make any claim in our behalf of course this half the problem that the that the the layer stops working that is and in this case maybe you will not be able to prove anything but if you are able to prove we have the warranty that this proof is valid and this is a concept of a layer so this is the concept of scaling the the claiming system for each for each for each person another thing that we have this concept that we need to consider when we're working in identities identity is when they are alone and they are ok but a lot of the identities needs to talk one each other and needs to discover one each other and here is where which is design it say it's a very simple decentralized system for discovering identities for example if I want a half for example a proof but I want to see for example that this proof is not revoking from the original identity I need to connect to this digital identity and see if there is no revocation that happens in the last moment so where how can I find this identity so here is just a very simple pragmatic protocol just when you want to find an identity you just use the peer-to-peer network whisper or leave P P P - P whatever you send the transaction say I'm looking for this identity and the identity or are nation' that authorized for that identity just soften says here if you want to connect me you can talk to me here and this here can be any protocol can be maybe a centralized protocol or web service in some server or can be a decentralized protocol or tour you know a tour service whatever you want to put in there okay but this is a way for discovering identities and what can you discover and here is the interesting things is when you want to communicate with an identity we define these identity based services so maybe you want to send him an email a message maybe you can you want to get I don't know their link a teen or their now there they're there or their public claims or you can have you can't have even access to their public part of their social social networks or many other applications that are ID identity identity sentry that represents yourself so this is a point for discovering these kinds of services that you can add on top of that going a little lowly low level what can you do what are the basic what are the basic actions that you can do that an identity can do mainly are two things and that's it it's creating a claim so signing things or you can get a message and you as an identity you sign the message or if you want you make a claim that at the end is signing a message with a timestamp with the time related things of course then you can create Bruce but proofs are not implicit to the identities they are anybody can have can create a proof on any other thing but for my identity these are the two basic the two basic actions and an identity can go but to work from the user perspective what we see is that most of the times what we are when we are working with an identity is mainly what we are doing is just filling forms an identity mainly means just so an identity maybe is sending a form requesting somebody to fill a form person just fill the form and send it back the difference here is that a form not only can have normal data fields when I'm saying that the fields can be text fields multiple choice or pictures or whatever they there are I would say at least two new kind of fields that we can we introduced in these forms the first one is a signature it's quite easy most of the forms paper forms they have a place also to sign so in some way and identity should be able to sign forms and should be a field for signing things and the other thing is proving things so it could be a field that's required requesting some sort of proof so you should be able to prove a form as an example imagine that an employment and employment application form problem will have some information about things but at some point maybe the reason that agrees that you have so here in the degrees you would not will not only put which degree you have your pro will put the proof that the univer the given university just made that degree and you're just feeling of normal form of this kind so this sort of this we are defining this protocol for requesting forms to our entities and fulfilling forms of higher entities I think and I think this is a good way to understand the people the users because they already are used to work with paper forms most of the people so that's what we are translating adding this these fields what else another thing with an identity is naming identities now if we have to refer to an entities with a hashed number this is not usable for most of the users so what we are doing here is we are using this claim system connected if you want to the to the ENS system at the end is the owner of the name the owner of a name is just doing a claim that a given name a given name of that domain belongs to a given identity this is nothing very different this is actually for example what the normal email system is doing now the owner of a given domain is adding accounts to that for that domain so we are doing more or less the same so the area is that the owner of a given name is just assigning with a specific kind of claim is claiming that this name belongs to that identity so their entity can prove that they hold that there is this claim that they have they hold this this this this name okay so these are some of the pieces that we are working on this identity system there is one part you know in nine and three we were very concerned about privacy and we are working very hard in all the zero knowledge proof and we take this technology from from the top starting the technology and working that technology because the technology that's quite new and still needs to be developed so we have this more infrastructure pictures pieces that we have been working on I just want to present here very quick but the first is sir come sir come as a DSL language in order to write zero knowledge proof then we have circum lip which is a library of some basic and not so basic circuits that can be used of course will use it very much in either three but can be used for many other projects an overlap is using another another projects can use this libraries includes things like idiocy in the essay signature schemes specific hash functions for forest narcs like Peterson hashes or min see and we also have and we also have all these sparse miracle tree that functions that allows to prove that inclusion exclusion or allows to prove an insertion or relation or update in a key value sparse miracle tree that are mainly the trees that we are working on the identity system and all t0 knowledge I just want to just point some usages because zero knowledge is not only about before scaling that we have seen before for privacy that you can image that you can also imagine here I will present some other use cases that where zero knowledge are very very appliable in identity systems the first one is anonymous login imagine that everybody in in this Congress once to I can access to a given page okay and only those peoples that buy at the ticket can access to this given page but you want to login in an anonymous way what you can do that with your own knowledge you can prove that you buy a tech ticket but without revealing who you are that this is a kind of things that you can do what else reputation proofs reputation at the end it's an algorithm that takes for example many claims no degrees endorsements likes of other people many claims that are made for me they compute with some sort of algorithm and they compute some number with a reputation I can and then what I can do is I can prove that I hold a given score of a given reputation but without revealing all the source that it comes from so this is another usage of for zero knowledge what else cross identity proof I I like a lot this one because for example this allows for me to create different identities and Craig have my real identity may be validated with some claims from the University and from the government and my real identity but I can create another identity different one that even nobody knows about it but I can link it anonymously one and to another so in some way is if you have a real identity you can create a new identity which is not related because you are just proving that you are holding I need a new identity do you have what we call it a nullifier so that's that's unique and you can only create one of those accounts with it for each identity for this real identity but this one is not related to the other these allows to create an anima systems but solving so bad systems that are not civil attacks that are similar attack resistance because you they are because you people will not be able to create another identity if it's not related to that and this is opens like another another thing on that and the other that are we already presented here but that's the non-reusable proofs it's possible to create proofs with zero knowledge that proof any so any kind of proof but that the recipient of the prover can not reduce it if they if I'm sending so if I want to proof David something I can send a proof to David but if David takes that proof and polish that this proof is not valid nobody would believe that mainly what we have what we are doing is we are not just proving something we are proving something or as I'm proving something or that David have his private key or that sorry or that I have his private key so because it's obvious that I don't have to please the David's private key that means that David believe me is know for sure that this proof is this other proof that they want to believe that improving his volley but in the other side if David just take this proof is proving everybody that whatever proof I meant or that he holds his private key which is obviously have the his private key so if even if I take that proof and I encrypted with David's private key I know if that if at the moment that this proof is opening because you need the private key this proof is not usable anymore okay so that's mainly different things I know that's like a lot of things put it together but are some of the things that we have to be looking at if it gives up you know a big picture of the different France that we are working on you have any question [Applause] just I don't care if you sorry for that yeah it's this I'm not I'm here I'm not talking about the goodness or the badness of the reputation systems here I'm just showing a use case where you can prove that you have a given the score given and a specific algorithm unknown algorithm the algorithm can be good or bad and can be game of all or not but if you if you know this is this this this way to compute the score that's based on claims and then you can prove that the result of this score algorithm is this one without revealing the the inputs that the inputs of the claims of course designing reputation algorithms is something that's complex and of course is out of scope of this of this of this project it's just an example of how can you use a claim system with a zero knowledge proof to prove something without redeeming revealing some less revealing where where the source came from yeah the other question you and voting a yeah well I'm but there there are many schemas but in general any voting system the initial you need to start from from census you know from a list of voters that can vote in a system there's a list of identities you need you need before voting you need well you need it can be allow you know a dhow it on the boat and the voters maybe are the stakeholders but you need it can be so but you need if you are we're talking about voting you need to some sort some way to construct initial initial sensors who campbell hold you construct that it can be centralized of course that can also be decentralized it depends on the owned application Yeah right now we are mainly we are working very hard in optimizations optimization we have liked to France open well if you want 3 France open one of those is trying to for generating these big proofs trying to close cluster using you know clusters and huge computers in order to compute this big proof as fast as as possible for this kind of single operators systems like that that's one thing that we are working hard on that part the other is trying to compute you know zero knowledge proves in the in the browser we are working very hard we are writing a very low-level web passingly primitives to run fast in the browsers this is the other and the other is more technical buts about the compilers you know these compiler is like a first version and we need to improve also what we call the witness generation way that we are improving that part and it's more about the companion but that's that are the three points that we are working hard on that yeah there are other you know there are other specific usage zero knowledge that works well for a specific use case nice thing of Zika snart's or Zika starts or this sort of protocols that star being available is that are generic so you can do whatever you want with this and these are these of course it's like you know they are generic that means that you have if they are a little bit more expensive in terms of other stuff but this opens a lot of new possibilities in this in this new world it's so techno you know I want to put what this is a list you can see this is from it this comes from the last paper that in this page one of the last papers is called sonic you know it's like it's one of those but technology that right now is running very very very hard and very very fast and there are many papers that every month are coming into the space and use the technology that's improving day by day and yeah we are working with Zika snarks I think they are great of course they have a they have a big problem is that they need the trusted set up but if you just forget about the trust set up they are very very very good technology besides that of course there is a storks that are there right so that and you know many other and many other options out of there it is a full world you know there is a even standardization of that and it's um it's a war that's moving very fast at this at this stage in the research field and the other question what [Music] absolutely that's that's a great application for that so we we are snow from the open source perspective we're developing the main the main you know the core protocols they are quite low level protocols but of course on top of that there are companies that are working on that on that the scenarios and many others but that's clearly one of the important with use cases that we are working and of course we as an open source we are reasoning and hearing different applications and that of course that's one of the one of the important ones yeah there is a couple more questions pending there and then you yep we are working together yeah but thank you very much [Applause]
Automatic transcript — names and jargon may be misspelled.