The Future of Wallets: MPC vs Smart Wallets and How Account Abstraction is improving UX
EthPrague 2023 · June 2023 · 19:22
Ivo Georgiev compares the two technologies he expects to define Ethereum wallets: smart contract wallets built on account abstraction and multi-party computation (MPC) wallets. He argues that seed phrases and single private keys, not users, are what hold back self-custody, and that multisig-style logic enables easier onboarding, account recovery and multi-factor signing. He rebuts myths about smart contract wallets, citing EIP-1271 message signing, and concludes that account abstraction is more future-proof, with MPC useful as a transitional tool.
Speakers
Topics
From EthPrague 2023, hosted by ETHPrague.
Transcript
I'm evil and I'm gonna tell you about the future of ethereum wallets and more specifically two pieces of technology which are going to define the future of ethereum wallets namely smart contract wallets otherwise known as account obstruction and multi-party computation computation wallets or MPC wallets um so let's see I think the clicker is not working oh yeah so the thing is why do we need anything any change in in the way that wallets are at the moment well there is a myth here and the myth is that um that people are not ready for self-custody and people are not ready to
take this responsibility and that most people are just not suited for self-custody right but the reality maybe is the opposite the in reality perhaps um perhaps wallets themselves are not suited um for people right like wallets are not suited for normal humans so perhaps we are the ones which are who are not ready I mean the builders are the ones who are not ready for um for for self-custody and not the users so I'm not sure if this is working yeah uh it's working so um what are the issues with self-custody at the moment well the thing is uh one the first one is onboarding and
onboarding right now hinges around seed phrases and Seed phrases are a completely unintuitive concept for normal people and what I mean by that is that it's really hard to explain to a normal person or even or even a technical person who is not into crypto right it's really hard to explain that the seed phrase is not an authentication factor it's not equivalent to a password but instead the seed phrase is equal to your money so it is literally your money uh if you lose it you lose everything and equivalently if someone takes a picture of it or if someone gets any kind of hold of it you again lose everything and people are not you not
used to thinking in that concept they are used to a different concept which is that there is an account and there is multiple authentication factors to that account and multiple recovery methods like for example a password or a two-factor authentication or someone else like Google who would be able to recover your account uh then the second issue is that wallets rely on private keys this is something that we cannot get away from but we can mitigate and I'm gonna tell you how but the issue with singular private Keys behind accounts is that it's so easy to compromise this like if you get any sort of malware onto the machine which is dealing with the private key like not even holding the private key but dealing
with the private key in any in any way shape or form uh then the wallet is completely wrecked and then the final the final issue is um social uh social exploit so like social engineering and the way that many nft holders lost their nfts so again this is something that we can improve on anyway so um what was the solution to all of this let's see if I skip the slide I might have anyway so um the solution to all of this is kind of rooted uh in multisig wallets and
um the reason that multi-6 are sort of sort of a zero over bullet is first of all because we can improve on onboarding because rather than relying on a singular key which the user has to backup we can use multiple private keys and in that way if we make the if we make the logic of the multi-seek good enough and if we build recovery logic into it then we can not have this Reliance on a single private key and instead like have for example two private keys where one of the private Keys would be on your mobile device the other one would be on on your laptop or one of them would be a paper backup or even in your password manager or whatever and in that way you won't need to like learn this concept of
safeguarding a single C Trace so yeah there's an onboarding improvement then also we have an account recovery Improvement because you we can do any arbitrary logic in multisig where we can say like for example only one of the keys or like if you have a total of three keys we can say three of the keys can sign immediately but two of the keys uh can sign behind the time lock so those two keys can recover the account so even if you even if you lose one of your devices you can still build account recovery thanks to multi-6 then the other the other reason that they are great is a multi-factor authentication so like you can sign transactions on your laptop but you can have a second resigner on your mobile phone and also
you can build logic into the Moto 6 such as if the funds um if you're moving over a specific amount of funds then you would need the secondary factor and then also of course they're more resistant to compromises and this is something that the safe team has been talking about a lot obviously when you have not a single private key securing the account but multiple private keys even if one of them gets compromised you're much you're much safer um so let's look at the two ways uh to build multi-6 at the moment into into wallets so one of them is account obstruction also known as a smart contract wallets uh smart accounts smart wallets whatever whatever you like to
call it uh there are multiple names for it and then the other way uh is multi-party computation wallets or NPC wallets and basically MPC is a way um it's become known as a way to do ecgsa signing over multiple devices and you still have overall you still have like one private key but you manage to Shard this private key into multiple like let's call the mini private Keys it's not exactly what they are but let's call them that and then uh using uh using a specific algorithm you can distribute designing over multiple devices two or more and then the other solution account obstruction um is basically having a smart contract as a wall as your wallet as as your
wallet account so the account can actually contain executable logic and this allows you to build any arbitrary logic not only not only a mood sync Wallet not only account recovery but also other cool things that we're gonna get into uh so there's there's a bunch of uh food that's circulating about smart contract wallets or about account obstructions that recently got uh that recently got quite well debunked uh but I think initially coinbase was kind of spreading it because of their MPC wallet launch um and they've come around since then uh obviously since the rise of account obstruction in University 4337 but uh some of some of that some of those myths are first of all the smart contract
wallets cannot sign messages uh so this is false there is EAP 1271 and it allows smart contract wallets to sign messages just fine uh the thing is that adapts need to implement it and daps need to be aware of this of this uh this is by no means to say that most apps do not support account obstruction most apps do support account obstruction it's only the ones that heavily rely on on verifying science messages that have to do this extra step in order to support account obstruction but the good news is that many dabs have been improving in that regard and even openc which was one of the notoriously big broken dubs with account obstruction fix this uh so yeah uh then the second thing is that
um smart contract wallets cannot have the same address over multiple chains and that they require an extra deployment step uh you've probably seen this in Argent like when you sign up uh you need to deploy your wallet which to a normal person doesn't mean anything right so you cannot explain to a normal person that they need to pay a gas they need to pay a fee uh for something that isn't even um like doesn't have a direct benefit to them so this is again something that could be avoided um you can do create to counter factual deployment and you can have the same address on every evm chain and you can skip the deploy step so you're not exactly skipping it but you're deferring it until your first transaction so the first transaction is going to be a bit more expensive but as a user you're not
going to feel uh this additional step of deploying the smart contract wallet and then the final uh the final Miss is uh related to gas overhead and fortunately uh through some clever optimizations we can get the gas overhead of account obstruction down to uh down to about 10 000 gas this involves a delegate co uh and this involves uh IAC cover operation but the cool thing is that thanks to your c4337 we can get rid of the 21k gas overhead of every single normal Airway transaction because 4337 allows batching On a Block Level and if you get batched together with someone else you can get this gas overhead pretty much eliminated
and then we have 21 000 overhead for Airways and then 10 000 overhead for smart contract quality so you can kind of make smart contract wallets even cheaper um so there is much more to this um and one of the one of the things that's cool about account obstruction again uh versus NPC wallets is that you can uh you can do much more than just multi-6 uh you can do time locks which enable very cool account recovery use cases like social recovery and you can do spending limits so like for example you can have a wallet which is controlled by your mobile device where you can spend under a certain threshold of a stable coin each day and if you go over this threshold or if you like to go
into adapt then you must use let's say a hardware wallet to co-sign the other cool thing and that's really I cannot stress how important this is is that smart contract wallets are mutable and what this means is that you can change the authentication rules of a smart contract wallet over time uh why is this important for example in umpbuyer we have this really cool feature where you can make an account uh with an email and a password and it's still self-custodial I won't go into the details of how of how this is done uh it involves a multicycle under the hood and kind of a lot of magic but the point is that it does involve a software key the software key is part of a multi-six so it's more secure than a usual software
way but still it's a form of compromise right so the cool thing with this is that you can start with email and password authentication and then as you become more experienced more seasoned and as you get more funds in your wallet you can switch authentication to a ledger or to a treasure and you can do this without having to move funds without having to migrate taking positions and you're going to keep the same wallet address so that's absolutely unique you always cannot do this in a new way the key is the key and the key is always associated with this address so you cannot like magically change it to a motor stick without having to without having to move funds um then the other cool thing is gas obstruction uh which is basically paying for gas in stable coins or even
prepaying for gas which is again pretty nice because it can also move the account obstruction overhead uh lower reduce the account obstruction overhead and then the final thing is batching uh batching is also called multiples uh you can do multiple calls in the same transaction and this is really amazing because it can hide away the year C20 approvals and we've been talking a lot about this in the community about how your C20 is flowed and approvals are not great ux but the reality is that this is something that should be solved in the world and should be solved by batching when you have batching you can pass the approval together with the operation and the user wouldn't even know about the approval so it's great ux and it gives the Simplicity of your C20 without having to without having to create a new
token standard especially for this uh so there's a few extra a few extra things that uh that account obstruction can do that MPC worlds cannot do and EOS cannot do uh one of them is automation so having transactions uh egg be executed automatically based on specific rules uh and having specific things done automatically based on specific rules so like a very simple example of this um simple but at the same time impressive would be you can set like a liquidation a roof for your wallet so like if the crypto Market dips well that's that's an example for weekends right but let's let's use it if the
crypto Market dips 20 uh move everything like sell all the tokens for a stable coin uh and you can do this completely trustlessly without delegating control to anyone else uh just by delegating control to a contract which enforces this Rule and also you have you can do flash loans through smart contract walls which is pretty incredible um for a combo is an example of this and finally you can do Advanced cryptography and what I mean by that is uh there is a new standard which is um which is now live in browsers called Web authentication or web house and and this standard is basically like having a wallet built into the browser and it's live right now people can use it and Apple has their own version called pass
keys and the thing is that this is something supported by big companies and it's by definition somewhat more secure and easier to use um as I said it's supported by by big companies like Google Apple and by having this built into built into smart contract wallets you can have account recovery through the key that is embedded in your browser which is pretty cool um so uh something else worth noting is that um with account obstruction you can do snore signatures and snore signatures compare pretty interestingly to uh to NPC into NPC signatures so first of all snore is way more established and has
been has been around for a long time the reason we're not using it is that it had a patent for a long time uh this button has now since expired uh ensure signatures are incredibly simple uh incredibly like proven over time uh and there are multiple snore schemes which you can use like for threshold signatures for multi signatures and they're very cheap to verify um vitalik came up with a very cool easy recovery hack which allows you to verify multiple types of signatures including store signatures for only 3000 gas so this is pretty unheard of anyone who's ever done elliptic curve elliptical verification on solidity knows that the minimum for doing an elliptic curve verification signature verification
operation is like 500 000 gas with this hack you can verify a completely different signature scheme for only 3 000 using exploding is recovers so to speak and this is basically a way to do a multisig with account obstruction in fixed gas so you can have like tens of signers or even hundreds of signers and verify a single signature for only 3000 gas and it has a huge privacy benefit because you do not know who the signers are so you can have a mode to see with hidden signer keys um so uh drawbacks of smart contract wallets and adoption challenges so I would say the biggest drawback for now is that dubs do not support AP 1271 um this has been changing as I said
openc implemented it uh so that's pretty incredible uh but also we have this problem of some dubs and some nft collections um blocking smart contract wallets not on purpose but they block smart contract calls all together without realizing that accounts or wallets could be smart contracts they don't even think about it so we should definitely educate developers that contracts can be wallets as well uh and so uh since since this talk was meant to position like account obstruction versus MPC uh let's look at some of the benefits of of NPC so first of all something that snore also has and I think that this benefit is kind of negated by the existence of snore
signatures but one of the benefits is that it's very cheap to verify NPC signatures you can verify them with a simple easy recover or you can even sign normal transactions on layer one uh using MPC so that's fantastic and the other thing is that you can do truly multi-chain wallets so you don't need smart contract support to do NPC so you can have an NPC wallet which is for both Bitcoin and ethereum so yeah if you're doing account obstruction then you're limited to evm chains or at least to chains that support during complete smart contracts so yeah uh and you don't need any changes in dabs signatures just work uh I mentioned that there is no gas overhead and you can do MPC pretty universally across all chains
um but you do have some you do have some problems uh with uh with NPC wallets and other than the lack of all the features that I mentioned that account obstruction has that MPC doesn't have uh one of the other problems is that all of the cryptographic libraries are kind of new uh and kind of DIY of course everything in programming is DIY but obviously we would feel better if the cryptographic library is is established and moved and isolated multiple times rather than something that popped up a few years ago and then the other thing is that you have you cannot change the authentication rules so once you set up an NPC wallet and by the way a lot of them have trusted setup but that's another topic but once you set up an NPC
wallet the authentication rules are kind of set in stone so like if you like to change some of the signers you either do a trusted you either do another round of trusted setup to exchange the keys or you set up a new MPC wallet with a new address and you have to move the funds over to it um then also currently you cannot you cannot do multi uh you cannot do much parts computation with Ledger and treasure this requires changing the firmware of the hardware wallets themselves uh and uh yeah basically you cannot do MPC together with Hardware wallets which is something that account obstruction can do you can have multi6 and you can have Hardware wallets be designers of those multi-6 so uh in conclusion I would say that account obstruction and smart contract
wallets are definitely more future proof more rich in features and MPC can be a fantastic transitory tool for like um cross chain wallets at the moment but I would definitely say that the future is account obstruction 100 percent so yeah I would I think that that's the does everything and uh thank you I would love to hear questions [Applause] [Music]