Better UX through meta transactions

ETHCC 3 · March 2020 · 22:56

Alex Van De Sande discusses improving user experience through meta-transactions.

Speakers

Topics

From ETHCC 3, hosted by Ethereum France.

Transcript

mash up to mood is it working can you hear me on the back it's fine okay well first of all thanks for coming all the way here and risking a global pandemic just to see my talk I'm very happy about it so what I like to do this is the this is not the same presentation I have a given before I change a little bit so I would like to talk a little bit about scaling right and of course it's even scaling and my point it's all handmade by way by the way it's an artisanal presentation

so here's my point about scaling right we talk a lot about scaling and of course we know that scaling on a Chilean is not completely solved but I have a question and the question is is it solved enough what I mean is we have like we've been trying to do a lot of interesting things and we have a lot of good solutions that we work but you have a few problems who be centralized in one way or will be somehow you you have some sort of trust model but that is that a deal breaker for most projects right for a lot of projects being able to scale using one of those solutions that we've

been trying to we'll be good enough for you right maybe maybe maybe you have all you need is X dial right maybe you trust a couple like if you're trusting a central server for maybe one thing and maybe you can trust a X dye and we have all those like trials we've done state channels plasma roll-up by the way I think it's fantastic that the plasma group is a group that has weather was funded got like a million dollars of funding did research for a year came to the conclusion that plasma was not going going to work they gave her back all the money and they renamed himself to Optimus rather I

think this is such a beautiful this is such a beautiful matter for for what Hyrum is right they just renamed themselves for optimism because they are still optimistic about scaling but my point is what I'm trying to say here if we just focus on if we just focus on hey we can we want to get like scaling working and it needs to be working for everyone and if you don't for solve the usability problem I think we are gonna be in a situation a little bit like this right where it's already for millions and billions of people but there are no customers out there right you're just creating this huge expectation that

you're gonna be creating this huge system for a billion transactions and you haven't solved disability we haven't solved the problems with the users and we see that all the time and we need to think that if a user loses their money we can't blame the user right even if it's their fault and most of the time it is their fault right I'm not saying that you are gonna be a create a system that is foolproof and there's a great quote saying that the problem of trying to create foolproof systems is that you are under estimating the creativity of a fool because they are always able to find out some way in which can they can script

themselves I'm not saying that if you your users are really stupid and do something very bad you are to blame what I'm saying though is that we didn't get to where we are today by making or user smarter and I think that's something I sort of remember we we take this for granted we take for granted that everyone and assessed in the had a computer in their pocket right to take for granted have billions of users of computers of computers and at some point most of us started using computers when it felt like it was everything but in truth when we started using computers

most of us in this room there were maybe a hundred million computers thirty million computers in the world and I remember back then the first people who were seeing computers and we knew it was a big deal and a lot of people are saying look the computers are great the computers are smart we just need to get a user educated about it right the computers the computers don't need to change you just need to change the users and I've been hearing that for pain for take decades even but the truth is if you don't if you try to change the user or not the computer you're gonna be limited by the amount of users you have right now the way we got from 10 million

computers in the world to maybe four billion pocket computers that everyone can use is not by teaching 4 billion people how to use the u.s. right he was not teaching them how to use Windows 95 which was already good enough for most people it was really by being smarter about our computers it's not even about having the computers be smarter it is a little bit about that too of course but it's also about being smarter on the way we deal with computers and my and what I'm going with this is that if we build a whole financial system based on a

single point of failure cause blame with it is it like of course it does right but we can blame the user and tell them look if you can bother to just write down with it phrase then like you shouldn't be owned in Bitcoin you shouldn't be using it even and that might be true today but the problem is this idea that you hold funds in private keys if there's a way around it you can scale that usability because at some point it's true binary like you either have access to the you have access to the full private key and have full access to the funds or you don't and if

you make and if too many people have access to those funds you lose you lose it all that that is it very hard that that that system where is true binary is very hard for more most people to navigate on and we we don't solve that either by just putting the same key on the cloud and there are some very nice solutions out there and like I really appreciate a lot of onboarding solution that just what they do is the abstract away all the key management by putting an encrypted key on the cloud which then comes back to the same problem it's better but it's still not decentralized because now you have a single point of

