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

Loading player…

The Future of Ethereum Accounts: Contract-Based Accounts – Shane Fontaine

Ethereum DenverFri, Oct 9, 2020, 12:00 AM

This talk is from ETHDenver, the world’s largest Web3 BUIDLathon and Community Gathering. ETHDenver’s content is crypto and blockchain focused. Subscribe to our channel to learn more + connect on Twitter: https://twitter.com/EthereumDenver. Speaker: Shane Fontaine of Authereum Abstract: Contract-based accounts offer users a number of features that are not offered by traditional, externally-owned accounts (EOAs). The following advantages of contract-based accounts will be discussed: Batched-transactions allow users to execute multiple transactions in a single, on-chain transaction. This feature also allows dApp developers to design their dApps with a more natural feeling and, in some cases, completely remove the need to teach a user about the underlying mechanisms. Additionally, contract-based account meta transactions will augment this new dApp design and allow for a seamless Ethereum experience. Meta transactions aid in user onboarding by providing the ability to pay for a new user’s transactions or allow a user to transact in a token of their choice. The Ethereum experience with this feature will be unlike anything we have seen to date. A native cryptocurrency firewall does not exist at this time. Contract-based accounts allow for logic to protect users against malicious individuals, dApps, and entities by adding a security layer directly into the wallet itself. This feature coupled with meta transactions pave the way a traditional Web2 firewall to coexist with a Web3 one. Using a contract as a wallet also allows for more flexible recoverability. By associating funds with this contract (instead of a single key), a user can assign multiple keys as owners to funds. Losing one key may no longer force a loss of funds. Creative account recovery methods will be explored. Finally, the future of contract-based accounts will be discussed. Upcoming implementations and companies working on this technology will be reviewed and their pros and cons will be discussed. Advanced and theoretical topics on the subject will be presented to close out the talk. This talk was recorded Friday, February 14, 2020. ETHDenver 2020’s content themes included DeFi; DAOs and Token Engineering (TE); Gaming and Usability; Protocols and Interoperability; and Public Good and Social Impact. Industry experts also weighed in on topics like decentralization, privacy, identity, non-fungible tokens, scaling, governance, diversity, and arts and culture in blockchain technology. The 2020 event was February 14-16 in Denver, Colorado and hosted 2000+ blockchain enthusiasts, developers and community members from 50 countries and 50 U.S. states. 🔴 SUBSCRIBE ETHDenver’s YouTube https://www.youtube.com/channel/UCgz9NU06t_FkT0Py1Vadczw 💡 LEARN ETHDenver’s Official Website https://www.ethdenver.com/ 👋 CONNECT ETHDenver Twitter https://twitter.com/EthereumDenver 📖 READ ETHDenver News on Medium https://medium.com/ethdenver 🛍️ SHOP ETHDenver Official Merchandise bufficorn.com 💬 CHAT Telegram https://t.me/Ethdenver Discord https://discord.gg/jteMn5c 📱 FOLLOW LinkedIn https://www.linkedin.com/company/ethdenver Instagram https://www.instagram.com/ethdenver/ Facebook https://www.facebook.com/ETHDenver/

Transcript

