Antoine Sparenberg - The case for native account abstraction
EthereumZuri.ch 2024 · April 2024 · 20:15
Antoine Sparenberg makes the case for native account abstraction, drawing on Argent's work championing account abstraction in the Ethereum ecosystem since 2018. He notes that while its importance is widely acknowledged, implementations differ, and argues that new-generation layer 2s following Starknet's lead by building account abstraction in natively and removing EOAs are likely to lead adoption and capture new users.
Speakers
Topics
From EthereumZuri.ch 2024, hosted by EthereumZuri.ch.
Transcript
hello yes so I'm indeed from arent uh my goal today will be to explain you and maybe even convince you of the reasons why at at Argent we have decided to primarily uh build on Stark net and this with a very um you know particular focus and angle which is account abstraction so very uh shortly so I'm the ecosystem Le at arent I have a business background and I have a very strong conv conviction with which is that um blockchain Technologies today won't be able to reach Mass adoption because the ux is too bad um and you know you cannot just push a technology from a you know very small group of
early adopters that we all are um to mass adoption if you have bad ux that simply doesn't work luckily I also have another strong conviction which is that this can actually change so we can improve ux but it also requires us to as an industry make some very uh B bold and big moves so I think it's it's important to understand a little bit the history of aent to understand uh where we want to go so agent is actually already quite a pretty old crypto company it was founded in 2017 and back in 2018 we released our first product as you can see there it was a mobile wallet uh and I think it was probably the best ethereum wallet
back then thanks to account abstraction so uh together with safe uh back then we were the only ones to do account abstraction and the experience was just very good so you know the the the app was very Sleek agent would sponsor transaction fees um users would not have seat phrases so they can actually sleep at night because we came up with this new concept of guardiance and social recovery um so you know it was a very good product aent today in 2024 is the best uh stocket wallet so we are the biggest wet on stocket we have 75% of market share and we actually have multiple products uh on stocket and so you know this Legacy product that we have on on ethereum we still maintain it
but 100% of new development Innovation is now done on stocket and then if we look a little bit forward let's say Argent in 2030 uh the idea there the vision is to become revolute but without the bank right so to have this kind of super app where you can do anything um you know pay for your groceries exchange value um invest in crypto invest in stocks book a flight uh book a Airbnb this kind of stuff and we want to do this and we are doing this we are building this uh based on stocket we use starnet as our backbone and I think it's important to understand um why we want to get there using stocket it's important to understand what actually happened between 2018 and 2024 in terms
of account abstraction Innovation so so you know most of the problems we have today uh with ux in blockchain and and on on on ethereum uh because we talk about ethereum today mainly um actually comes from the onset of ethereum right so at the time it was deemed that we would actually have two different types of accounts on ethereum on the one hand externally owned accounts also called EAS I call them basically dumb accounts right they cannot do anything um they are yeah they cannot do the only thing they can do is actually originate a transaction um initiate a transaction and we we said okay well these accounts these DB accounts uh they will actually be used
by users and then there is this other category of accounts contract accounts these are smart accounts these are you know smart contract that can execute codes and you can actually add a layer of intelligence to these accounts so they can do all kinds of nice stuff and we said these accounts they will be uh used by protocols and the only trick there is that is that these accounts because they are used by protocols they cannot initiate a transaction so they need an EA they need an externally owned account to First initiate a transaction before they can do anything and so from the very beginning users have been stuck with these you know bad ux EAS consequence of that is that users are turning to centralized Solutions
instead of using this bad EAS which you know are not nice to use they turn to much nicer to use Solutions why because uh well centralized solutions they offer familiar your web to ux so you have you know easy onboarding easy recovery when you lose access no seat phras you can sleep at night uh risk detection and tofa everything done in one click you don't need to ERC approve everything or even do some kind of uh you know stupid um uh infinite approvals and so at arent we believe that EAS actually are a danger to self- custody because they impose that tradeoff between self- custody and user convenience and if you want this industry to move uh you know from this
this this small ecosystem that we have today to move forward we need uh you know to have this good user uh user experience and user convenience so the question is can we offer the best of web 2 ux in web 3 or can we offer the best of web to ux while also preserving self- custody and the answer is yes let's use contract accounts for users they are smart you can you know build all kinds of Logics on top of them to improve those those ux issues that we have but remember from one of the first slides the issue the big issue there is that contract accounts they cannot initiate a transaction right so it's difficult for them to be actually owned by users and so some you know smart people
they came together and said well let's emulate transaction origination from a contract account and that that is actually what smart accounts used to look like back in 2018 so on ethereum back then um you would have you know two different types of account accounts EAS and and small accounts if you use an EA well you're you initiate a transaction it goes um to the m pool it's being picked up by a node and then sent to uh the blockchain for uh execution if you use a Smart account uh well actually uh remember with smart account you cannot initiate a transaction so instead of initiating a transaction what you would do is send a message to something that was called a relayer which is essentially an eoa and
that relayer would put that message M into a transaction it's an EA so it can initiate a transaction and it would send the transaction to the man pool where then is been picked up by the node and then sent to the blockchain and you know it's it's pretty good uh it worked pretty well at aent we used to have our own uh relayer but we are in crypto and blockchain and you know we have these fundamentals IDs that we love such as immutability and decentralization and the issue with that model is that it's not very decentralized right because the relayer is actually centralized point of failure the relayer is operated by a company so at Argent we had our own relayer and then what happens if the relayer goes down what happen if the
company goes down or disappears for some reason um how do I then use my smart account right so people did not really like that um it's not a perfect solution but it used to work then some other smart people came together and then they said well let's then decentralize that relayer and we will call this ERC for 337 which you have probably heard a lot about in the last year um and so yeah that was you know uh smart accounts in 2018 and this is now smart accounts on ethereum with ERC 4337 and so well you see you still have these two different types of accounts EA and smart accounts if you use an EA well your transaction just still follows the same flow now if you use a Smart account
it's a bit different because that relayer has been decentralized so um we have introduced the concept of bundler so the bundler basically does the same as the relayer but anyone could theoretically run a bundler so if a bundler goes down there is another one that is run run by someone else that will take over right um and so now your smart account still cannot initiate a transaction but it will send it's not a message anymore it's what is called a user operation to a mol um and there in that mol the bunders will come pick up uh many user operations bundle them together into a bundle transaction and push it to the normal man pool where it's picked by by the node but there is a trick because you know the user
operations of many different users are all bundled together in a transaction before reaching the blockchain for execution that bundle transaction actually needs to go first through a smart contract which is called an entry Pond contract where it's going to be unbundled um and so you know basically all the user operations are unband unbundled and then sent to um to the blockchain but of course uh still not perfect because in this model where does the account abstraction capability happens in two places first place is the Smart account so you have many you know smart account capabilities that are um you know managed by smart account I'm
thinking about uh I don't know social recovery typically um and but then also in the entry Pond contract because that's where uh user operations are un unbundled right um and so typically if you want to run a master for those who don't know AP Master enables dabs to uh sponsor transactions for the users or users to pay gas fees with whatever token they would have in their in their account so it's a way to abstract uh gas fees and and gas cost um if you want to run a pay Master the pay Master needs to interact with the entry point contract right uh we can think of other use cases session keys this kind of stuff they will need to to interact with the entry point contract and so on ethereum with
ERC 4337 um on on the slide there it appears very clearly that if you use an EA at no point you will have Smart account or account abstraction capabilities right your transaction flow won't go through the entry point contract um so typically with v rc4 337 uh if you use an EA you cannot benefit from pay masters as an example and actually this is a problem because from a d perspective now I'm building you know a decentralized application um I now need to actually identify whether my users are on EAS or on Smart accounts that is pretty easy to do if they are using smart um EAS then I
will just offer them the normal trans the normal flows that everybody knows with normal ux which I think is is pretty bad um but if they are on Smart accounts then it opens many possibilities I can completely rebuild the experience I can you know bring all these uh account abstraction capabilities to users and that means I probably need two different uis I also probably need two different contracts actually I'm building two different products one product that is tailored for EAS and one product that is tailored for smart account and the issue is that dabs don't do that they don't do it because they have no short-term incentive to do it today still 99% of users even more 99% of users are still using EAS so they
have no incentive to do everything you know build everything twice uh and build these very nice uh Sleek experiences for smart accounts if all their user base is still on o and it's it's a chicken and egg problem because users have no incentive to switch to migrate from EOS to Smart accounts because actually the experience today is not better on a smart account and actually it Bears a cost to migrate from EOS to Smart account typically you need to uh give up on your transaction history which we all know we don't like to do um and so yeah we are you know kind of stuck in this um chicken and egg problem so yeah why would I build to user flows if 99% of my users are uh using
EOS and so you know some other people uh came up with this this this this this idea uh well actually what we need is to integrate smart account natively at protocal level so we will do this on the ZK rollup for scalability we all know that uh L1 you know is too expens Ive and we will integrate account abstraction at natively at protocol level so basically what it means is that now smart accounts because I'm building a new Layer Two I can you know decide the rules from from day one smart accounts can actually initiate a transaction so they have now this power um and you know well we have now a single man pool and transaction flow so smart accounts are finally first class citizens that is what znc era did right
so if you used znc era um already so basically this is what it looks it looks like so you you have living together on Z casing era EAS and smart accounts um and you have a nice transaction flow and you might notice that actually when uh initiating trans a transaction from an EA the transaction flow actually goes through the entry point contract which is called the bootloader on ZK sync um and so you can you can um use a pay Master revenue on ZK sync which I think is is pretty interesting so you have some account abstraction capabilities on casing era um but still you miss a lot of them with when you use an EA because you don't use a Smart account so all the capabilities that are dependent on the
account uh social recovery which is a very nice one uh you you cannot do them [Music] um yeah but still it's not enough still we have that issue that DBS on the casing era and believe me I have tried to push them to do so many of them most of them they don't be build these account abstraction specific experiences why because still most of their users are using EAS because most of these dabs zyn R and evm compatible chain so most of these dabs they actually come from other chains right just just integrate zync as another uh blockchain another network and on all these other chains there is no native account abstraction
so that they don't bother just creating a new very nice experience for the Z casing era users while they actually have so many users on other chains um and so we are still stuck with this issue on the casing era and the message here basically is technical feasibility isn't enough right and I like to Shi native account abstraction on uh on Twitter and two weeks ago people have started to answer to me that actually account native account abstraction has been happening on Solana for years already so they already have this system where they also have two two types of accounts on Solana uh and one type uh you know it's it's kind of a smart account and they can initiate transaction um but they they have been stuck with um on Solana with basically
what um Zing era is experiencing now for and they've been there for years it is still the problem that DBS don't build these specific experiences users are still uh using EAS and just to give another example of um what inertia looks like um if you want your dab to be compatible with smart accounts you need to be you need to be compatible with and support something that is called EIP 1271 which has something to do with smart account smart contract signatures so typically if you are not compatible with this EIP that means that users that are using smart accounts they can even connect to your D right this was released in 2018 it's now 2024 we still have many
prominent DBS on ethereum that do not support EIP 1271 there is actually an interesting website called e271 doio with a list of all this you know prominent DBS uh that you cannot use if you are using a smart account because it's they're not compatible so just to give you an idea of how um inertia um can actually make things last for a long time and so yeah coming back to this you know basically at Argent we think that uh account abstraction ERC 4337 account abstraction is not going to happen before a long time because of that inertia problem people don't migrate uh to Smart accounts and you have no uh specific experience for smart accounts
maybe on Z casing era it's going to happen it's kind of middle ground it's going to happen a bit faster but still it's going to take a long time um and that's why we decided decided to focus on stet and stet did something very bold that just said well the problem you have here is actually EAS the they provide a bad experience why do we keep EAS and they just got rid of EAS right so this is what the transaction flow looks like on stocket you just have Smart accounts that means that 100% of users users on stocket are on Smart accounts that means that dabs can now really focus on bringing you know new kinds of experiences um to users and maybe to new users as well um because users have no
choice anymore so yeah actually on stagnate stagnate is still a pretty young Network um but uh account abstraction is already a reality so I just put there a few examples of stuff we have implemented with agent so Argent Shield that is toofa so you can use a second factor to your add a second factor to your account if you're SE phrase is uh I mean leaks for some reason um you know the attacker won't be able to move your funds without having access to that second um second factor which I which I think from a security perspective is is a very nice feature transaction review so your wallet will tell you if you interact with a website that is a bit Shady or that we don't know or if you interact
with a smart contract that does something a bit weird typically when doing a swap sending the tokens to another address um the third one I really like it so on stack net um all transactions are multic calls so you don't do erc20 approvals anymore right you know this thing where you need to approve your tokens and first you had infinite approval and now you can actually put there a number but actually you put very high numbers because you don't want to do this every time um this is all done in one call in one transaction uh on stock so we approve exactly the amount of tokens that you need to swap and then the approval is removed uh once it's done so the dab never has access to all all your uh tokens and then last example is an email
uh email and password signing uh which I think is also great to uh reach new audiences so yeah basically you know I like to say that stet is a blue ocean in the L2 copy cat landscape every two week you have a new evm compatible uh L2 that is launching where there is basically no innovation anymore all the DBS all the protocols on these l2s they are just copycats of what is happening somewhere else innovation has been completely killed and starnet uh did I think these two very bold moves so they have a new programming language which is optimized for uh ZK proving and heavy computation and that also opens new use cases and you know there is this native account abstraction uh but without EAS that's
what I call I call 100% native account abstraction so that's going to uh be it for today so I I hope I convince you of a few things the first one is that blockchain ux is very bad so we need to change it second thing is that it's possible to change it we need account attraction and third thing is that account attraction won't happen before a long time because of this inertia on most evm compatible chains while it is already happening on stack net and that's why as a smart account wallet uh we have decided to use stet as a backbone because we want to provide users and also new users um with um better capabilities uh thank you I won't take questions now but I will be you know
around so don't hesitate um would be very happy to discuss thank you thank you so much Antoine