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

Loading player…

Introduction to Unirep: ZK data system | Vivian, Ethereum Foundation | ETHTaipei 2023

ETHTaipeiMon, Oct 9, 2023, 12:00 AM

Transcript

hello good morning everyone glad to see you guys coming here again and for you for you this is our second day of each Taipei conference uh for your information this this building is still for ZK client and the security check and if you want to if you're interested in the five things you can move to another building and and uh uh okay let's work and uh let's work out our first Speaker Vivian Vivian Vivian work for ethereum foundation PSE team and she will bring us unique rep uh Universal reputation system let's welcome video yeah hello everyone I'm Vivian from Israel foundation and the privacy and Skilling exploration team and I don't know if you guys have heard about the universe protocol but I'm sure this one will gonna be really different from what you heard about it so you can imagine oh this is the a brand new protocol yeah yeah so I will tell the story about the uni wrap yeah imagine there are a lot of applications in web 2 or web3 and then they have their own reputation or you can say data for example you have followers and GitHub or twitters and linking but they are not related to each other right and oh yeah so the unirp is uh want to solve the problem that if this application can have a standard or like protocol to so that you can show your reputation in a application to B application or even more other applications yeah so one story is that if you are a Airbnb user and you are uh you have you don't have any record in booking.com and then one day if you want to rent a house from booking.com host but the booking.com host doesn't know who you are and because you are lacking reputation in or liking any record in booking.com then uh what what what what is the Alice should do to prove that oh I have such an amount of reputation good reputation in Airbnb yeah the traditional way is that Alice can show a screenshot in Airbnb so that oh I have this amount of living history good reputations in Airbnb but it is easily to be forged yes the screenshot is easily to be forged and then uh so booking.