my name's Shane Fontaine and the title of my talk is the future of aetherium wallets contract based accounts first Who am I co-founder of aetherium we are a login solution for aetherium and we use contract based accounts on the back end to enable people to use crypto very easily I'm also co-founder of Xero trust and we did a bunch of audits we audited open Zeppelin augur D Central and Trust open and a bunch of others and also I'm a co-founder of the gas siphon attack it was an issue a lot of exchanges had with etherium where someone could effectively steal a bunch of crypto from exchanges and they would never know and we ended up telling all the exchanges and working with them to fix that so the talk of the title's contract based accounts but to understand those first we need to understand what we have now so what we have now are called externally own accounts if you have an aetherium account it's probably an externally own account or a neo a and that means that you have a public key and a private key and your money is all all your value and all your tokens are stored on one key and that key has access to all your funds and that's what we have now but in the future we're gonna have these things called contract based accounts and what that means is all your money is no longer on one key but rather it's in a smart contract something like a wallet and what you can do with that is you can assign many keys to your wallet and you can have effectively a number of different ways to access your funds as opposed to just having one key when there's a lot of things you can do with that and this is what we'll do we'll talk about now and so so the pros of a contract based account versus just a normal yo a and there's many and this is just a few but it's programmable you can do things like batch transactions meta transactions you can have web 2.0 style security you can recover your account much easier and there's also transport ability and I'll talk you about a few of these today and cons a lot of people ask why what's the bad thing about contract based accounts and there's not really much they do cost more than a UA but that's not always true either so we'll get into why that's the case so there's four big topics of this talk and this will be the most most text you'll see on the slide so don't worry about it but we'll go over batch transactions which means users can send multiple transactions in one transaction on chain will go over meta transactions meaning it's a new way of transacting on on aetherium and it allows for a number of advantages we'll talk about the new security features you can have with contract based accounts and the recoverability that comes naturally with contract based accounts as well so the first ones batch transactions in instead of explaining it to you I'll kind of show you what a batch transaction is and I'm sure a lot of you have seen this ether scan type of page but what you might not have seen is all those token transfers and so you can see there if you understand what you're looking at there's eight different transactions going on in this this one single on chain transaction and what this is doing is is this one person making one transaction on chain but really interacting with eight different tokens and transferring many different things this is because with the contract base account you you can really batch all these transactions together and send them at once and the advantage of this is is you don't need to send eight different transactions and if I'm sure most of you have sent a transaction on the main chain and it's a click a button click another button wait 15 seconds do it again and if you had to do that eight times it's really redundant in with contract based accounts you can do it one time and it fixes everything and so so here's the definition of it this is going over what I just said but there's another cool feature of these things is that you it will allow app developers to also design their app in such a way that they can batch transaction so you know no longer have to see things like approve and transfer you don't need to force your users to understand why they're clicking so many buttons at once you can do it all in one one go and so this is a pretty pretty obvious example I'm sure many of you have seen Eunice WAP but when you go to trade a token on Eunice WAP the first thing you have to do is approve the token and you guys know what that means but you have to approve a token wait for the transaction and then you can actually swap which defeats the whole purpose of Eunice WAP being simple and easy and so what can happen with batch transactions is you can actually approve and transfer in one transaction and so that unlock a little icon over there that you should never have to see that in the future if that's if contract based accounts become a really big thing and then there's even worse or even more adapts that have even more interactions and a lot of times the users just feel like this and and they don't know what they're doing and they're clicking buttons and and that's really the experience we have now and it will change and it will change pretty quickly in wire batch transactions important the time I mentioned if you are sending eight individual transactions that's gonna be at least two three if not five or six minutes and you can do that in one 15-second transaction and then money and so earlier I said that one of the cons of batch of contract based accounts is the cost and that's because when you send a contract based account transaction there's a little bit of overhead moreso than a CoA that that you always don't have but if you do something like batching transactions it actually reduces the cost so if you want to send 8e o a transactions that's gonna cost more than batching a transactions in one one contract transaction so it really does help the whole ecosystem by batching transactions like this it lightens the load of the network and there's really not many downsides to doing this another thing is meta transactions so meta transactions are the idea of taking a transaction signing it and sending it to someone and then having that person send it to the network so as it works now if you make a transaction you sign it you send it to the network but meta transactions are this concept of signing something sending it to someone else the usually called the relayer and then relayer sending it to the network and we'll go over why why this is cool and here's here's a nice actual graphic on it and so you can imagine you're the guy the number one in what you're doing with the Mehta transactions you're just signing the transaction you're sending it to a relayer which is about it's basically a server the server takes it they sign it in the same way that because a signed transaction is what goes to the network the relayer sends it to the network and then what gets sent back to you as the transaction hash so to you the user it looks the exact same but what's going on in the background creates a ton of efficiencies that that don't exist with the OAS and so there's a lot of things you can do with this and so the idea being with most meta transactions the relayer pays the fee but if if you're using a meta transaction the relayer will pay the fee and then usually you the user pay the relayer back and so that's how the economics work behind it and so really it's it's economically the same as you sending a transaction but instead of you paying the network you're paying the relayer who's paying the network but with meta transactions you can do cool things so one one thing you can do is something we do a tile theorem is we allow fees to be paid and die and so I'm sure a lot of you have experience trying to send a token and realizing you need eath in your account and to pay the gas fee and then so you have to go find Ethan it's a big headache but what you can do with meta transactions if you're using a relayer that accepts tokens as guest fees you can actually only ever have died in your account and you can only ever interact with died and never even have to hold eat to make aetherium transactions which is unheard of right now and it will be a thing in the future and so you can see here something we've done at aetherium is is make a die first experience and so what that means is when you when you make an account you get you're prompted to buy dye you use dye you send dye some users will never ever touch aetherium yet they'll interact with the network in the same way they would a normal account and then I see it's a little small but but this is a another ether scan link and you can see here there's two token transfers and so this is me sending someone a token and so you'll see at the top there's five dye being sent to someone and then right under that there's a smaller amount of diving sent that died being sent is the fee I'm paying the relayer who actually paid the transaction and so from me the the account owner I never touched Eve and I made it was able to make this transaction and so that's something we haven't seen yet and we're gonna see a lot more of in the future and this is another page but but what this is showing is something even more advanced again two transactions one die the me sending died to someone but the the second transaction is a zero die transfer and so what that means is the relayer sent the transaction for free so I the user didn't actually even pay a transaction fee so this is something that's only possible with meta transactions with aetherium all the transactions are free so if you use our theory of now you get all free transactions and it makes you onboarding just incredibly easy another feature of contract based accounts is web 2 security and so there's a lot of advantages of having firewalls in web 2.0 style security that we don't see in crypto and with meta transaction arms or with contract based accounts you can't actually do this and so there's a list of a few things we can do and we'll go over a few of them I don't know if many of you remember the ether Delta hack there was a an issue a long time ago where someone changed the front end of ether Delta and effectively anyone who went on a third Delta who had their their money stolen and so there's article after article after article written about this and and there was nothing anyone could do a bunch of people lost hundreds of thousands of dollars and it was a nightmare for the ecosystem but with with contract based accounts and and web 2.0 style security you can do something like this something like meta mass does where if if you we do detect that there is an issue that someone's being hacked that there's a bad website you can actually block the website and my block I mean show a warning like this you can say hey user you looks like you might be interacting with a malicious website you might want to take a look at this and that's one of the potentially the biggest things we can do with with contract based accounts now we are contract based account should be censorship resistant so users don't they might see this screen but with of--there IAM and with most other contract based accounts they can get around it if they think they are safe they can get around it there's nothing off the areum can do to stop users from sending transactions and so we what we do is provide a convenience layer and try to show people hey this this may or may not be a bad bad application web 2.0 style security we can do biometric security and so say you want to send a transaction but you want to be have some sort of 2fa on it you can do that with your thumbprint or just simple face ID and that's gonna be a game changer because we don't see biometrics in crypto so much right now and then there's something cool we've talked about but would not have we haven't yet implemented is a per contract function whitelist and so this is a little more abstract but you can imagine interacting with something like you know swap most interactions on you know swap only call one function and so you'd imagine there's a you know swap contract and there's one function that most people ever call what we can do with contract based accounts in web 2.

