Universal Login

EDCON 2019 · 13 Apr 2019 · 13:26

Marek Kirejczyk presents Universal Login through common obstacles to using Ethereum: onboarding, key backups, browser extensions and paying gas. A demonstration links devices to a contract wallet, while the architecture combines ENS, signed messages and relayers so applications can offer familiar login flows and alternative gas-payment experiences.

Speakers

Topics

From EDCON 2019, hosted by EDCON.

Transcript

so next up we had Marek Kyra check who is lead engineer at Universal logon and CEO and eath works thank you Thanks so how are you guys we're getting closer to the end who liked the conference hands up okay I can see okay cool cool who's sleeping hands up Hey - guys good it's not a result so what are you gonna talk about today is universal login and before we do that just a couple words about myself so I founded a company called it works two years ago which is an agency software house focus solely on each ear iam

related projects we do design we do concepts we build the app smart contracts of course custom block chains bridges and most recently we went into formal verification and we've been lucky to work with some of the top brands in our space including Tyrion foundation Bitcoin and with some noble brands outside block chain space and I think it will not will not come as a surprise to you that we keep struggling with the similar problems with many different customers when we will we try to build application the apps or all kinds of different applications build on top of each ear iam and the problem and you

probably all know called usability came into the picture and I think when you talk about when you want to solve a problem it's super important that you actually define what the problem is very precisely and we talk a lot with our customers and we figure out what happens when people say well e term is hard to use each team has usability problem it really means one of the four things people either mean onboarding is hard or they think fun security is hard or they say you know requiring web free enabled browser is difficult to convince to user to or paying fees and tokens it's something that's impossible so to give you an ex

I don't think it's surprised for most of you you already heard the story but there is a very popular give you a tutorial on on the web 17 steps to buy it to you and you know that real you need to choose a wallet install backup store backup open well that you need to copy the address you need to pick an exchange you need to register you need to setup two-factor because you know it's a very important we say you need to verify account go through kyc deposit money buy eater confirm with kyc and then you can finally send either to your wallet but you need to confirm first then you can finally go to each scan and keep refreshing as long as you finally see that transaction is received when you

can go to finally play with crypto kitties or whatever is the application you would like to use fun security is also well known problem we there is a bunch of usability studies that says nobody is backup ting sit phrases horror wallets also a part of the problem and where do we store it we have multi-sig wallets were extremely hard to use and others I think common agreement that fund security and key storage is still major problem another another challenge is if you go to any startup outside the atrium space and you ask people you know you can start using your startup all you

have to do first is you know install brave install opera or just install a plugin to your browser like madam asked yeah that's gonna cut conversions too close to zero and nobody is gonna do it and like even two weeks ago I was explaining the concept to someone and sure look how difficult it is with madam asked and he's like what's that is that a plugin who uses that right like outside of a user text savvy users except of power users like people don't use even things like plugins people don't install software at all that's not what you do these days and last but not least is important usability problem but also important

business problem for many of those startups that issue their own token and now want to run a crypt economy on top of that but to be able to pay a fee to be able to pay something and talking to be able to use token to do something you still need eater on your account and that rise natural question was why do you need a token in the first place why do it can I just use either to run my crypt economy and we actually had a customer that that would say they would give people the tokens they had a lot of fraction they gave talking to a lot of people who received payment in tokens instead of instead of you know transferring US Dollars and they say like the most common question on

customer support was how do I transfer my find I have insufficient funds message even though I have a lot of sounding good so how do we solve it so what we want to do is we want to bring this take those web freeze your concepts and bring it to web to 0x build a web to zero experience how would you do on boring in the web to zero well what you would basically do is you ask user to register allow him to deposit money by you know putting up some critical number and off you go you can start using right so it's it's a big reduction and this is a flow we're working on that we hope to

have production ready early that summer is when you register you just pick a name put your credit credit card credentials poof you are on board it you can start working on it what else I would like to have I would like to be able to store my funds in a way that I have accessed from many different places I can access it from the web I can access it from mobile I have somewhere secure storage where I can call or I can send an email and restore my keys and this is the second example flow that is working as of today which allows you to connect one device to the other device using the connect another device your fans using other device so universal login here's a quick

