EthCC 2: Itamar Lesuisse and Julien Niset
Ethereum Paris·Wed, Oct 9, 2019, 12:00 AM
Speaker
EthCC 2 EthCC, the Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. Follow us : @AssethFR https://ethcc.io
Transcript
a co-founder of argent so today we'll we'll show you how argintinabel frictionless access to dabs and straightaway we want to start with with a live demo so what we did we build the small dabs it's live on hcc de paris it's on my net very simple dub and this is my Arjun wallet so you can see as it's live it's all live demo all on main net what I'll do is basically I'll click connect with argent sorry for all my notification I will connect the app so as you can see this is all live scan the QR code I authorize and here we are I'm live I'm connected I check in and no transaction will be mine so as simple as that I don't choose my phone and I'm time using it straight on on Google Chrome so let's go back to our presentation where I need to switch sorry that's a bit of logistic here so what will you we do today yeah now you have the slides perfect so three things we'll cover first we'll show you how the origin wallet tackles the first challenge in onboarding to Dobbs which is first onboarding to the ethereum blockchain then we'll talk about argent connect specifically and how it enables this frictionless access two dots and then we'll guide you through how to integrate out and connect in literally ten lines of code so let's talk about the origin wallet why why did we start argent we we basically felt that to achieve the web 3 vision there were massive UX challenges to solve so I think we all are well aware of them it's it's too easy to lose assets it's way too scary to transact and while that can connect well enough to two dubs so what we did is really build our wish list what what would be the perfect wallet and really the question we ask ourselves can we build a non custodian wallet and give the UX of an 26 revolute munzo or whatever you might be used to so key feature for us the same way that when you lose your your physical while at you you call your bank your phrase your card with that okay we need to be able to freeze our account if there is a problem we of course need recovery I just I lose my wallet and that should be done without seat phrase we feel it's an anachronism to still have a piece of paper as a backup and that can't be the future of payment then then we want to be able to block fraudulent transaction the same way with your bank if suspicious transactions happened it will be blocked and you should be able to set the daily limit and then having the usual biometric encryption on your phone from a simplicity perspective for a simplicity perspective we wanted the concept of trusted contact Get Rid or obstruct gas so it's still too complex to think about transaction fees and then get rid of cryptic addresses so to achieve that we realize it could be done by using a smart contract wallet so with Argent you don't require you don't need to see it anymore so we have seedless recovery with what we call guardians guardians can be other users can be Hardware wallets is basically an aetherium address we have fooled as abstraction so that allows origin to subsidise gas if we want could be a dab subsidizing gas or can be the user paying for it and we prevent test with the concept of trusted contacts so we'll try again a live demo hopefully one mine arjun wallet in a nutshell and then we can jump to damps yeah you all see that so basically think about the origin wallet it's a mobile base wallet it feels looked like a wallet I have the usual thing so I have my theorem address it is every n s so every every Arjun users get a free n s dot Arjun dot XY Z I can for example we have a Dex we have Khyber Network integrated so if I want to buy a dye let's say we'll buy $10 dong I buy my die that's it the transaction is being mine my exchange is done it took me three seconds but then the more interesting stuff so we talked about Guardian for example so here I have a set of Guardian that protect me Oh easy it is to add Guardian so for example I have Matthew in the room for margined I don't have you in my contacts of Miguel I want to admit as a guardian at invite Miguel Don a transaction will be mine in the smart contract Miguel will be added as a guardian and we start secure my wallet so where it gets more interesting let's can anyone bring me any theorem address ok anyone is anything my light on their phone I will send them all of my eath on my net literally so anyone could come with a QR code sorry I do I need to spell that properly or that's why that's why I think we got one sorry I want so so I want to send all my eath to take your coat so look I'm scanning that I don't know that person yeah I will send to this address so I assume you got access to my phone maybe I was drawing maybe I was asleep and you managed to get my face I did to work use marks I send everything ready it's 23 is not too bad so what's happening now at smart on track level the smart contract sees that it's above my daily limit that it's not a trusted address so it will take 24 hours for the payment to go through so I have 24 words now I'll get alerted I can stop the payment if I really wanted to make that payment and I didn't get the chance to trust that contact I will use my guardian and send it instantly so sorry it's not working but to show you it can work Julian just here is trusted ulsan here 28th well I'll use use max here Don Julian now is receiving my money I didn't do the max for some reason they're 0.4 left oh no sorry it sent all the ease but it's that's the value of all my minor token so that's the origin wallet in a nutshell and now we'll tell you more about how you know that's the starting point how does it work what can you can it do for you dub developers okay thank you so as it AMA mentioned the Argent well it is a smart contract based wallet so what that means is that your fans your identity is on a smart contract in the blockchain and then if you have the Argent app on your phone this phone will basically act as a remote control why it works is because we have a private we store a private key on your phone that's really the remote control to your wallet so but we wanted this this private key to be Atlas because of course you can lose your phone things can happen so that's why we've enable meta transactions so in practice when you want to do an action on your wallets it transfer token what will happen is that the private key on your phone will sign an intent that in turn will be related to the blockchain and then the wallet will basically execute the action if the signer is a key that is that is known that as a correct right to do the right direction and if the what it is in the correct State for example if you want it has been locked and you try to transfer fund and a small contract will say no the context is not right and the action will not happen so we have of course smart contract that's the base the base wallet so also smart contract work basically the core of our wallet is a very simple place wallet contract and when I mean simple it's less than hundred lines of code so that's very easy to to audit which was the point and basically all that base what it does is that it leased a set of authorized module that can call its invoke function and that's well so that's very very basic then we have the set of authorized modules and these modules they basically under the business logic of the wallet so for example the lock is managed by the lock manager module all the recovery is managed by the Recovery Manager module and so on so for the moment we have eight modules enable but the interest of this modular approach is that it's very easy to to upgrade the wallet because you can add modules you can remove module you can upgrade them say we decide to change the logic of the lock manager all we need to do is basically create a new module and for the wallet we disable the old one and enable the new one of course this action can only be done by the owner key which has the correct rights as I mentioned all these modules they can accept regular blockchain transaction but they can always also accept meta transactions which enable the abstraction of gasps and finally most interestingly these modules are shared between the wallets so that means that in terms of Gaskell's this architecture is quite efficient because each user as a contract which is less than hundred lines of code and then they all share the same eight modules so as we've said as I said just before we have got the wallet and then we have a key on the phone and that key is the owner key so it has full access to the management of the 1a that's really the main key as the one that controls the wallet but because it's a smart contract we can also define other types of keys and as Itamar showed we have the concept of guardians where Guardian is just a key which has a different types of Rights on the wallet and when it becomes interesting for that is that is because we have defined a third type of keys on the wallet which we call that keys and these DAP keys they will enable the wallet to interact with the apps provided the transaction satisfy some zombies custom policies so that brings us to our gen connect so now that we have a great wallet how we hope so we thought what's the perfect app experience or dreamed up experience was of course starting with user being in control of their assets identity their data through their wallet so I ever wallet that I used for my crypto life I want to use that same wallet now to interact status but also it should work on web on mobile in native native apps or browser that was important for us we never implemented a webview in Arjun we felt that cannot be the experience people need to be able to use any browser but also native apps and especially on mobile I mean do they are TVP users are on mobile now not on desktop anymore we wanted to remove the need to constantly switch between apps and wallets so if you interact with that with the text no problem you scan a QR code you send a transaction you send money there you trade is made you might not make another one for a few hours or days if you play a game you want to be able to sign a lot of transaction within a few minutes maybe and you shouldn't have to pull out your wallet your phone or connect a wallet all the time abstraction I mention of gasps oh can you interact with the depth without any ease or maybe without any token at all especially foreign boarding and protection from scam adapts not that we have in mind specifically scammy does but in general it will happen they will be and also we created a very secure wallet with a system of daily limit etc so we needed to find a way to make sure we don't open basically security holes by enabling gaps so in short we wanted just users to keep using the web as they know it wherever they they are used to so I think you'll get crazy if I switch computer along again so I will just put the video of what I just did that's fine let's not let's not do it again you can literally go on Etsy see that Paris right now and you will see my check-in that I did five minutes ago it's there I could not do another check-in I could do five check-in without pulling my phone from my pocket at any time okay so let me know work you through this this Arjun connect flow so when you browse through the DAP and you click on the arch and connect button what you see is a QR code and we ask you to scan that QR code with your client by doing so basically we do is establish a secure communication channel between the dap and the phone next the dap will send a connection request to the client on that secure channel this connection request will contain information about the dap its name its logo for example so that it can be nicely displayed on the client but most importantly it will expose the contracts and the method that the dubs wants to interact with this is what we call the authorization and this is very important because it really tells the user this is my name this is my logo and this is the contracts and the method that i would like to in your wallet to interact with based on that the client will create a dap key and will authorize that dabke with the wallet and it will authorize that tap key only for the contracts and the method that has been provided by the Dubs so this lap key can instruct the wallet to do an operation but only on specific contract and specific method so it's it that that key cannot for example will be used to tell the contract interact with an ESC 20 token contract and you know sell all your token or transfer all your token it's really only authorized for certain contracts and method that has been approved by the user when that authorization is complete under on the wallet the client will return a connection UPS accepted back to the DAP which will contain the address of the wallet so it can be nicely displayed on the website it will contain the address of the DAP key and optionally the private key associated to that key and this is very important to us because we believe that the control should be in the users hands so in practice on your mobile you will really see a toggle which tells you do you want to keep that product that that key on your phone and in that case you will have to confirm every single transaction or do you accept that that key to be transferred to the dump and that really enables two mode of operation to interact with apps so in the first scenario the user has accepted that that key to be transferred to the dab that means that the DAP can independently sign a metric transaction and interact with the wallet so for example when we clicked on the check-in button well the phone was not was not required was phone couldn't be in the pocket you can actually click on many button have your anti experience there's no more need to confirm the transaction on your phone and this is an experience that people know as universality if the DEP is a bit more sensitive for example you interact with the Dex you may not be happy to show you the decks tab to wave your key so you may want to actually approve every single transaction because it is a DAP that may transfer more value for example so in that case you can choose to not send back that key to the DAP and in that case every time there is there is an action to be done by the DAP you will see the notification on your phone saying the DUP would like you to approve that transaction you can say yes or no if you say yes you send back the signature and the DAP will really tap transaction to the blockchain so a few words about a security model I think this is something that is really key to a wallet and actually key to a lab experience so as as I've mentioned I insist on that the dabke you create and you may send back to adapt is only authorized to interact with certain method of certain contracts so that's very that's very important because actually on the blockchain it's very difficult to say what has value ether has value over the near sea 20 is just a contract they may be NFT tokens for example was the value of an empty token so it's very difficult to have a filter and to know when an operation transfers value on the blockchain so it really should be the users who can decide is this an operation that I approve or not of course we have a daily limit on the wallet and we also have a tab daily limit so should something wrong happen your tabs can only spend up to a certain amount of vic-20 and eater that you have defined for period of 24 hours and because we have this concept of a daily limit in place actually the very fact of authorizing a tab key could be problematic indeed the small demo anytime a tip is a bit drunk you leave this one open someone takes the phone you cannot transfer all the token as Itamar shown but actually if that person has access to a malicious that it could quickly authorize a malicious tab and then that would to transfer all the token so when you added up key there should be some control on that so for us if it's adapt that we know that Arjun we know we have created we have audited the smart contract we will put this contract and method in what we call adapt registry and so when you try to authorize that DAP it will be made yet for the data that we don't know this will take 24 hours so again if someone took your phone and trying to authorize a malicious that you still have 24 hours to actually they take that block the action and make sure that nothing wrongs happen so for the moment we have this def registry which is owned by Arjun but of course we would love that to be a community effort because we shouldn't either want to decide what's what's a trusted lab and what's not and finally this is what we will show with these toggle users and decide on the critical action that should only be accrued on the phone so for us I think this is call to a mother is that the church should be in the users home of course we have to inform them but users should have the choice to define which level of confidence in a given def interaction yeah so hopefully you are not impressed by what we showed you and you're wondering oh can I do that for my DAP well actually it's it's very very simple almost ten lines of code depending on how big your configuration is so you can just import the arch and connect this ek it's an NPM so very simple to install you define your configuration so that's really the information the DAP will send to the client so name logo and then the contracts and method that the DAP wants to interact with finally in your Dom you include the Argent button which receive as a parameter as a property this configuration and then a single call Val callback method that will basically be called when the connect experience is complete and this method will receive the web tree provider that then you can use in your code to to create your double experience so almost ten lines of code one more demo we wanted to show you because we mentioned cross-platform apps mobile etc so this one is not live on my network still tweaking new stuff but basically this all flow can fully works I think for some reason our videos on work on this laptop so here we are so basically the same floor on mobile you click on connect in silver QR code we use deep links you authorize that's literally the facebook login experience from a user perspective and now you are checking in on mobile that can be done on native apps on mobile but could be done on native desktop apps could be done in a smart TV basically it's really really big adduce anywhere anywhere and it will work so it's finally save it there for the last slide so so what's next for us we're still a lot of work on the wallet the more the better the wallet the better done body experience to that so we're adding yet to Krypto so review right now our goal is 10 seconds to onboarding to Arjun with fear to crypto it will go get it to even faster if you don't have any crypto Android launched in April so right now we are live on main net its iOS Android will start whitelisting people in April we are doing work on Wallet privacy working on embodying the first 100 apps specific focus right now on some topics around defied apps we are looking at CDP's die you need swap etc why let connect and universal login to our / bility because as you saw one experience is close to universal login one is more the wallet Connect type of experience so we are talking to Alex and Pedro on these topics so if you want to integrate origin right now we still working on and on hand and win and enhance with every tap developer to make sure we build a perfect experience so you email us adopts at argent at XYZ and we'll really work closely with you to integrate it or you find us on Twitter if you want to try it you can download argent so as I mentioned Android in april i OS there is a wait list we are for HTC will whitelist anyone who joins during HTC so you can try it so you use that link Arjun that link / HCC 2019 and within about 24 hours your wallet will be created and you go on add CC dot Paris to try the dubs do check in so at CC dot Paris you will figure out in the up in the identity tab it's all explained there and that will be live for a few weeks just around HTC I think that's it we'd love to answer any question you might have so the only thing we can say is we fully agree so for us we need to see universal login and wallet connect getting closer closer so what know we talk a lot to Pedro so that's at the end goal is really connect and then based on your provider no no fully agree so for us you need to connect and based on your ENS okay on your wallet you will be able to to create that connection I think you know we're we relying on that other questions I saw one there it's a good question I think I mean in general when we build I mean we in our background we've built many products before the blockchain era and I think my learning is just how we treat dubs has apps I mean I would remove the D for a minute when you build it so now with or if it's a game it needs to be a an awesome game I would think about the end the end user experience and prime you solve and then so okay what what we call frictionless we remove the need for from a user perspective there is no more really wall between the app and D and the wallet you basically use add up like you would use an app you click on button on a website you click on button so that's where to be unless we stopped so making sure user can use the app and they don't need to know if it's web 3 and adapt or if it's just a normal website then of course that developers have to come with brilliant idea build awesome user experience but we removed the need for them to think about this old part around the blockchain the crypto so I want to see more developers building more apps and not having to worry about the decentralization part of it from a user experience perspective so do we take the last one yeah it's happening you very soon we're just walking on the security aspect of it but yeah very last one and we're done and we unpack I'm unpacking while we to the question yeah yeah so for that experience for example that you so the end user does not need either you can download argent have no easier on your wallet go on it see see that Paris you will be able to check in so so today we pay for the transactions long-term argent pays for every transactions right now fully we will build a fair use policy we are not planning to pay on behalf of Dobbs but our technology will allow daps to decide so argent can pay a DAP can pay for the gas or the user the contracts allows every everything yes thank you well we are wrong if you have other questions because I think now [Applause]
Automatic transcript — names and jargon may be misspelled.