0 style security is say hey if the user is not actually calling that that function don't let it go through and this might be the case where someone malicious took over you know swap is and and is trying to send malicious transactions elsewhere but what aetherium users and a lot of contract based accounts can do is actually say hey your transactions not going where you think it's going let's stop you or warn you and say are you sure you want to do this and so it really gets down to the contract level where you can start implementing security layers that we we don't see today and then one one more feature that that is really the biggest game changer contract basic outs is recoverability so like I said earlier on the way we have it now externally owned accounts are one key all your values on that key if you lose that key you lose your money and that's not not cool a lot of people aren't going to be able to do that especially crypto people or non crypto people but what you can do with contract based accounts is you can imagine your contract based account is a wallet on the network and you can access it with a number of different keys and so it's a multi-sig in some sense but there's a lot a lot of cool things you can do to actually recover it so one thing you can do is set up many keys to access your funds and so you can hook up your meta mask account you can hook up a ledger you can have a seed phrase all of these can be ways to access your funds but as you know right now if you have a meta mask account you you only have a meta mask key if you have a ledger you you can only access your ledger your seed phrase is the same way but what you can do with this is you can have three different types of keys all accessing all your funds you in you can just split split them up and do whatever you want with them and it's a really big paradigm shift that we haven't really seen much of today but it's gonna make usability so much easier on etherium there's also this concept of social recovery a lot of people have been talking about and the idea here is you can set trusted parties set trusted people in your life that hey if you lost your key these people can all come together and recover your money for you and so it's a it's a little newer newer way of thinking like trusting your friends with your money no one of your friends can actually have access to your money at any given time but together they can and so what you can do with social recovery is is really put the recoverability on people instead of on technology and that's something that's really interesting in a new way of thinking there's a VIP out there one of the etherium co-founders miguel is one of the co-authors of it but we're really trying to push this forward and get this into the hands of people because we think it's gonna be one of the best usability increase improvements and all of crypto really and then what's what's the future what's what is the future of aetherium in wallets and what does that look like even past what I just talked about it's really a way to have a programmable wallet and so if the area ms is programmable money and we've heard this a lot smart contracts allow us to put limits on on value transfer but having these contract based accounts really makes your wallet programmable you can do things like set set daily limit you can only allowed apps to spend up to one eat you can only spend one eat per day on a dab or whatever really imagine you can program into your wallet and this is one of the first times where programmable wallet is is available and then there's some other things you can do that I didn't even mention and so I'm sure a lot of you have heard about tornado cash we can integrate privacy into these things as you know a lot of transactions on not a lot all of transactions on aetherium are public and if you integrate tornado cash or some privacy layer into aetherium or contract based accounts you can completely remove the public nature of some of these transactions right now I said earlier that the transactions in contract based accounts are relatively expensive and over time I think they're only going to get cheaper we can drill down to the the bits and get really really efficient transactions that'll make them really ubiquitous in the space they can be ported over to consortium chains and maybe even other chains as well right now they're really prevalent on etherium but but it doesn't have to be just that and you can have more granular controls I said that you can set daily limits per trends per contract I said you can only call certain functions on on you know swap in different contracts and you can really whatever you think of you can you can do and then anything you there's really anything that that's possible with these things as long as you can program it and not as long as a theory I'm in the EVM supports it how can you use one today you can make an author areum account that's our company and we think we did a pretty good job of this it's we made it super simple like I said we pay for the deployments and also transaction fees so if you're using an author areum account today you're not paying a single transaction fee and it's we've seen we launched a few days ago and we've got a tremendous feedback and said that's one of the best onboarding user experience things I've ever seen and then everyone likes free money so if you want free money we currently have a pin tweet on our theorem site if you retweet this with your aetherium name which is something off da teeth you get one of those when you make an author your make out if you retweet this and put your name will you Tendai to enhance the user experience even further and so I'll leave this up on a screen the screen for a second but we really want people to be able to use and experience aetherium in a very easy and simple way and we think we've we've we're in a good spot to be able to help people to do this and that's pretty much it that's all my contact information there's a few of us from aetherium here we're all wearing this kind of shirt and we have shirts and stuff too to give out and thank you for coming to this talk [Music] you

Automatic transcript — names and jargon may be misspelled.