failure on the cloud suddenly if your cloud goes out you're back to her trusting that the user had made some sort of backup right if if they lose the the key to the cloud actually it's the same thing right if they lose somehow the key to the cloud that can happen because unless you are doing in it in a system that the cloud has full access to your keys then you linear back to the same problem and now using it the solution I tell people is I think the way we solve that in a way is moving to a smart account and by moving to a smart account I mean funds should be stored not on a single key but in Moody cookies and

every key should be enough in each user devices but then worry in a way what I'm sort of telling you is that we solve all of that by just giving the little money robot all the keys to your to your funds which then we go back to the problem and say oh wait but now the robot has he is the single point of favor right and we've gone through this like the first time I started I've been talking about universal login for two years towards research project we've built all or cold on a custom contract and we were rare and we we were sort of ready to audit it and we spent like we actually spent two months formally trying to formally

verify this March contract and in fact there's a whole blog post about how hard it is to forma will verify something form of verification is not like unit tests that you run it once and then every time we change your contract it's gonna check actually every time you want to run a new form of verifications but I take ours sometimes sometimes would take a whole night for us so then the way we solve this problem of okay now the money robot is like your little personal money robot is the is the single point of failure is that which sort of moved our funds from our own contract to know the safe know the safe is still a single

contract put I would argue that those the safe is mostly an echo echo echo system there are two ten million dollars held in in just an eater and I think there are at least two or three millions in other tokens if you take a look at this this little jump over there that's reducing jump that's when the gnosis teams themselves decided that they are going to put their own funds on their own noses keys so that's why it made a huge jump the other very cool thing that it's it's audited and it's verifiable it's or it's done by runtime verification I didn't check the name of the but I think it was forgot the name who did the audit and it's another cool

thing you can actually issue it on Nexus mutual for less than two percent per year which means something interesting and I think that I'm pretty sure that that that's where insurance contracts are going to evolve to if you put let's say die on compound you can automatically ensure your own funds by just taking like a third of your compound often less than that of her accountant winnings by just putting it on on an axis so right so I think that's that's something we should consider this idea where you put a little bit of money on let's see for 30 days on on this er or compound then you take the 30 days

you use that use a little bit of that doing it to ensure your death your users next 30 or 60 days then we can have a very interesting system in which even if one contract fails we you can still have your users are safe in a way and that's in a decentralized manner and I think that's very good so what I've learned from building analog in the past few years it's a really like developments up is building a pie of pancakes and you always think like you're probably ready by the next pancake you are gonna be full of development but we start just doing the contract-based layer right as I said we've we've done our own contracts for a while we've formally

verified it and then we realized ok that's not enough because we also need to do the relay er right the whole idea of using something as universal again another safe and many others is this concept of meta transactions you're not actually paying you're not never actually signing into transactions yourself you're always using the keys that you have to sign a transaction that authorizes anyone and that anyone can be easily a real layer to side to make the transactions in your half and we build that and republish every layer code of course that's not enough because you want to connect all of those things within a JavaScript SDK which we thought okay that's good enough it's not

actually because if you're building if you're building a tributing at a blockchain app today you probably are building it with the idea we using a better app to provider which will connect you to Mara mask or whatever your mobile wallet is so then we reap we basically build a website provider connector to our JavaScript SDK meaning that everything you request from the your web provider it can just request from your JavaScript this means it sort of creates us as more mana masks running from inside your browser that converts all your calls to web tree into a merit transaction code and I think that's super interesting and

I thought okay now that's over now okay but then we realize oh boy we still need to build the UI library on top in fact interesting thing we've recently realized that we have twice more code just on or UI repository than we have in all of those others combined and it's interesting because that's really where a lot of the complexes happen right you want to have you what you want to keep track of your transactions you want to keep track of pending transaction we want to keep track of how many if someone it stores the transaction then you need to have a second signature you want to send a message to the user and you need to keep track of the relator and all of that so

that's a lot complicated and I can go on and on on this pie of banquettes but at some point like you have to eat the pancake right at some point you have to ship it and I think for now this is or a current like breakfast pile right this is how we are we are using our code and what I like to say is in a sense what we want to build is a welcome package for every new achieving users where whenever you won't bore them to achieve yawn they get not this that I think I'm not sure if what's that doing that but I mean this is probably just a good Welcome package for FCC prime meaning is the Garen you know the safe they get and you

