ETHParis: Meta Transactions and Burner Wallets with Austin Griffith
ETHGlobal·Wed, Oct 9, 2019, 12:00 AM
Speaker
ETHParis workshop: Meta Transactions and Burner Wallets. Austin Griffith explains meta transactions and burner wallets for developers and hackers attending ETHParis. ETHParis took place in Paris, France, as part of the ETHGlobal series of ethereum focused hackathons. For more information go to ethglobal.co March 9, 2019 at the coding school 42 in Paris, France
Transcript
going might as well start right this is a live stream or anything either right that's in this room I can cuss all I won't go oh it is oh really so it'll be like online or something okay at some point either cool word word okay yeah I think I'm gonna get started huh so hi I'm Austin Griffith the director of research at get coin here at Paris this is Gus my son with the bucket on his head just sitting there sadly I I was trying to come up with something funny about these two pictures my wife just sends me this one so this was like him like yesterday oh but this is kind of like what what UX is like in the blockchain space so that's the best segue I can make there so about a year and a half ago I got started in theory 'im and just fell in love and the first thing that I did you know I wasn't super deep into the space so I couldn't contribute like like a lot of other people in the space but I could make kind of my version of art so I kind of made this his hand-painted blockchain game where you had tokens and the tokens were craftable and you we I learned how to do commit reveal randomness and deployed ipfs and all sorts of really fun stuff but what I realized was the UX was super clunky and the onboarding was really tough basically to get anybody in you guys know the drill you got a have II got a have meta mask you got to do all the stuff that no one wants to do and so I didn't have any users so like I was kind of standing in front of it but it'll work so then I made another game I made pogs on the blockchain again like commit reveal randomness collectibles was or like er c7 21s uh again really clunky UX and I realized that we needed to do better with onboarding so I started building a bunch of dev tools to make building better and trying to make packages that could make these a little less web 3.0 and a little more 2.0 in this nifty hacks started realizing that it's okay to have a little bit of centralization and it's okay to it's important that if someone lands on your game you need to do a good job of reading from in fira and delivering something even even if they can't write to the chain they should at least be able to read from the chain so then I discovered meta transactions and how to basically abstract some of that stuff away so meta transactions you've probably heard a lot here and around are helping us abstract some of that stuff by basically the user who just has a key pair it's really easy to generate a key pair really hard to get ease a user has a key pair they can sign a transaction that transaction can then go to some kind of incentivized relay network that would deliver that on chain and they pay the gas and then they usually get rewarded in some way and then and I learned I think the guy who taught me that is in this room mr. Alex man isn't I learned from him about a lot of that stuff and then I kind of went off on a tangent with these meta transactions and we made subscriptions or the leat standard one 337 and basically it's like subscriptions on the blockchain so you sign a meta transaction and instead of having replay protection with a nonce the nonce is actually purposefully replayable so basically you sign one transaction and you ship it to a relay network and then that will replay forever and that's what's powering get coin grants right now so you can get on to get coin grants and you can pick out some of these really great projects that need funding and you can say I will give them ten dollars of funding a month and it will just run forever and then what you do is you control that amount of funding with the approved function in the ERC 20 standard so you just say give them ten dollars a month and a maximum of 100 and you can kind of adjust that along the way then I got back to the the UX and the onboarding stuff that I'm trying to attack and thought let's quit using a bouncer proxy where we have this middle proxy let's actually just start really advocating the developers plug I should message signing right into your contracts so instead of having this bouncer proxy that works kind of like an identity let's let's make sure that everyone knows that it's super easy to just respect signed messages in your contracts so if you're redeploying a new fleet of contracts just use this easy recover get the signer and use the signer instead of the message sender somehow you'll have to incentivize of course sometimes you run your own real ayres at first but the the mainstream adoption stuff and Alex just talked about all this stuff much more eloquently than I can but you know you want these ephemeral accounts to try to abstract away from meta masks if someone lands on the page just give them a count it takes a millisecond to generate use meta transactions to kind of abstract away they eat and the gas just have them sign things and then you put it on chain and it's still cryptographically backed but you pay for it ENS obviously get rid of those big hashes just give them a name it's a lot easier to talk talk about a name austin griffith instead of 0x to do ye optimistic UI is another one that's kind of like a little bit more subjective but you you know when someone's gonna go through probably and you can kind of work around that just make your UX really good I really like the analogy you had of the clock that was so dope okay so I built this like nuns upon a time and and we did this live demo in in Prague for Def Con where it was a storytelling app where people could just write lines of the story but no one had to have eath basically I was running a relay er and paying for people's gas it's kind of a funny story like it didn't work I was like live coding it and someone in the crowd was live coding along with me and I got to the end and got to the magic moment where you submit your your line of text and it goes to the blockchain and you don't pay the gas and it broke and it didn't work and the dude and the crowd was like mine works and so I had him come up and I sat down and he demoed the rest of the app and it worked it was great and then kind of this this kind of idea of emerging economies and we kind of don't need blockchain or decentralization in the perfect world so kind of like where where in the world could actually use decentralization and actually really need it and maybe we do here and that's talk we can have over beers sometime but I discovered Igor's ex tie network and the the TLDR there is you've got it's basically an exact copy of etherium but you bridged I in so you've got five second block times all the time so every transaction always takes five seconds you've got super low fees basically it's like point zero zero zero zero zero $1 to send a transaction it's like you can send hundreds of transactions for a penny and then it's pegged to die so the cognitive overhead there is very low right you don't need to like my mom can know what one x dye is because it's one dollar and that's a lot easier to understand same thing alex is talking about just show them one dollar it's a lot easier for anybody to understand and so we made this wallet on top of that X dye network that holds your private key and local storage and I demoed it at Def Con and we were just kind of like sending money around and I realized it like oh this might actually work we could we could actually use this so then we started talking about eath Denver and the food trucks and we realized that we could probably do something like we've never done in crypto before and have like thousands of people using a wallet in their own without the the onboarding of having to download something or or the onboarding of having to buy eath and stuff so I started to do the cypherpunks speakeasies which is I would print a paper wallet like this on the inside is private key and that is pre seeded with some tokens so so you walk in the door and I hand you a private key you shoot that with just your your phone's camera and you have a wallet ready to go that was basically onboarding like it was it was like 10 seconds and someone would walk in the door and they would have money on a wallet ready to go they would walk up to the bar and scan the beer that they wanted and then the bartender this is the bartender's thing here and so the bartender would see that they were buying the beers here and they would get a beer and it was that easy and it worked well you can see this is kind of a good way to explain kind of the network situation so you can you can send eath here and you can move eath into died here and this is powered by unis and then you can move your dye into X dye here and this is powered by the POA bridge and then you can move your X dye and to burn which was the token of the event and this is just kind of like wrapping ether so it's just like rapt ether so you could go you know all the way from your bank account in send wire and eath all the way north to burn and then all the way back out at the end of the night to get your money off that hot burner wallet so then we did it live at ethan ver and it works pretty rad so the the TLDR there is we sold four thousand four hundred and five meals and the the food trucks off ramped about 40k through send wire so they they were paid and die at the end of each night the food truck would off ramp and they'd get died and they're in their bank account and the whole event thanks to X dye cost about 20 cents to run so total transaction fees 20 cents and and the the experience was smooth like sakes the experience was smooth the onboarding is smooth you can see this this is basically the process of seeding a wallet right here so this is crypto onboarding with with the burner wallet it's you shoot a private key and this dude like tweeted his private key which is kind of funny but but that happens it's sort of like one thing we're learning is we need to do a really good job explaining like what's going on here cuz a lot of people think they scan it and then it's off that key and we're kind of chatting about this on Twitter today it's like well I can give you a claim link but then if you lose it you can't get it back but we'll find a better solution I bet Alex well tweeted me later today with a better one in fact there you can learn more about eath denver in the burner wallet just just google it up and so for the burner wallet what's next and what are we attacking we're sort of looking at these three different a pox basically we we've proven that we can kind of do a local coin at a conference we're gonna try to make that super easy for other conferences and other meetups to do the same thing kind of like a portal site that lets you just either either you just kind of do it on your on your own you can just kind of get there's a there's a paper wallet repo you can print these things super easy there's like a generate button and a print button and a generate button I got really good at folding these things right I was like racing my printer to generate print fold fold fold generate print so there's a paper wallet repo so you can do this you can run all this stuff yourself or we're gonna have kind of this portal where you can white label the wallet itself obviously all of this is open source and you know free to use and bug me about it if you want to do anything because I'm happy to help but you can with that portal set up your own event set up your own white labelled wallet set up your own rules within the contract we can help you deploy your own contract that's basically epoch one epoch two is like this burner provider idea so with my research I'm always looking at how we get better adoption and how we get better onboarding and so what I'm thinking is once everybody has 10 cents in their pocket or whatever on a burner it's going to be really easy to put money into an app so I think what we want to do next is basically if you land on a game like galley ass in the beginning slides and you don't have meta mask injected let's just slide down some kind of burner wallet that's this your wallet within that app and shoot it five cents or whatever you need to run gas on a galley asset and just basically put that thing on autopilot and go so we can take any legacy DAP which is a weird thing to say cuz this is like new technology but we can take a legacy DAP and we could wrap it with a with a burner wallet and then you can fund that burner wallet and set specific rules in it like don't ever ask me anything just spend it until it's gone right and so that's kind of like that's kind of like the middle epoch and then the last epoch is just like long-term adoption let's just let's get this thing like looking great working great working fast translated to every language we can and just get it into all those markets around the world that can use this so since we are kind of at the top of the funnel for Berner wallets like my mom can use a burner wallet my mom can't use a lot of this other technology so when my mom does have a burner wallet and she starts using it what kind of like education and gamification can we build into it to help her out so we talked about educating with seat phrases I'll get to a really funny way to do seat phrases that I came from Alex and a couple other people obviously E&S we could we could set you up so so the gamification within the burner wallet could be really interesting we could say and and who knows if people want to actually attach a name to a burner wallet that kind of is a weird like burner is it seems like maybe you're buying drugs in Baltimore or something like that but that's not exactly what they're for right so if you if you wanted to put an en S on your wallet this could be like you know this is my white phone and this is my black phone or whatever like that right you could just actually set up the ENS like a like a instead of having the big hash we could replace it was with a nice name basically soldier oh man Milty whoops I think that was misspelled at eat Paris - or eat Sisi - and I never changed it so so yeah so there's these levels of upgrading where we can upgrade you to eeeh ENS we can upgrade you to a seed phrase we can upgrade you to better social recovery and then eventually maybe even a wallet download just to slowly educate users into the space and how we how we kind of like educate about so here's the emoji seed phrase thing so we actually tweeted this picture and got a ton of shade on Twitter so maybe six emojis is not not enough entropy for a seed phrase but maybe eight is maybe ten is Alex did you did more of like a grid right is that what it is cool yeah so I actually I can probably kind of demo this so I actually have a seat phrase with two emojis it's alligator fist bump so you can it's a trick so you have to basically start typing this thing this little button hides it so you have to start typing well we'll do a better job with this this is in the Advanced section obviously my mom's not gonna jump into the Advanced section so we're gonna have to do the education better and make sure she knows like how to do it like slide something down and say okay you've been using the bernam wallet for a while you have 40 dollars in here maybe let's protect it with a seed phrase and gosh I don't want to have to teach my mom about entropy to figure something out there it's definitely something we're talking about but this is not enough entropy mom don't use alligator fist-bump but you you can do that in the Advanced section and it brings up a wallet with five dollars in it and now I just totally told everyone on the internet that and there's a nice collectible there for anybody who finds it first and yeah it's a hand-painted Godzilla collectible and alec alligator fist-bump so let's go back to this and this is also another idea along with burner provider we're we're thinking we can do sign-in with burn or two kind of like this Moro authy kind of flow where if you have a burner wallet within some kind of browser some other external third-party site then we just we just basically made a die wallet that uses the burner as like an API and so the burner basically just just gets accessed and has as the site has the burner sign for it so you can basically say okay I what I would like to sign this transaction and you can pass it to the burner and the burner presents it and then lets you say okay yes I do want to do that and I think that was sign in and then the second one is a send that my buddy Brian Ethier made this he's been working for me for like a month for free so I got to get this guy paid but he just sent me this like two days ago and I was like all right I gotta throw this in my slides but it's like Oh auth but with the burner wallet the next thing is wire integration we actually have that on stage right now if you go to s dot X dot IO probably probably don't want to do that but this I'm the point is it's going to be very soon it's going to be deployed to production so you will be able to go to the exchange I almost did it before the talk but I was like I'm not gonna employ that right now but so here is that exchange we talked about earlier let me slide that over so you can go from eath to die to X die right but if you want to come in from your bank account this this is gonna be really good for onboarding basically you pull up you pull out your phone you type in X dot IO and you have wallet then you somehow and I don't know if we're gonna do it on the front page if you don't have any money or something but basically you can slide from five to twenty five dollars you can just hit by and it's gonna bring up a widget that lets you type in all your information I would do a demo that would be live but then I would totally just Doc's myself so I'm not going to type in my phone number date of birth in here and then debit card but that's basically the input you you put in enough kyc that send wire is happy you put in your debit card and you hit purchase and within a traditional aetherium transaction time you'll have money here and then you'll have to move it north into x died that's obviously not the best ux but we are working on these other solutions that my thought right now is that we deploy a contract 2x die and a contract to aetherium at the same address and we drop money and we tell tell wire that that's our offloading address so then wire hits that contract that contract forces it into the bridge and the bridge sends it to that same address on x died and then that contract sends it to your burner i have like a weird little rudder going on there Igor's giving it one of these well so you've got to tell why or you basically have to give wire and address in aetherium to send the eath to right and you can't give it the bridge because then they're going to send it back to that address yeah that's a much better answer yeah I'm the UX guy he's a technical guy okay so how many people in here have a burner wallet pretty good pretty good about half and half maybe all right someone who doesn't have a burner wallet we're gonna do some onboarding here so go ahead and pull out your phone especially if it's an iPhone it's a lot easier some kind of QR code reader Alex don't do it I see you pull it on don't steal it don't see you doing this okay so here's what i'ma do I'm gonna set up a link and then a role just like a dollar into this link and so a QR code is gonna pop up so someone without a burner wallet should be able to scan that and get a dollar who did it who did it who did it America you already have one don't you you thief did you get it did come through it takes a while so loading this is this is why I'm trying to get yeah yeah it'll tell you you got it up there all right you got a dollar so that it was that easy to onboard you to the burner wallet that's the key here let's let's do a couple more just because I think I have like five minutes is that right oh no so it works even better if you have the wall before because you can pay the gas but there's there's a special trick rolled into this where basically this is going to take you to the wallet generate you a wallet but then you don't have any gas to go claim this right so this is money locked up in a contract but you need gas to claim that money so what we do is send it to a relay network and not just any relay we're using the GSN it's like a decentralized relay network and it would there's a lot more talks on that but basically this uses a decentralized relay network to claim this without paying gas so you claim money from a smart contract without having to pay any gas though the relay I play I pay the gas right or whoever the relay is gets paid a little bit to do it and then they get paid for doing that yeah yeah if no one paid the gas we'd be in trouble here's another dollar if anybody wants to get in on it so yeah used your I see a lot of familiar faces claiming codes out this is this is supposed to be for onboarding dollar by dollar all right here goes another one so someone who doesn't have a burner should get this but basically this is how easy it is to on board someone you can pull out your phone you can wrap some money up in a QR code you can put it out there someone just takes their camera as if they're gonna take a picture they shoot that and they have the dollar it's it's the key is it's just super easy to use you can send money in five seconds I'm gonna send you a collectible Peter do it do it so so let's do that right now to you so we have collectibles so you I don't want to get too close to that mic or that speaker okay so you hit receive and I hit Send so I have a ton of collectibles of mine so it takes a little bit longer to load bad you axe there we go okay so I'm gonna send him about this mountain goat right here this fine mountain goat collectible ooh so this is actually my digital business card to you click on it it takes you to my website so I hit scan he shows me his receive code I hit Send and then yes sure your screen there it'll bright there you have no reload or anything yeah that's yeah ER see 720 ones on X day I think that's it any questions okay reloads okay it's local storage but like different browser different machine it's not gonna save through basically it's just there it's it's ephemeral it's analogous to cache right like you throw ten bucks in your pocket you go out for the night like it sucks if you lose that ten dollars but that's why you don't have thousands of dollars in your pocket okay so basically yeah so check this out well I don't want to open it up I would Docs myself again if you go to your meta mask and you put it on dye dot POA then you can have a good solid like your private key is in meta mask not in local storage so basically you go out for the night and you split a cab with a buddy and he shoots you 15 dollars of X die to pay you back you've got that just in local storage you go home then you pull up your laptop you go you have meta mask and everything cold there right and you just pull up X die to i/o there and just shoot it to that so it's still quick to meta mask but it's just a lot more secure but to speak even more to that we're working on a like a native app that might make this a little bit better but the problem I have with native apps is it takes them freaking forever to iterate on anything and maybe since a wallet is simple we shouldn't be worrying about iterating so much but right now that we're iterating just to make the UX solid like we saw a lot of work to do on the burner to make it work the way I wanted to just nice and smooth and simple but what we'd like to do is create a native app that has like a webview that lets us iterate quickly on the design but then inject the private key and inject the QR code you usability stuff so you still have an app that's saved but we can iterate quick on the design and stuff yep right right all right so so we did have we did have thousands of people using it at ease Denver and it didn't go down but maybe you are could speak to that a little bit more you guys might have to have a couple beers over that one too so he said rock-solid isn't good enough in the same sentence which I like yeah sure and that's a cool thing about yep with next I being so cheap I can be deploying contracts and the user doesn't even know it right like that that rudder thing I was talking about with the on ramping I could I could totally deploy like some kind of social record every multi-sig without this do it even so yes we can totally do that same thing with sending links so this link that the link that you're getting here comes another dollar the link that you're getting here is actually just a link that I could send to anyone I can send it in WeChat and they're gonna hit it it's gonna take them to a page that's gonna generate a wallet that's gonna do everything yeah so so you can send stuff through links you can lock stuff up in contracts it's a good idea and it's something that we're we're trying to play around it to figure out how to best do it but definitely like recovery is a big issue I think that's probably we got got to be quick that you had a civil protection it's funny talking civil protection it there's no like big picture best way to solve the civil protection it comes down to the app itself like when we talk about making get coin gasless we're lucky in the sense of get coin because we've got someone's github token and that github token is like valid and we can use that for civil protection the I made a game era made a sound app called ether jamjam where like I use their Spotify account for civil protection thanks yeah sure sure like rate-limiting almost yeah good thank you guys [Applause]
Automatic transcript — names and jargon may be misspelled.