Layer 1 Privacy on Ethereum: Minting Confidential Synthetics - Evangelos Souliotis
Ethereum Denver·Sun, Oct 9, 2022, 12:00 AM
Transcript
okay uh thanks for coming guys uh my name is ange i'm a community leader off shift um and today i'm going to do a quick run through of version 1.2 of the offshift pilot uh the verifier is live on the gearley testnet um i guess we'll get started here a little feedback okay so the layout is in these five steps it's really three steps but okay but we put it out to five here so uh first step we generate the keys then we generate the peterson commitment corresponding to the amount of test xt4 deposit we execute the deposit and assign the peterson commitment to uh the address of the depositor uh then we're gonna send we're gonna transfer the peter's commitment uh from one user to another so we're gonna spend the commitment send it to a second user and then from the second user's private key wallet we're gonna withdraw we're going to claim the uh the peter's commitment and withdraw the xft tokens uh corresponding to it so on the first step to deposit the test xft and assign a peterson commitment to the depositor we do the following five steps we generate the depositors public and private keys we execute our schnorr single signature generate the peterson commitment and then we prove and deposit the tokens so uh the public and private keys the payload looks like this the ec value and the integer for the private key then we use those those keys to generate the snore or single signature here's the schematic of the generation of the generation and the verification of the schnorr single signature on unchained after this uh the signature is completed we generate the peterson commitment corresponding to the amount of tests uh test xft to be deposited and then here's uh here's the schematic talking about the peterson commitment scheme uh and then we uh we approve the tokens for deposit and execute the deposit and just because i don't trust the internet connection here i'm just going to run the previous video but this is live the the i'll show you guys the github link you can follow along as well so this is what the deposit looks like when you execute it on chain any sound no commitment we've approved the tokens for deposit all we've got left here is to make deposit let's go here's our transaction hash let's have a look uh the suspense and there we have it in this step we've deposited our test xft token into the contract and in return our depositing address has been assigned a peterson commitment corresponding to the amount of xft deposit okay let's escape here so once we've deposited that test xft and assigned the peterson commitment to our depositors uh ethereum address we can now transfer this commitment from one user to the next and this is the one of the more involved processes in this uh in this pilot so there's seven steps there's the public and private key generation for the recipient the aggregation of the public keys for the schnorr multi signature the generation of the ri values to be used in the multi-sig the calculating the common r value between each r i generated uh partial signature generation and then aggregating those partial signatures and then executing the transfer on chain so just like before user two needs to generate a public and private key to be able to withdraw and to sign the schnorr second signature then we aggregate the public keys according to these uh these equations here then we generate the uh the ri values for the snore multisig for each participant after that we aggregate the for the common r value between the uh the ris we execute the partial signatures to be aggregated in the short multi-sig then we aggregate those those partial signatures and then at the end we execute the transfer to be verified on chain and as as mentioned before it's a pretty involved process so public keys go in here we calculate uh the ri pairs are calculated by each participant sent to the leader calculate the common are sent back to each participant calculate each uh partial signature and send to the consent to the leader and then the leader aggregates the signatures to be verified on chain so when we execute that it looks the transaction looks something like this now that we've completed all the necessary steps to assign a short multi-signature between user one and user two we're ready to transfer our peterson commitment corresponding to our deposit xft from user one to user two so here we go we're gonna run the transfer now here's our transaction hash and the transfer is a success in this step we've transferred the shield's commitment from user one to user two in our final step we're going to use user two's private key wallet to withdraw the xft okay and uh so part of the part of the machinery underneath is that the original commitment generated by user one was spent and then a new a new commitment was generated under user two's uh ethereum address so now now that user two has a new unspent commitment we're gonna make a normal schnorr single signature and execute a withdrawal using the the private key generated for user two so um since we already generated the uh let me full screen here sorry so since we've already generated the keys for user two uh the user two needs to execute a schnorr single signature to show that that user two is the rightful owner of this peterson commitment um and then all you need to do after that is just to send the short signal signature to the chain to the verifier on chain and then the if assuming that the signature is correct and that user two is the right flow and over the commitment the withdrawal will be executed show it here now that we've deposited test xft and generator peterson commitment we've transferred said peterson commitment from user one to user two it's time to withdraw the test xft to user2 is private key wallet and withdrawal is a success so um and that's that's the three steps to the pilot um but i should mention that in this version of the pilot there is a limitation that uh if you're going to be depositing a certain amount of test xft and transferring it to a user you're going to have to withdraw right away right now the team and zokiya are working on making logic 2 combine commitments but in this version of the pilot uh the commitments won't uh they won't combine themselves uh you're gonna have to withdraw right when you transfer um so now that i've shown the process uh i can field a few questions before i go on to the bounty any questions okay uh we'll move on to the bounty then okay so uh off shift is a meta sponsor of ethereum denver which means that the maximum allocation that we can give for the bounty is fifteen thousand um so we split it between in person and online uh uh seventy five hundred each and it's going to be winner take all so uh the end percy in person bounty ends this sunday and it's gonna be we're gonna be judging it uh at the conclusion of the conference so like i said before it's winner take all so each each selected winner is going to win 7 500. so uh the way to win the 7 500 is that uh so participants will be rewarded for the responsible disclosure of any strategies that successfully compromise the integrity of auschwitz's mint and burn mechanism or the if they compromise the price parity of its private zk assets or manipulate the price of its native token xft so uh just to explain what that means uh xft is going to be using a burn-in mechanism with a one-to-one collateralization ratio for these uh private confidential synthetics um and the goal is to find uh to make a schematic or a diagram or any logic to show how how this process could be broken either to decouple the peg uh for the the synthetic assets or to manipulate the price of xft so the submission is going to have to be in the form of a flowchart diagram or any logic based visual visual to illustrate how one can systematically manipulate this bent and burn process to either decouple the peg or to mint a large amount of tokens or to to basically break the one-to-one collaterization and uh participants are also encouraged to submit any any ideas to try to protect the protocol from this type of manipulation so uh the way we're gonna judge this is that we're gonna use two criteria the severity uh so the degree to which the exploit compromises the integrity of the platform and the visualization how effectively the flowchart diagram or the other visual would illustrate how xft or zk assets can be systematically manipulated on the off shift platform um and to run so you guys saw the uh the code that i was running there i wrote a little guide here uh github.com xyz it's a it's a walkthrough of um basically the process that i did it and i gave some uh some sample input jsons to give us payloads to these functions um and for more information or if you want to get in touch you can find us on offshift.io telegram offshift xft and if you want and to download the docker hub sorry the docker image to to run the pilot you go to hub.
docker.com off shift xft off shift and it's under the tag v 1.2 and uh and that's it guys all right thanks for coming appreciate it we do have some time for a question or two if anybody has anything to ask am i on
Automatic transcript — names and jargon may be misspelled.