ENS name and they give a tie or some other token right so imagine this imagine that every new user of your app is going to have all of those three new things right and I think that's a very solid I wonder even how many even developers are using ENS names or Buddhistic to store their funds or using die right and the cool thing about the AI or any other token that you want is that thanks to merit transactions you can actually pay your transactions using that so imagine you or you are a firm that made a nice feel at some point and you want to have an internal economy of based on your token and what do you actually want is you

want your users to do everything in their own token so that's why it's important to give every user their own tokens right and pretty sure I'm legally obligated to show you a demo I'm gonna show you a demo anyway because I like it and is it okay wait wait okay let's see if the demo works oh yes now it's working so it's a short demo right the idea on onboarding is really that you you just type and this is running on iPad no download necessary right all you need to do is you type a name and if that name is taken we are gonna help you

connect that name if the team is not taken we're gonna help you create a new account right and the cool thing about this is that as soon as you type a name we are able to create in a single transaction and ens name when another safe and show you and show you a neat even address where that is gonna work and actually like I already gone through that but what I could do in fact is that I could just show that address of the user and allow the user just to use that that that address until they are ready to commit funds and in this case I already committed some funds I created therefore there are no safety ENS name and everything and now I'm

ready to execute any transaction directly from my browser just using the fund and everything is is like locally store and etc and of course the cool thing is that as soon as like I'm on my iPad as soon as I log in on my phone or my computer I'm gonna have a second second key that is gonna authorize me and I think that's a very interesting way of thinking about usability and because we went a little bit faster when we just show you a little bit or like a few screens so this is a screen that they it's just a confirmation of action and another cool thing I think the right so this is all like you login branded but

it could be a white label to look like any other app and I think that's important the reason that's important is there are a lot of onboarding providers on a TV on and there are a lot of people who think look one of them is gonna win and it's gonna be a winner take all and that's not a scenario that I want right I don't want a scenario where there's a single authentication method what I actually think is the best way of doing it is that if let's say you're running you are logged in in to kick back you don't want to have to think about any login or Port Authority really what I want you to think about it is kick back I want you to think that you have now I kick back account that you can use in other places right you don't

I I didn't touch the main branding that I want you to take away with because that's that's gonna lock you into this space in the first place and that's actually like I didn't show you that on the demo but that's how we connect your devices we just like show you a few symbols on one device and you confirm that on the other this is actually a way in which we can confirm that there was no man-made or attack I could just show you a public address and ask you to type the public address or just say hey are you sure you want the public address I just do this like very simple game right finally just update if anyone has been following us for a while like I used to like we

used to call because universal login because it was sort of like a project about a universal login for a Chilean we just shortened it to LA now uni logins so I think that's that's shorter a nicer yeah that's the new branding and in a way you're sort of doing the the Facebook thing like just drop the D I think it's cleaner that way and that also means we got Revenue website and that's that's what I mean so if you I want you to take something away from this talk I want to think about three points right the first one is that the future is going to be marathon

actions I think the market demands that the users don't want to think about eater or paying they want a free transaction was already won transactions paid in some comfortable token right that's important the second thing which is important is that I don't think I want a universe where there's a single authentication method for each human but we do want one that is decentralized that doesn't depend on one central server so let's always think about solutions that do not depend of a single cloud provider providing you authentication because that's bad and I think the way we can come together around this it's

just by focusing on ENS by giving every user ie an asset a control that they are no hold on right so you can check out any website and only when you log in at i/o or or Twitter that's me and my co-founder and I think that's it thank you thank you very much Alex those incredible talk I was gonna ask the audience if there's any questions that you might want to ask please raise your hand fantastic can you just clarify where are the private keys in all of us yes so it will depend on which sort of device you're using so in the beginning

we are keeping if you're running it from a browser we don't have much of a choice other than putting it keeping your local storage if you're running from a mobile mobile device we are gonna try to find a way to put it in easy as you can in clave but what we think about security is that we believe that having multiple keys you can sort of go around the security of having weak individual keys right so if you have multiple keys holding your funds even if one of them is lost you can recover it by using your other ones and if one of them is hacked you can you can go around it by having de limits on the on the amount of one

way the de amount of damage the one key can do um those great up some other questions well chance don't be shy it was pretty interesting no okay thank you I'll be around the conference thank you thank you very much [Applause]