com host Bob could not uh could not be convinced that oh you have that certain amount of good reputation thing yeah so unirp is trying to solve this problem yeah so what unirp can do is that users can receive reputation or a taxation or data from any application and then the the user can voluntarily uh prove how much data or reputation in certain applications yeah and then user cannot refuse or reject to receive any bad bad data or uh false data or bad reputations yeah so for unirv version one we defined it is a reputation thing so it's only positive reputation and negative reputation and there is a data field we call it gravity so it can store any kind of data and then in version two we just want to only to be more General so we call it data yeah so there are two data fields the first one is summation data field and the second one is the replacement data fields and I will explain this to data fields later yeah so for the unirad protocol we will first Define two actors in This protocol the first one is called a testers so it's like the Airbnb or brookings.com this kind of role so it is not not Anonymous and then it will witness each data transition happens so it will uh it will give the users this kind of data yeah and another role is called users and it is anonymous so the ls and the booking.com host he can remain their privacy in this kind of system yeah so the users can do is that they can receive data from the testers and then prove how much data I have in this system and they can even use this data to do other things yeah so what is the users anonymity comes from is called uh how we give the users the temporary identity is called ipaki so user can use this for example you can Alice can have three epochies in one certain epoch and for example the Apex seven days and then in least seven days the Allies can have three different identity and then imagine that there are five epochies you can see in this system but you cannot link which three uh a parties links to Alice yeah that's how in the universe protocol the user can keep their privacy yeah so what is Apache is computed it's by a hash so it has the Alice identity identity and then the Airbnb so it means uh I'm an Alice and I sign up in Airbnb and then I want to use this ipaki to receive data yeah and the third one is the epochs it will start from zero and then increase by each seven days or something yeah and the last one is called nouns so I we defined the nouns in in circuits yeah so if the whole universe protocol we Define these three nouns so then then the nouns could be only one zero one two yeah so then you can imagine that if I change the nouns or change the epoch then the epocket will be totally different from the other one yeah and then we will introduce how the a tester defined the epoch length like for example seven days then so the Airbnb will create a eoa or smart contract and then he called a tester sign up in unirep Dot Sol and then it Define the epoch lens yeah so like Airbnb and bookit.com can Define their own a Parkland yeah and after that when a tester signs up and then what the whole protocol do is that the user generate a proof to the testers and the attesters will call the unirap contract to do any operations yeah for example the when the user signs up the user will generate a ZK proof to prove that this is my semaphone identity and I want to sign up in Airbnb which is the tester address smart contract address and then the user will also Define all the initial data of itself also by default is all zero but in a in some cases the the tester can also Define how what is the initial data of the user yeah and then the user submit the proof to the tester then the tester will also call the unirv smart contract to update the the contract state yeah so what is update in the small contract it is like a semaphore so it will insert a medical tree leaf in in this state tree we call this day tree to to define the user Side Up in this application and what is its data yeah so the lift is the hash of ID and a tester and data yeah and after the user signs up the how how user can receive a data or attestations from Airbnb it's like uh first one first the user should generate his own EPA key and to make sure this epic is generated correctly it is not a random number we also Force the users to use a epochi ZK proof to prove that the user has already signed up and the nouns is valid and the apoc is hashed correctly yeah and then if I am a Airbnb company I can force the user to generate this epochy before his he rent any house so that we force the users to generate this apaki before doing any action so that after the Alice finished his living and then the airbn another Airbnb host Charlie he submit the review to this Epi key yeah and then the Airbnb will witness whole the whole transaction happens and then Airbnb issues Summit uh transaction called a test so it sent the review to this airport key and then update the unirf smart contract status yeah and what is update in smart contract uh Universal contract uh it is called a part tree structure yeah and it's live it's a party has the current data the data is what the Apache have in this the the total data in this airport key yeah and because I think the structure is quite complete so complicated so maybe you can go to the document to see this uh data structure yeah and then I will introduce the most in interesting part is our data system yeah so in this kind of Airbnb example we can Define the data fields to be uh like the user is good at communication or if he's cleanliness in a in another one another that I feel is called replacement data fields so it can be a string or another data and then it so the some data field the data will sum together in circuits and then the replacement data fields the one will replace by another yeah so the in the communication the three will okay in so in some data fields that all the data will sum together and then we can add another field called count so we can take the average of the previous two data yeah like the communication is three plus four plus five is 12 and then the second data field is the summation is 10 and the count field uh we Define the count field to be if there's one data increased we increase the data field by one so it's always one in the count field yeah so this some data field will only sum together and the replacement data fields we also we give it a timestamp and then the latest one will replace the old uh the previous one yeah so even if the EPA key is uh the third Empire key is larger than the first day party then in the circuits we can still find the latest data which is the the First Data yeah so what Alice can receive is something like this yeah it's just an example each Apache can receive a lot of data a lot of attestations and then it can become the latest final data selecting the uh in the button yeah and how Alice can receive this data uh first one he after the airport and ended the LSU generate a user's day transition proof to prove he owns this Apache and then he owns this data and then change the status in uh in the unirp contract yeah so in the user State transition circuits the first one is that LS should prove I own all these airport keys and then I prove that each airport key has this amount of reputation in the epoch tree so if the data changed uh just a one one one bit or one number the Apache route will will be totally different yeah so in circuits will we will check these things yeah and then if when we get all the data and then we still sum together and replace by the latest one yeah and we remember that we have a state tree to Hash the ls Airbnb and its initial data and then we will update this value by the the data we computed in the previous steps yeah so the new state will be hash of Alice Airbnb and the latest data and we introduced a really another interesting data structure is called history tree because in before we will check oh LS is transition from the second second Epoch so I will check the second impost state tree and second epoch but it is not necessary we can use we can't hash these two data together and create another tree called history tree yeah so I can prove that I transition from from one of the Air Park but not I don't have to specific to say oh I transition from a part two or a part two or three yeah and yeah when the Alice uh update his status and then insert a stage relief in Us in the state tree and it makes the ls can successful translation to the a new hip-hop and then he can use this new data to do to prove that oh I'm a good user in Airbnb yeah listen so the statue is not only for sign up but also for transition yeah that is one of the example that uh how user uh update the state tree yeah but you know you can see the all the data is hashed so no one knows who would sign up and whose transition or something like that yeah and how users can prove data is to prove that he has one live in the state tree and what is the value so the user can prove that the average of communication rate is a more than three and then the living experience is more than 10 and the reviews is good without rebuilding the exact data yeah and then when the ls generate this kind of proof for example to prove that on my communication rate is more than three and then he can submit this proof to the booking.com host and then the host can verify this proof with uh uh the Airbnb verifier but actually this proof could be should be in unirap smart contract but the circuits could be really customized so so the universe smart contract can can almost cannot contain like like many verifiers yeah so the uh the compromised uh the not that better way is to use the Airbnb verifier to verify this proof but uh the host of booking.

