DAPPCON 2018: Executable Signed Messages: Improve UX by ... - Alex van de Sande (ETH Foundation)
DappCon 2018 · July 2018 · 18:32
Alex van de Sande of the Ethereum Foundation presents executable signed messages at DappCon 2018, walking through a proposal for improving wallet user experience by letting off-chain signed messages trigger on-chain smart contract actions. The talk covers how this approach could simplify transaction flows for end users interacting with Ethereum dApps, reducing friction in everyday wallet interactions.
Speakers
Topics
From DappCon 2018, hosted by Dappcon Berlin.
Transcript
hey everyone thanks for being here so let's talk about how to solve every single UX problems we have in the next 20 minutes right so universal logins is a very like long word but I think I'm gonna start with what should be a very simple question which is where does your onboarding start I mean what does that mean where does your app start where do the your users come from right because it should be like you think it's your website right they're coming through your website but I mean how did they arrive at your website maybe an app store maybe a decentralized app store
maybe like literally iPhone app store that's how they got it but I mean do they need madam asked whether they need madam asked then sort of madam asked is your own boarding process right they need to go through the onboarding process madam asked the delete to delete each er they do so maybe your onboarding is coinbase maybe that means that coinbase is the entrance to our ecosystem which is sort of crazy right we want to do like we care about the centralization we talk about the centralization on suddenly the way people get into the ecosystem is by taking a picture of their passport and waiting for three days for verification that's the
entrance that's crazy or maybe I mean why would they even be buying it or if they don't know about it so maybe your homepage is it you're not org or maybe not maybe it's like people are coming from Wikipedia dot are learning about blockchain right they're going to expedient data go to achieve not or then to coin based in Clara Maass then to the App Store so when we ask ourselves like where are where are the users right by our calculations there should be lots of users it's sort of like the crypto Fermi paradox where you know they're intelligent users are out there but you they are they just disappear that's the sort of the Drake Equation because you lose people on the Wikipedia page then they
or den coinbase then metamath by the time they get to buy a crypto kitty it's too late it's been like two months already that they they forgot so here's the thing users don't care about eater they don't care about backing up private seeds or privates especially if they don't have any money right why are you backing up a private key that they has no money on it they don't understand every secure application they ever use have a two-factor authentication but each year you don't have actually like one of the classic my-my-my-my eater wallet scams we're asking people to install - like a secondary factor that's a scam that that's crazy
something that you were used to be something like that like that's the secure a suddenly it's a scam here they are confused why doing like user someone the hack screens they want simple usernames they they want to be able to pay with the credit card or the app store credit they don't want to download anything and honestly they owned a lot of devices and they switch constantly between them so how do you do on your app if your user has a desktop app and an iPhone app right so here's a bad solution have a new account with eater on every device that's a terrible idea and I see a lot of projects doing that if you don't know you download tashi they help you set up a new new private
key then you go on you download status there's a new a new account you create and then you install metamath there's a new account right that's that's not a good way of like because if you lose one device then you need to put eater on one device and then you don't know it would never use it and then you want to use the otherwise you need to make a transfer and spend money that's the term make sounds here's a really bad solution let's just create a central login system where you login with Facebook right that's not what you want here's a very very very bad solution just type your private key to login on every app that sounds like something that nobody would do but I've seen people do it or even
worse like if you have if part of your onboarding thing either either feed phrase you are asking your users to log in with your with your sync phrase which is worse because if you if you wrote down a feed phrase once twice by the third time you're not gonna like be right here now you're gonna be using your metamath seed phrase on every new like gain you login and that is also terrible idea because suddenly like you're giving like all access to all your money forever which leads us to the crazy crypto paradox which is we tell users their key is important right so make many copies of it heavy have-have every device you have should
have a backup of it but then if you lose that key you lose your your money so don't make too many backups of it don't make too many copies don't put it on your email don't put it on the crowd don't don't upload it a screenshot somewhere so there's just like this tiny line where you just need to make enough backups but not too many can we do it better right I think we can let's let's let's go through like an example let's suppose you have like this new crypto app which super cool and the thing the only thing that asks you is that look you can create a new heig or you can connect to existing one if you don't have one and you can just go there and
type look I'm Bob actually that's something that I wish other people would do when you log into a site usually they ask you if you want to login or signup and then you say I want to login and you put your username you put your email and they say oh no you can't you can I mean there's no user you need to create a user and then you need to create a user on there and then the other you'll know that that password already exists but you forgot your password I mean I can tell you already from your user name if that exists or not so if you type the username that exists I'm just gonna tell you that look you're gonna connect with whether you're gonna you are trying to connect with an existing ID if but I don't want to do that I will actually
want to create an image ID and you can see that it actually it detects that and tells you okay what you're going to do now is that you're good create a new ichiran ID that's just a normal browser I don't have like madam asked on it so what does it do when I do create I click there and I wait a few minutes and it creates my lira with your ID with a new username and it gives me a token I mean those tokens are not very important but I that doesn't that's optional for but I think it's gonna be important why am i giving in them tokens because like it's my app I create also conveniens of those tokens it's a lot easier for my app to give away tokens than to give away eater and also because
they are my tokens I can create AI I can create some limitations on what the user can do or not and if I just gave them hitter they could just sell it directly right so I start using the app and that's it right I can let's say I'm gonna it's a sort of Twitter app I click something a type something I want to post and it just tells me hey it's gonna cost you like half a token or something like that notice that's an internal confirmation that's not like a madam as confirmation that just like a normal alert and we could even skip that you could even just click there click post and you would post right it's it's interesting but what happens if okay you already have
like it just created your little Bobby ID but now you were downloading a new app you're got you got tired of this one we're moving on a new awesome app on your iPhone and it's a different app from a different vendor I need to ask you something like people already have and it's your ID of course you could do it like a in a nicer way but let's just click yes you click yes and you just type your ID look I am Bobby at the universal ID I click connect I send a request where did they send a request to right here or app like there you go there's a little request do you want to do a cept that Bobby add you there right
yeah sure right so that could be a way in which every single ichiran app could run right we don't need a new hard fork we don't need any like it could be done today but how does it work right did you miss something here like there's no mention of it or there are no hack strings I didn't ask at any point to type a password even there are no cure codes and the user just created the chill factor mode is sick self-serve and smart contract of identity and I mean he didn't even notice it I tricked him into creating a smart contract without him knowing that he had one how how are we doing that the point behind the scenes
is that we are using context specific each or less account I'm using sign messages instead of transactions I'm using what I call gas relay abstraction identity contracts ENS user names and it's a standard across devices what just what do they mean I'm gonna go with specifics content specific ET les accounts simply means that you create a private key a proper private public key pair on each device on each app on each device and that he never leaves your device you don't make any backups of it you don't allow allow it to export you just keep that key there and you never
keep any funds on those on those keys you only use those keys to sign messages asking things to be done in behalf of them and what you do then is that we have an identity contract and here C 7 to 5 identity which is able to read those messages and as you execute based on them basically saying look yet this is an authorized if your account let's do that and since and that is the contract which you hold all the funds and since it can hold things it can be also hold the property of an ENS subdomain if you don't know ENS allows
you to make as many subdomains as you want so you can have a contract that is identified by a ENS username and how exactly does it work without having eater who's paying for the transaction that's the interesting bit because those accounts don't have any eater they sign messages and give it to what I'm calling every layer which can be any computer that has either and that computer is the one that deploys it to the blockchain and now the nice thing is that because it's a smart contract that smart contract can count how much gas you spent and can pay you back pay the
deployer back so it can pay either in each or so it's sort of refunds the amount of each day they paid or even in tokens so that means that I can tell relator that I'm gonna pay my transaction in dye or or special tokens or no right you can pay your your as long as the relay accepts it you can pay your transaction in any token you want which means that you don't even need to have either on that identity and there are filters and things because how do account permission work seventy identity years identity thing already comes with three basic permission things which is
permission levels which is management which can make calls to itself and to others many it can upgrade itself it can add new accounts things like that there's an action which cannot make calls to itself who can call make calls to others and there's an encryption which can make just you couldn't make any calls you just use it to let's say you're running a shop a shet app you just sign a message that you just don't prove you're yourself but you could expand that and you could expand it and make permission by contract which means that every time you add a new account you could tell them look this is a contract that tells you which which types of transactions are valid for this account
maybe that particular account can interactive crypto kitties maybe you can only make one call per month maybe it connects to an exchange and know that you can only spend like up to $100 per day and if you want to spend more you need like multiple signatures or something like that right and the nice thing is that it's a Modi thing right so in the example I gave you you had a key on your desktop and a key on your phone which means that if you lose your either of of those you can recover with a turn on you can keep adding what happens if you lose your laptop and your phone at the same time or maybe you just just don't have an any device again because
it's a contract we can create all sorts of new ways of doing things and and you can have Recovery Options I know that like nothing safe is doing a lot of Recovery Options where if you if you stay IDO it can recover status is doing an interesting work but if you have like five friends frier five trusted friends there are kept in secret at some point they can recover you can do a lot of things but that's a nice thing it's up to the user and to the contract to allow different Recovery Options that are more user friendly what are the drawbacks of this scheme right first of all creating initial account has a cost
there are ways in which you can go around that the first one you can maybe create you can create many accounts and let them like not like unconfigured unset accounts when gas is very very cheap and then when the user wants to sign the sign up so for something you just get in like an empty account and just give it like reconfigure to give it to him another way and I think that I think I think start to safe is doing is that there's a trick in which you can already send funds to a contract that hasn't deployed yet right you can already send funds to you you can already know an address for a contract and then you can send funds to that to
the thing and then you can do it in a way that only after you send funds then you deployed then you can deploy the contract so what does it means like in toto it means that we have more security every device every wallet you install is the new security factor and it can count us like for games also maybe crypto kitty could be a second factor photo for Toshi which is the third factor for for your like for your dutch action app and everything is everyone every one of them is using the same standards every time you use a new app you're adding security you're not removing security which is super
interesting and apps can distribute usernames that can be used in other apps I've used one ENS name there but every app could have its own DNS and give away give it away to people so it could be literally like some people are hotmail users some people are Gmail users or something like that it's work sort of like an email system where anyone can provide you an email and we have more flexibility users don't need eater to run their transactions apps can do any business model right because now since we have this transaction rule a thing it means that they can be paid in their own tokens they can give out tokens to people or maybe they can accept transactions for
free as long as you are in a whitelisted paid customer accounts anything like that because we are adding more flexibility to the business model because we are removing the the whoever is paying for the others and actually relaying can be a nice way of desktop money because if you're online if you have eater that could you could you could just be taking people who are signing messages and we and paying them and you could be earning die or earning tokens so where are we first of all I have to your sees that the IPS that define this the first one is just about how we do like the executive potions a
final transaction thing and the other is a more general where add identities we add ENS and we make this universal login idea I'm not inventing anything right there are a long list of people who like to thank to because I'm just copying cow paths right I'm just I was just looking at what a lot of projects were doing with sign we assign identities and trying to cross pollinate them and make everyone come together in the same roof for a standard that every that will make everyone better and so I'm I am putting I am trying to put people together to arrange grants to put developers and to actually make a proof of concept of this so that
in the future it could be something as easy as a truffle box where you click we run and here you go like all the UX problems of your apps were solved and you need only to focus on the app itself so those links you can read about the APS there's a TV magicians forums and you can contact me at 8:00 at a VSA thank you for being here [Applause]