demo we just did record I think yesterday so that was that's an application we built for DEFCON last year to demo the possibilities so what I do is I register I pick a name and in this particular case relayer will pay for me for my deployment and will give me 100 clicks and 100 clicks is just 100 years see 20 tokens which is called click and I can do actions with your seat when you're talkin with clicks here on the left and now we're connecting another application which is a wallet that we just started building I accept pending authorization boom I have to connect it that costs me free clicks to

connect so I can see my balance is now subtracted I can now transfer if I want to some eater that I have on my account it's gonna be this is working on dev environment so it's really fast of course in reality would be a little bit slower you can see the transaction went through good let me I think over so I and here we clicking and the interesting thing about click if you notice is it didn't subtract the money from eater balance but it's abstract the money from the click balance because we paid for it with clicks good so look like look one more time at problem so talking fees just solved explained moment ago e - my name bill browser will

there was no each room and able browser and we're on the picture fund security well we already connected to device and the whole demo took like under a minute in the future we can expect there's gonna be more factors of authentication and ways to backup your keys and onboarding you saw the flow that we're now working on which allows you to on board without without needing to do all the 17 steps and the interesting thing is if you think about it user don't even need to know that there is blocked in under the hood like the whole flow could completely work without ever revealing to a user hey there is some blocked in

if there are some just tokens that can mean anything you could to implement to the dire whatever you prefer so how does it work so first of all there are three key technologies under the hood there is a person on multi-sig wallet so that's a smart contract that stores all the funds because mana transactions to relight transactions to the to the multi-sig wallet so that we don't need eater on all those different devices that that initiate those transactions and we have universal login idea which means we put ENS name in top of our smart wallet smart contract wallet and we can use it to log in to create

accounts and log in to different services so in detail imagine you have a contract koala which is in the middle we have a bunch of different keys stored in different applications could be cricket up crypto keys on the top we have a native application mobile application on your left and another native application on the laptop also on your left and we could even store like encrypted key in a trusted third-party trusted third-party server so what happens I'm going to the web application I want to buy a crypto kitty so what I do is I trigger a meta transaction or design or design a message to the relies deigning the

intention that i would like that i would like to do a transaction we related us it wraps it into normal interim transaction and pays for it then contract wallet triggers the transaction that the final transaction the intention to send money token or make a call to the our wallet the destination one and then the smart contract makes a refund to make sure that we layer get his money back could be neither could be in tokens could be even in year c7 to one token if one if smart contract and we layer choose chooses to use that no other method and this is all in ideal world it

is or permission less and that's what we working on so so technological stock this is all open source this is all MIT license you can start playing with it right now there is great develop there's documentation as decay open educated you can use there's development environment that you can trigger with one command and start building it consists of JavaScript SDK that you use in your application open source layer that relays of course smart contracts and a wallet you just in a moment ago on technology side we are using eaters IO instead of web which is I think it's getting pretty popular and most of you already know what it is we

build our own testing framework waffle for we could we care a lot about quality and security so we couldn't find anything really good on the market and we are formally verifying contracts we are roughly 20% through it's all in our mono repo so you can see it as we go it's part of continuous integration so we can see how it goes and I'm happy to tell you that our team grew a little bit and we have now five different people working on it and we have a growing group of contributors from all around the world we are also a grantee of each price and ECF and also I'm happy to tell you that we get a lot of traction

there's a lot of interest a lot of people come to github creating issues asking questions and we have a longer and longer queue of startups that are willing that hope to do pilots with us pretty soon on technology side I just wanted to show you that the old code you need I mean we're running out of time so and I wanna I don't want to explain all the details but that's all code you need to create a wallet and relay a transaction so we can see it's very simple creating as decay connecting this particular one is connecting to rinca by and there is a mesh message that basically looks like a tearoom transaction but with one difference there is a gas token field that you didn't see before

and gas token fields is defines the token that gonna that you hope to pay for the gas with so if you would like to learn more please visit universal login dot io come to our github it's still early version but we aim to be on production and this summer it's a lot of work to do before we get there and if you would like to get updates what memes and listen to philosophy follow me on twitter under eth mark thank you [Applause]