com can still check the state tree route in unirp small contract yeah the the host can still check the if the user has signed up or not and then if he received this kind of data in unirp smart contract yeah and I will provide some examples what unirp can do um the first one is I can prove data from web 2 like GitHub and the we can Define the data fields to be increased followers decreased followers increase stars and decreased Stars yeah because the sum data field can only be added together but what if you lose the followers and so we we should Define another field called uh decreased followers and decreased Stars yeah so what I can prove in the system is that I I can prove how the my color current followers is more than 10 and current stars is more than 10 or my username is Vivi engine yeah another example is what we have built before is the anonymous social media yeah and it's like the the previous example that I have received positive positive volts and negative votes and then I can prove oh I at least has this certain amount of positive votes and then in the upper side there is a this is a epic and then I can also Define my username or what I want to yeah for example username in this Anonymous social media if you want to prove Who You Are yeah and uh last example is the C2C service for example shopee in in Taiwan is the C2C trade uh trade buying and selling stuff thing so uh you can know which seller or buyer is good or not yeah and it is one of my the project my teammates working on but uh data's still not uh defined yet yes so it's just an example to show you you can show this scores or data in in this kind of website or service yeah so thank you this is my GitHub and our Twitter account yeah thank you thanks Vivian the amazing talk we have time for one question anyone have questions uh thank you for the great presentation I want to ask about the apoc data model so you mentioned user needs to generate Epoch to receive data station so Apple could be like a one Epoch for one attestation or and you also mentioned like Epoch Hospitality so maybe uh if attestation is not coming to the e-book maybe next day pocket generated so maybe while ebook doesn't have data right so we don't know about the which kind of connection between attestation and the epoch yeah yeah so if the Apache doesn't have any attestations and then we will actually we will emit a nullifier to to to to to the contract that oh this apocade is not used yeah so it is defined in the circuit and smart contract yeah so I want to say is that there's a nullifier to uh to prevent the not used Apple key to oh we show this Epoch is not used and then don't receive any rip data yeah and you said uh yeah one airport key can receive a lot of data in many data like yes yeah one apart key can receive a lot of applications okay so if so so how user Define which Epoch should be used for receiving credential user account have multiple Epoch and one apple can receive multiple data so in this case how system and how user Define which apple key is used for to get this attestation for user how they find a maybe system so so there should be multiple Epoch and uh but one Epoch can get the multiple data so I want to know how system Define which Epoch and which nouns is used to get that credential so the epoch is defined on a smart contract yeah so the in the circuit the apoc will be a public signal and then it will be verified on Smart contract yeah so it is a part one and the circuit should output the airport one and then it verified on Smart contract yeah access a bit difficult for me but uh I attend the workshop so I take more yeah thank you uh I I checked the talks because a bit difficult for me to understand right now so I need to check dogs so thank you oh sorry I cannot hear you but maybe you can talk later to jump okay uh before we end this section one information for you guys if you want to if you're interested in uni wrap and want to dip dying into it Vivian has a workshop in at 2PM in building I yeah so if you are interested in in this topic you can find her there and let's let's thanks events talk again [Applause] okay our next speaker is Chris Chris from ptq btq is a global content technology company focused on securing Mission critical Networks he will bring us the future of ZK

Automatic transcript — names and jargon may be misspelled.