Decentralizing Transaction Abstraction for On Chain Privacy by Lakshman Sankar (Devcon5)
Devcon·Fri, Oct 9, 2020, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/5/decentralizing-transaction-abstraction-for-on-chain-privacy Transaction abstraction (or meta transactions, if you prefer) isn't a new idea in Ethereum. The idea, roughly, is that users sometimes want a 3rd party, called relayers, to pay gas for their transactions for them. To support on-chain privacy apps like the MicroMix mixer, we've designed a decentralized transaction abstraction system with 2 particularly novel ideas:a transaction simulation engine that allows anyone to run a relayer with minimal configurationa trustless reputation/spam-prevention system for relayers, that we call the 'burn registry' In this talk, I'll present the design space of transaction abstraction and some of the crypto-economic challenges in building such a systempresent the solution we've built for MicroMix and finally, share software that you can run today to be a relayer on our network. Speaker(s): Lakshman Sankar Skill level: intermediate Track: Privacy Keywords: technical Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 5 was held in Osaka, Japan on Oct 8 - 11, 2019. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
[Applause] so I'm electron and I'm going to be talking about some work or the accreditation sort of like it's not particularly glamorous or quite as kinda necessary work to get like sq it like making sure we have a kind of decentralized Larry talked a little bit about about the problem probably what spent too much on that assignment they are familiar but and I'm going to talk about what we know so far and what the next steps are okay so this is like a parody created a background I'm actually really excited about this in particular because it's one of those things that is pretty obviously different on change which is exactly my option like in privacy in particular you really don't want people to see what you're doing and so trusting someone to mix your plans like trusting a soccer ball or some Tyga makes for a completely different user experience as something that is completely trust us and you're like buying a comic book site so just just real quick overview how these things work you put money into the contract and then say oh I see you are a DC and the wife who I am and then later a crime from another address in jeopardy proof as their knowledge group that says you are one of those people about saying that one that entitles you to some of that with you and so to someone looking you know some of you might get like a chance or so quick that look against in the network and kind of analyze like whose money is whose baby for $10,000 so every operative so realign the layers at all or even necessary so one of the main things that I've heard that people want to do is happening for it is funding addresses that are not associated with any of the addresses in current you know with you so you can like interacted Emily so in this case let's say a is long addressed a perhaps how they're dressed on a fun date crime and you put money in a crime that has to withdraw money with this they're not proof but I they have therapy and so that is that's what really come in says this also isn't like any like it's like many many projects apply with many transactions transactions traction the idea is for certain things you might want a third party to run transaction tree so this is what that you kind of like transaction boat looks like so a lot of my name the contract presents a sign transaction BRE layer and then once a transaction on the graph and then all the course that transaction when it comes out to gate crime and not picture but some of that money this is kind of the case I try to make because that's the central relayer defeats part of the purpose of the trustus mixer and a lot of the projects all of implementers some of that here right now are obviously shipping with the singles then for mixer reaches I think you know when you're shipping them you kind of run a ship like the parts that you really want to test initially so it makes sense maybe not to do like a fully featured they had lunch but an act like a single a single real eros that's to problem someone from a user perspective if you know that the company running the relay is the same as their company kind of like serving your client code or interacting for the mixer there's no way for you to know that there isn't some communication going on there or even more kind of variously than like the relay or some communication going on behind the scenes like from deep web service certain client goes are you later and if there's like some pattern and how like the time between deposit and withdrawal like in the client goes and the relay might go figure out who you are another thing is obviously if you have a single make sure this censorship issues with artificially high fees so ideally we would have many related survey so that is what we're trying to solve a surrogate it's we're currently in the front in the process of integrating with one mixer we're looking integrated with everyone else so it's like pretty I was a pretty alpha stage but the ideas are that like anyone like you or I could just run like a docker container that isn't really there and you can really be a part of this network any existing mixer doesn't need to change their contracts any way to use this and just has to change the client code like change literally install NPM package a change on the fly everywhere so this is this part of I'll kind of go over the main parts of what this is my I might try to actually speed through this little it's a little little technical and and we've more time for questions well this is kind of like analog the previous diagram we looked at where you've got like someone is trying to interact with the mixer you know makes a contradictory layer and we're adding these four components the really deep parts are the clients which is like an NPM package they put in a wallet or mixer client code the daemon which is just like a kind of the server of the real heir essentially and then two more contracts enter necessary what sort of service and discovery mechanism for real layers as well as like transaction for in these we have like our first we've kind of been doing some research into the right way to do reputation particular and so we have like a first elimination bisetta the for also talking with the gas station network to see if anybody down and they may actually is that filling filling that world so first we've got clients so some clients main role is find relate or some community reputation contractor and so like let's say this is just a client this is a user so this is also where like would say the wallet code or the mixer client code in your browser on your mobile and so through our library it talks it figures out where your layers are and it allows me submits transactions to those doors and this is like structured pretty simply together everybody can see is just like and then can package and right now I have an example of getting the best reader idea perfect dress or something but that's designed to be very very simple so that says the damage so really what we're going to share like a reference sort of API that this should expose to properly communicate the client we're also releasing like a representation of this that does so much fancy stuff recognize extra stimulation but this is something that technically like anyone can create that custom customer drop you know if if this becomes like a highlight you wanna create like really high performance then use that look at the network and make sure you're not getting power and stuff like that right now we do some very basic like transact also so basically what happens in the current version this code is for any transaction it's signaling that transaction sees how how much running that transaction changes your own be felt and it looks like a beyond a certain amount basically lights of it and I it's super simple this if your doctor installed it's literally turning this designs of that like anyone could run it would be really cool alike like random people run their layers oh yeah this is this is these are the two critical pieces for the spec there is a mother there are some other there's father ground routes but basically like for my gated like to tell clients new charges okay and so finally this last fluffy switch or word of everything right so the idea here that there's the reason we wanted to start we want to come like great this set of abstractions that talk about something constants for this it's nice to have like trust this discovery like some some like understood mechanism of you later discovery and but you know this is something we can play with order contract very simple and just literally force for its application practice and the reputation contracts yeah I can talk I'd like about this I don't think I will right now if you want to talk about it but there's a youth research post I published a very white hat on this and just Google or a really just ready research we are thinking there broadly it's like you know the more either you find in service of life in service of relaying transactions maybe the higher their reputation is but there's a lot of parameters so finally the next steps are you know a big bark like what I'm trying to do is not talk to a bunch of major changes talk to wall teams see how we can integrate this into existing closed oh the gas station networks cool so that's man Twitter at the top and that is where the repo is for sir again probably not time for questions from friends waiting in my fur like a relay or many partners yes I can do best you design how you yeah so he as everywhere and if you're returning to London then the front-runner is [Music] there's sort of a trade-off between something about a lot I think the answer is you expect that to factor into the market it's the first - sorry guys we got another gash so then we on the first trial and emotionally then he doesn't run by the way so that's why we look ok so that's why he keeps not improve oh I see well like the so I didn't really go into detail this but the address of the recipient goodness he goes and it goes in the creek yeah really yes so because the a three-layer is one of you puts Narvik sorry okay yeah we just you mentioned you can't you can't you can you literally can't from the same collection so but that means you have to design this one attracting away [Music] prevent runners because of that room you have to tell the address that's right and that can exist in the property or like the thing that surely yeah that's right so if I may every layer and now like I say all will relate your transaction but I don't yeah so this is there's there's actually another interesting trade-off here so like in design you can find logic you can you can either broadcast to like every layer and then three layers kind of like our twist or you can broadcast to one real layer and the clients kind of at risk and there's a spectrum of life choices and and how you choose to kind of like take your broadcast strategy essentially retry store energy that lie along that spectrum we are opting towards into some limit this is a new discussion to protect the client experience so the client logic by default will try a ton of real layers and like retry so like there's more filler risk that real layers get screwed but we'd rather be competing effectively right with its parts if it can move it can rather push the competition to realize anything a little more expensive to them that make the client experience horse but like the really the way you completely solve the problem is just like seven to everyone yes so that will factor into yes it so yeah and there's a trade-off here and fundamentally what happens there that's just factors and select the piece it's like another possible so once it's - its kind of yeah yeah it's it's it's paying for not having away Jason right that's the same problem so talk to them as well like proposal that there might be they have some sort of Mantle's and they were you air scared and I'm also they like don't execute the same but then the obvious well it says the way - it away don't realize on these yeah the very condition does not share your stuff yeah so if you say that brochure go he is the dealer and broadcast the transaction is something to do to all three layers so how is this ninja learning it's every layer they can have a different feel don't listen to the only one the good waiter also excuse my as a customer I mean every layer chart is a different and they choose which video images they woman but then if I just brought a stranded by the am I expecting like anything or well only the lowest final or yeah else might arrange yeah there's like a bunch like you might say there's some some credit you can define a nor'easter success I'm driving and depending on kind of like how restrictive it is like how much cheap and how much you make changes like I feel yes other questions oh how do you do loose track reputation yeah that's really tricky not obvious for an answer one one one mechanism is it just kind of like have like the kind of naive mechanism that we've been thinking about sort of is just Oh but obviously that only distracts the amount of the membership many times we use a reputation as the truth yeah but follow them like they are like newlyweds everywhere yeah [Music] there is a tendency yeah I guess I guess one thing you could do so right now this is certainly a challenge you've been around for a long time there's a higher chance to discover the future yeah but the one thing that you can do is have like some ability to kind of like react on your might be like you can use everywhere repetition we can isn't but enough like every request for your petition points to choose anywhere Brendan Samsung yet for Santa client the others basically the beach around that's how they sign up next [Music] exactly it's in this line yes the idea sander anything else [Music] I'm not sure what's that memory was but there was like a reputation contract site which makes daily yeah yeah so yeah so again it's purposes this is I kind of went over these a little quickly partially because I have our initial implementation but this that works like swapping out or maybe like boxing some other system festering reputation by a gas station summer well we complemented is there's like a portion of each relay that you can chew the relay race horse of each relay or meet with the relationships and the reputations just a function about the number of times that related and the most important question is in production rate almost production spare cuts of course by the end of the month I mean we're we're kind of like working together everyone's sending money yeah like like when you send either die or whatever wallets just default bring your sending which is that the anonymity set is defined by a comma the reality is like if you're sending like st. Anthony your product is probably not going to ever be a part and so there's going to be some my guess is there going to be something like multimodal distribution around like which specific like anime be sets are like really popular no I mean the way it is like right now the way that say tornado cache works is that they have a specific use case which is you're trying to disconnect the outputs from the inputs so therefore you have to have like this enforce same amount on on both sides you can't together but if you look at say the Z cache block chain where they have just a shielded pool that anybody can send any amount into and then send that any not how you know you're you're a nonentity set beyond everybody who's ever sent on the interpol and so they don't they don't enforce like you have to send a specific amount and a specific amount so people can set ten thousand even into this yield pool and then send any fraction of that ten thousand team within the show and it's all being is if they decide to be the poem that they might need to think about yeah what their amount that they're sending out yeah I think the show loophole approach actually this is what like this is a probably like you I might fall is doing like they're kind of great like you know who knows what they're are going to do with it trying to create some standards around a shitty little contract I think that is useful for like I almost think of that as like slightly separate sectors of markets and mixers by big open question there and I don't have like an apostille yes yes like really really large how's that effect is there a combination that scales up worse than market you can have all the potions that amount of training for suspense like washing fuel in one show yeah yeah so yeah that's a lot but it's enough segmentation that mighty small around deception okay so there's a trade-off there Tony to kind of like Esther my opinion upon your question I think it's going to largely be people who want to do small amounts to interact with contracts for mattresses that are out there so III think it's like small amount Smith I don't think but maybe people are betting in a controversial longer market or exactly setting up but voting in a concert or the hours write down any things that think about texting back who asks like you want RSVP but [Music] there was like this is the other holdings from the that all of your answers one about that is there a reason why you could be a matter of like breaking the link between kyc is jean-denis refers to the wall yeah that's a reality these days yeah this this you know wasabi has - wasabi segments based on the amount they will tell you how we're going to get up into a point one chumps looks like I might have time to hold up [Applause]
Automatic transcript — names and jargon may be misspelled.