New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Universal Ethereum Logins by Alex Van de Sande (Devcon4)

DevconWed, Oct 9, 2019, 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/4/universal-ethereum-logins A modest proposal to improve usability in Ethereum apps by removing a lot of the friction created by the usual login system: Your users can use your app without needing to install anything, buy ether or even type a password -Users are identified by a ENS username, and not a hex address -Users can use tokens to interact with your app, and you can even give out some of them free to encourage usage -Users are in control of their identity and any assets that are tied to them, and can take them to other apps -When users log into their identity with other apps, these act as second or third factors authenticators. While the app relies on a server, the server’s only job is to relay messages to the chain and pay ether, and the user can use any server they want. This is all achieved by using client side signed messages and multiple standards. Live code will be presented. Speaker(s): Alex Van de Sande Skill level: Intermediate Track: UX & Design Keywords: login 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 4 was held in Prague, Czech Republic on Oct 30 - Nov 2, 2018. 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

so I'm Alex on a Sunday and I want to talk about the big UX problems and I think UX is it's important to talk about UX because the UX is as important as scalability there is no point in having a blockchain that can handle a billion transactions if your apps can't reach half a billion users right so that's why it's so important to pay attention to that now before it was an achievement I was just in start-up or I founded syrups failed at most of them and we learn a lot of metrics that we keep our eyes on when we are in their startup Ward's things like the k-factor virality SEO and we don't talk about those here because it seems that we we sort of work in a different level right those rules don't apply to us but that's not true right we are in the same game and we need to pay attention to things like this this the equation that I used to spend my my days looking at it's basically it's also called the key factor and it's like virality measure basically what you're doing is every time your user is exposed to your app in any way there's a chance that they might actually pay attention there's if they do there's a chance that they might want to sign up there's a chance that they might complete this I design a process that they might download the app and that's after a bunch of steps they might share some content to let's say ten or turn your friends so here's the basic thing multiply all those factors if it's above one then your app is gonna go to exponential growth it's if it's slightly below one then your app is dying and like pay attention to that is the life or death of your app because if for every user you're losing more users and it means that you need to put more money to attract more users and that's that doesn't work how does it work for each internet for any of your app it looks terrible it looks something like this where you go oh a crypto kitty that's interesting and then the user has to go into a whole rabbit hole where they need to really quickly PDF and at some point they are taking a selfie with their passport so they can get a coinbase account so that it can get validated in three months that's crazy no normal app would do that to you and that's why like outside of us outside of us like the viral factor it's zero it's not like 0.9 which is bad it's zero I mean we've had more i SEOs last years and we have more daily active users in anywhere and that's sort of the point the point is that if you want to pay the point is if you have if you want to reach or something else than like Earth the tech enthusiast those who go to tech conferences we need to reach normal people I'm not getting the thing here so but it's going there right and what do normal people want normal people they don't like average users the medical average users they don't care about each other they don't care about your token your ICO your your kaya C they just want a username they just want to use an email if they're gonna buy something why can't they use a credit card they don't understand why they can't use a credit card and here's another thing your users sort of he expects to be able to use multiple devices in this with the same account and that's something like he takes for granted and it's super hard for us to do how do we solve that problem first attempt we try it is every time you download an your app you create a new account you write down your seed phrase you have to move each other to it and if you want to use the same account let's say like in and then you install it in your iPad and then you have to do the same process and pay to make the transaction so you can use both your iPad and your it's crazy then we move to even worse solution which is let's type your private key everywhere oh it's here and I mean there are bad solutions their solutions are so bad that they create a scam industry so big that Elon Musk goes on Twitter and complains about it I'm very happy that we were like sort of getting out of this phase where we asked people to type their private key or tie or the Siege phrase in order to log into the app but we're going into I'm seeing like a few other startups are trying to solve the problem with a wonderful interface with a username and email you go to the server it's super slick it's beautiful and I'm better a few people like in the routiers room that you are working on that solution right now and if you are please stop because if you succeed here's the thing if you succeed doing that we all fail because I'm not building we are talking about the centralization for you to build the next Facebook Connect because that's what I'm describing is just Facebook Connect for each even where you keep all the private data with them and like we cannot accept that like we we don't want that to be the future and I think we can do better and how I think we can do better is this thing I'm calling universal games it's not a single service is not a single website is a an architecture that I hope a lot of that any app can can introduce and hear how it looks this is all like life code running I'm just I'm just recording it just because it's easier but the idea is that it's just like a website where you click and you type your name that's all I need to do and I even like show you multiple user names that you can pick sort of like you can pick bootable emails and when you do you're logged in and here's a nice thing when you are logged in I'm giving you stuff I create some tokens I'm giving you tokens the idea being it's gamification another word we don't use a lot the idea being that every time you do something a few actions will cost tokens other actions will get you tokens so you're incentivizing the user to do the right things one of those right things is when you create a new username you get a bunch of tokens and here is the app right the app you can see the the the tokens called click and I'm just it's just a single there's a header and there's a single button and that button is tied with more contract when you click that button it costs you 1 token exactly 1 token if forget gas free is an etc just cost you 1 token and when you click it you can see that your name is down there on a list that people who press the bottom the app tells nothing right you just click it and it says you click the button but the interesting thing is that you just interacted with a smart contract the first time on a normal browser without having to download anything to sign up anything and for the smart contract itself it sounds like you are you are just a normal human account ok but it sounds weird Alex there's no password there's no nothing how do I even like sign up with an iPhone let's say here's how we do it you just type your name what's your like you say look I'm Bob and the nice thing is that once I can detect that you are Bob I can see look Bob already exists so instead of creating a new username I'm gonna connect you with Bob and when you click connect to Bob I will receive a person notification on my browser and I'm gonna click there and say yeah that's me that the person that was trying to connect on an iPhone on this IP on at that time that's me you can accept it and when you accept it what happens is that you're both your devices will be synchronized and you'll be able to see soon that the like the on the top there there's like your your your yeah and you just get more tokens because you added a new device and you can see it's the same address the same icon because from the point of view of the of the app you are using the same e to your account and whatever you do in one side it will reflect to the other right so if I click on the phone it will click on the desktop if I click on a desktop it clicks on the phone and here's another thing the the the phone itself is not a master key I'm not doing this thing where you do something on the desktop and then you have to approve in your master phone device know every device you every device you add every new app you can be an approval or a signer for the other apps and which already great because you can have multiple devices multiple apps everyone using the same username but what if like if I lose all my devices well if you lose all your devices we can do something extra where I can create a new code for you I'm not just gonna go very quickly the idea is just you click it generate some codes on the on the browser I'm not actually backing up the keys I'm just generating new codes on the browser which you be able to use that's the code you can print it and then maybe you cut it cut them out keep them one-year safe when in your mom's house the other if your lawyers I don't know maybe laminate them if you want but the idea being if you lose all your devices you can still have access to it via this the recovery code which is sort of very easy and how do you sort of save money when you click the backup code we have like this three-step security thing where every time you do something you like you get more tokens and bling you just got your your latest thing checked out so you're super safe how do you do recovery then just same thing let's say you lost all your tokens go on the website type I am Bob and instead of clicking connect notice that there is a recovery button on the recover button you just type one of those codes and I'm actually typing it instead of just copy pasting it to see it to show you it's not something as complex that you need to actually have a QR code or a digital file it's something that you can actually write you might be able to remember it because it sounds like a Star Wars planet but it's more it's not memorable which is writable you can write that down in a piece of paper somewhere and when you do you're logged in notice something that I was able to log in in multiple devices I have a paper wallet I am showing a bunch of stuff here are the things I did not show you right no mention of eater no head strings no passwords no cure codes incremental security it means that the first time the user logs into the app he can immediately start playing with it only after some sometimes some value has passed I you should probably download the smartphone they may be after a few months maybe after they have a lot of value maybe encourage them to print and download the codes and the user just deployed a mood effect yourself sovereign smart contractor Canora identity and they didn't even notice the thing is we are tricking users into using bodicek mortising is a complicated complex thing that only that vans developers do and instead I'm tricking them into using it without realizing so what's the magic we are doing the first thing is that every app has its own private key generate the private key as we already do with apps the difference here is that don't try to back it up don't try to take it out of the device don't keep any money or anything on that private key instead use that private key to write to sign a message sterling a smart contract to do something we call those messages mera transactions you probably saw this word you probably seem like this Mara cartel thing going around that's it it's about better tamela transaction is a sign message telling a smart contract to do something and how do you do something if you don't have eater on that device you have a relator who's every layer anyone with eater an internet connection can be relator you can cetera layer for your app you can have a relator for you can create a relay or decentralized relay network on whisper the idea is that you layer someone who takes that message pays the gas cost to publish it to the blockchain and then the contract does something but way right with someone pay that because the smart contract because it's smart can pay back the three layer it can pay back even depending on how much either how much gas they spent so what are you basically saying sign messages saying look I'm willing to pay let's say one died or 3 status tokens for someone to deploy that message for someone and now any one in the relator network can look at that and say hey I think I can probably deploy that for less than that so I'm taking that I'm getting a 20 and if you need extra recovery keys make an extra backup for it right don't don't do a backup of that just do an extra one the advantage being because it's a more smart contract you can add conditions let's say you can only do a recovery key after the contract has been inactive or maybe you need to have five four five trust such friends to be able to do a recovery you can be creative on whatever you want to do because it's a smart contract that's doing the recovery it's not about just recovering a single key and we have something very cool also they're called counterfactual contracts I hate the name but basically it's a deterministic contract address I wait which is idea that you already have the the contract address before you deploy it that means that you can already sense funds to it you can send tokens or eater to the contract address before you deploy it it means that you can pretend for your users that his account is live until they pay it and then you deploy the contract and because it works the mood pool change you can deploy it on a test net or on a side chain and only move it to the main chain after the user has passed some sort of threshold right I'm still looking for a better name for that so another cool thing authorization term is perky not every key is the same not every key is as safe as the other browser keys are not as safe as other keys so one of the things you can do is that some keys can can add transactions other kids cannot add transactions things like that it's better for users it's better for apps because you every time you install a new app you have more security and and you have cross-compatible usernames users don't need eater and that means you can have more more open business models for instance you can have a subscription model where like the user just goes in and like you pay his transactions for for for free and then you just ask you have a credit card system where you just charge them five five pounds bird per day so we have less than five minutes I so yeah we had like a very quick thing here but I think we are gonna okay can you do it in two minutes okay just two minutes wanted to show you how simple the API we build is so to start using Universal logins all you need to do is to create as decay SDK has just two parameters the address of relayer and the others of the web pre note then it just one command to create an identity you just specify the name of the name of the identity E&S name of the identity and you have a private key and identity a dress as a return and bam you can send your transaction which looks pretty much the same as any tomb transaction with this extra gas talkin parameters so we can say paying something else then either and I think we're running out of time thank you very much okay now here's the thing I'm not I don't want here to for us to build the best onboarding experience in the web I think we can use the ATM technology to build the best onboarding experience anywhere because there's no passwords and you are in control of your own identity you're in control of your own old funds which is something we don't find in Facebook as a final figure with layer I would like to thank the kitchen Community Fund on eff fries they they have a generous grant that has made this work possible and of course the TuneIn Foundation has been supporting all the crazy stuff I do thank you thank you [Music] you

Automatic transcript — names and jargon may be misspelled.