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

Loading player…

Account Abstraction and its use cases Panel

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

The panel would be on the topic of Account Abstraction and its use cases. The goal for the panel would not be so much to discuss technical details, but rather what use cases it can unlock and how it can drive further innovation and adoption. How can account abstraction be a catalyst for mainstream adoption? By bringing together representatives from diverse projects and organizations, this panel would aim to discuss some of the use cases not only to lay out in practical terms what account abstraction technology can enable, but also to get the community excited about the possibilities that lie ahead and that are already available. As such, we're trying to bring together diverse use cases of account abstraction with our speakers: Argent (wallet), XLA/XSolla (gaming), Visa (mainstream payments) and us, zkSync (for scaling). Suggested topics to be covered in on the panel: - What is AA? - Why has interest/noise/momentum around AA been accelerating recently? - What possibilities does AA open? What problems does it solve? - What are the applications of AA in the ecosystem: finance, gaming, etc. - Specific to Devs: how can they get involved, what resources are available. - Will L2s help accelerate the adoption/implementation of AA? Alex Gluchowski Infrastructure + Scalability Stage Julien Niset (Argent) Camila Russo (The Defiant) (Moderator) Yoav Weiss (Ethereum Foundation) Rytis Joseph Jan (XLA)

Transcript

to this uh welcome to the Denver uh amazing to be here and moderating this panel with amazing panelists this is on account abstraction so we'll we have a great experts here I'll let you guys introduce yourselves but you are from the serum Foundation Alex from CK sync and Julian from Argent um and maybe we can go from from Julian to to Yuan and just briefly say what Europe what you do and what your project is about and then we'll get to the discussion okay thank you so I'm Julian one of the co-founder at Argent uh and at Arjun we've been building smart contract wallets since 2018 which is as we discussed a form of account abstraction and of course so we've been pushing for the Akron abstraction narrative because for us it's the is the dream in a sense having a chain where our mother is native is what we've been hoping for for five years so very happy to discuss that hello my name is Alex guchoskin co-founder of Ezekiel sync which is the Ezekiel roll-up implementing zkavm of to scale ethereum and uh we're extremely excited about the construction because we believe that this is the technology that will unlock the next wave of Real World Adoption with our users so we we will We partnered early with Arjun to support something like experience similar to account obstruction aziki sync light version one and forziki sync era the zkvm network we implemented account obstruction natively largely following the standard AP 457 which you off will introduce and so I'm your advice from the ethereum foundation [Music] so my name is your Vice and I've been working I'm a security researcher and I've been working on account obstruction for for quite a long time in MCO author of erc0457 I was also supposed to give a talk here right before this panel but they unfortunately it was impossible to find a place on time so um some so I was going to I was going to announce that the elc437 is live on mainnet so [Applause] thank you all right let's start all right um okay so and I'm Camila Russo I'm the founder of the defiant a media platform focusing on defy and web3 and well I guess to start uh you have do you want to talk more about this this EIP and and what what its significance is yeah so um so account obstruction is a is an old idea it actually is all the ethereum and there were many attempts to um so there were many attempts to uh to do it at the protocol level using various eips and it turned out to be difficult to do it with um to do it at the protocol level and we need to start experimenting so we did it in the form of an ELC the 457 it is which allows us to experiment with account obstruction immediately on any evm chain since it doesn't require protocol changes and this and so this allows us to start building it in a decentralized ecosystem with separate mempool and start having start having a account obstruction wallets and experiment with it um and maybe Alex and Julian can you talk about what a account obstruction does for the end user like why why is it something that we want to implement so I think for us like an abstraction is the only way to bring a user experience a simple user experience to users as we all know the user experience of of self-cue study on ethereum has been very very complicated because to interact on chain you typically need to manage a private key or a seed phrase we know that this is very complicated people lose their privacy get hacked and so on so actually being self-custodian on ethereum is very very complicated and the reason for that it's because the logic has been encoded in davm so the definition of an account on ethereum is fully hard-coded and it has been coupled to designer of this private key the idea of account abstraction is basically to break that coupling and enable anyone to basically program the key functionalities of an account so with account abstraction your account becomes a smart contract where you can put the logic that you want so that means that you can use that logic to really build good user experiences as an example for example something we did at Arjun is pioneering social recovery because we wanted to get rid of seed phrases and so we find a way using a smart contractor account abstraction to let users completely forget about C trays and use the concept of social recovery something else you can do is do sponsor transactions a lot of users will come to crypto for a use case and maybe they just want to have di or USBC why should they have ease just to speed transaction fees so using again the logic in your contract you can delegate the payment to another instance say the dab you're interacting to and so no users can actually use a simple wallet without having to think about transaction keys but there's also a lot more use cases with Pioneer IDs such as and keys to enable you know online Unchained games to basically not require users to sign every transactions and I think all these are just the beginning we are just scratching the surface by making account programmable it's basically a completely new design space for developers and so I think there is a lot more use case that will be built in the coming coming years um and uh well what what about you Alex like how how are you excited to use this new technology for for us ZK sync is on the mission to scale ethereum to the extent of real world to support real world use cases to bring hundreds of millions billions of people um and to scale ethereum not just on the throughput level but with all its values it's really really important to keep the values of decentralization censorship resistance self-custodiality and until account obstruction was not possible to keep your account both cell custodial fully truly owned by you and also usable and compete with with you know the Neo Banks and web tool like experiences so like we see the user experiences one of the key components of bringing crypto to mainstream and this is why we we were like we decided that we're going to support the content protection from day one from the launch era is now live on mainnet for developers Builders can deploy applications there and we will soon open the it's for you it's actually open for the users but um yeah um in in some subtle way but the what was important for us is to implement it natively like unfortunately on ethereum it's really hard to make protocol changes so eap457 had to do to do it like tangentially without touching the protocol so it introduced some limitations some like points of centralization we decided that we want to follow as closely as possible the uh the the AAP but actually make it to the protocol level so you don't have any centralized sectors involved in in producing and we hope that eventually ethereum will also Embrace this approach maybe you have you can comment on this um yes so um so ELC 457 is definitely not not the end it's just the start it's the first step and what we expect to happen is that other layer tools much like a match like ZK sync then will also will also do things at the protocol level and one day we'll even be able to do this for ethereum although this will take time but the importance of having a standout is that wallet developers will not have to uh will not have to develop for each chain separately so all the developers will develop once it will work the same way everywhere with feature parity which allows them to compete on features and artificials and flexibility for users rather than rather than getting fragmented across chains so is is the end goal for ethereum to be able to have account abstraction at the protocol level fully like like in the way that CK sync is implementing it yes my end goal is to eliminate EOS to eliminate externally on the accounts altogether I think they are bad bad user experience bad security and we need to replace them and this is just one one more step on the way to eliminate it future won't have to I mean the way that we interact with ethereum will completely change that we won't have to remember our seed phrase is it I mean it just like it changes my concept of like how you use a blockchain like in the first place yeah that is exactly right because I don't think the next billion users are going to be writing 12 volts on a piece of paper and the key management is hard people don't know how to do it and we can't expect everyone to do it right so users should be adding devices to an account not they should have devices they should not have keys and you should always have a recovery option just like in your bank account and use online banking you are never worried that if you lose your password you will lose your bank account someone is out there to help you what we know what what we need to do is to have the same user experience of a bank without having to trust the bank and that's the that's the purpose here I love that the same the same address event and so that means that you'll have you know just a regular password for ethereum but you can recover so it it depends what's great about the count of suction is that you can change you can change the implementation as you grow so when you start as a new user maybe you just want something simple whether not even a password just add a device and have a recovery option maybe even use a centralized recovery service that can help you with that and it's still better than still better than what we have now but then SEO needs a change maybe you become more accustomed to the blockchain and you also have more value then you can start having more features you can you can start a change the implementation of the account in place with the same account and then you can and then the user experience can change can change entirely to fit your uh to fit your current needs interesting and what's the timeline for for this I mean it's of course really hard to say but what do you think so it's possible right now with elc437 that's the idea it's not permissioned you can so anyone can start using it right away now that it's audited by open Zeppelin is in the on Main net and many wallets are already being built some of them are right here in the audience and so people are building their wallets and you'll be able to start experimenting with this user experience and then over over the next couple of years when Morgan mobile layer tools and at some point even layer one will introduce a protocol change it will just become a it will become more efficient it will become cheaper to use but from user experience standpoint you can you can start a you can start experimenting right away maybe if I can jump on that I want to say that it's not that it's available no because of 4337 all the features that you can get from account abstraction have been live for example with Arjun since 2018 social recovery was in Argent in 2018 and you know gas abstraction user not paying gas fees has been live in Argent for for five years and today it's been live on stock net as well which is supporting native account abstraction and it's live on zkc era and I'm actually happy to say that Arjun mobile is now supporting zikasing error so all these benefits they are available now using 4337 but they are also available on the guessing era on stagnet and they were available before on Smart contract wallet but the benefit of 4337 as you have said is to bring a standard which we hope will help push that you know to to a majority of users but all these features they've been there yeah no I was surprised that if they they were going uh level super interesting um and from from your experience so far you know having used uh you know this uh all these features so far for years um what are some of the the learnings like uh I don't know are our users uh finding it more intuitive Like Houses the the retention with I mean I I think Argent we've demonstrated that this can bring the ultimate user experience really when we started origin we used to sponsor transaction there was no seed phrase and there was no transaction fee so for users it was really like revolut or venmo and users they loved it but of course gas fees went crazy and sponsoring transaction big turn out to be not such a good idea but I think that demonstrates that you know the user experience was the right one the problem is that we were building that on the chain that wasn't really scaling the transactions were very expensive so that's why we started you know engaging with ZK Singh for example because we wanted to have a chain that would scale if cheap transaction and with Native account abstraction we could reproduce that same model another learning that we've learned and I think that's a call for the developers in the audience is that smart contract wallet or icon abstraction on the chain that still supports eoa makes Smart contract wallet a second class citizen because the majority of developers they are not thinking in terms of Smart Control qualities thinking in terms of EOS and there's a few flows that that developers use that are not directly compatible with smart contract wallet for example many dabs ask user to sign off-chain data just to prove they control the account their identity and for that they typically verify that using EC recover but smart contracts generally cannot sign transactions so for a smart contract you need to actually ping the account and say is this a valid signature so what we've learned over the past four or five years is that smart contract wallet or account abstraction really enables the user experience that we need as an ecosystem to scale to billions of users but unfortunately if we do that on a chain that still have Vos there will always be friction there will always be that developers not aware of this new paradigm and so that will kind of degrade the experience for smart contract wallet and that's why as you have said account attraction great but the ultimate goal is to get rid of EOS the app developers shouldn't have to think about what they are programming for they should be one easy model to make sure that smart contract account are compatible everywhere and that's why of course we are very excited to have native account attraction because that makes Smart contract wallet the default account on that Network um Alexander to use it is is it this ability for the wallet itself to take on the gas fees for for their users in in a way that you know it doesn't immediately uh you know get out of hand like just very cheaply be able to pay transactions for users um so this is one use case we we discussed that there will be many use cases we cannot foresee all of them uh but there are certainly some that I am personally very excited about it's like it doesn't mean that it's only the the reason why UK sync is going out of traction we want to enable developers to invent new stuff and come up with greater ideas uh but what yes paying fees in any token not having to bother with like what what is gas do I need like to swap I have a friend of mine received 1000 USD like he was paid by like he did some job or someone online he was paid 1000 usdc and he wanted to to send it to his bank account and he was like how do I do this I said well you need to to change it like just send it to an exchange because I try to change to send an exchange but I didn't have told me like I don't have enough funds but I have one thousand dollars there why I don't have enough funds well you need some ether to pay for the contraction I know you told me this so I tried to swap it like this usdc for it but they told me that I needed to swap Loop that that is like like how can you onboard people with this it's just not bad but this is which is one aspect what I'm really really excited about like the what what like catches my attention is security or this interplay between ux and security like every time I sign a transaction on chain with whatever whatever small transaction is I look really carefully in like the hex data of what am I signing there because you know like you might be you you see in your world you're just sending this uh you know you're paying ten dollars for uh in guest fees for for the execution but you don't really know what's happening under the hood maybe it just takes all of your money all of your other tokens and sending somewhere else or your nfts or just like changing the ownership of your account Etc and with EOS it's it's really it's impossible to prevent like your key can do anything so you have to really guard yourself against like doing anything that could be malicious with account abstraction you can separate that you can like first of all protocols have to be aware of this if you build things like erc20 it's going to be problematic because the the ux I mean we can solve with the account abstraction by batching transactions together but you fundamentally have to do multiple transactions like one to approve a token one to to actually send them right um so like when the protocols are aware you can build things in a way that have for example daily spend limits how Argent implemented it or you can have something that says if the amount if the total value that is going to be spent is more than certain amount then it requires the 2fa it's not enough to send it with your wallet but you also have to confirm it on some other device or maybe like on from from online or generally like you can take like a cosigner implemented a lot easier not through some NPC logically which is hard to to swap Keys Etc like someone can be monitored in real time what you're doing with with your transactions detect fraud in real time and stop transaction from happening and like actually prevent uh the damage so like as vitalik recently wrote in in his uh post about user experience good user experience is not about the average use case it's about the worst use case it should be reliable and should not be afraid to to make a payment like just like you're not afraid to make a payment today with a credit card on the internet but it was the case in the early days of credit cards on the internet all right so like we we need to transition to that but like we need to move faster than the evolution of the internet we can learn from all the mistakes of the past I think like these two VC security are are amazing and but does it mean that each specific wallet uh building with account abstraction would have to implement these different features like does it will it depend on what wallet I'm using whether I have these security measures I I think it should be standards that like we just need to Define better standards assuming that the wallets are now smart and they can contain logic so now you can say okay like let's uh let us actually like for this transaction let's define like what is the total impact of this transaction is going to be like you can you can Define it as a um you know like like we call it invariance in math or in in security programming you can define an invariant saying like after the execution of these transactions all of my accounts all of my like balances have to remain the same except maybe for this balance right and then you can execute any code and this is part of your smart contract Wallet account access wallet at the end of the execution the wallet will look at the balances and if they changed not in the way you expected it will just cancel and I'm like the transaction right so like the wallets don't have to think about it you don't have to trust wallets or any centralized servers to monitor it for you it will be code immutably deployed on your um the account you own and you fully control this is how I imagine that maybe guys you can comment more yeah I mean this is this is what you can do today right you mentioned 2fa for example the idea of 2fa is very simple because you can program your account you can add a second key to that account and you can say that that key needs to co-sign every transaction I know you can give that key to a service that you want and every time you make a transaction the service will inspect the data because of course we we human it's complicated to understand what a transaction will do its hexadecimal is very very hard but if you can give that to a machine that machine can say okay actually the account you've been interacting you know you've been sending money to that person many many times so this is a non-transaction I'll automatically cosine now suddenly you're trying to send you know ten thousand dollars to someone you've never interacted with the service would say hey you know what confirm your identity with the second Factor so that makes it very very you know very simple so yeah all these things can can dramatically improve something we have I think I haven't mentioned enough is the power of Miracles as well so patching transaction one of the key problem of ethereum is that every time you want to do something you typically need to do many transactions for example if you want to swap token on a text as you mentioned you need to approve the token that's one transaction wait for it to be mine and then you can finally make your swap it's a second or third transaction and typically because that's a terrible ux people have taken the pattern to approving unlimited amounts so that they don't need to do these steps multiple times and I think people don't realize but a lot of people are basically saying to a random contract you know what you can take all my tokens when you want just for the convenience of security and that has been the standard so far trying to there was always a trade-off between convenience and security and if you can start to program your account you no longer need to make a trade-off you can have the best of both worlds so you can really build web the best of web to like experiences without compromise Rising on on security and and uh sorry and yeah security and so for example midi code is very important for that because you can batch all your action in in one transaction something that I find interesting as an example there are people doing uh the implementing the concept of a shopping cart so you go typically to an nft Marketplace instead of selecting one nft buying that I mean approving the token buying that nft you can actually really go shopping create a shopping cart of the 15 nfts you want to buy and then in one transaction you can buy all these nfts because your wallet will orchestrate the sequence of execution to make all these interaction happen so suddenly every interaction can become one click it doesn't matter if you want to do a crazy complex D5 protocol everything can be one click and again this is bringing web to like experiences to web3 which for us is the main I think the main driver and the main motivation bringing easy experience without compromising on security so um batching batching is indeed the the low hanging fruit of uh of improving the uh of improving the execution part of the transaction of improving the what the wallet can do for adap but um they can but it can go well beyond that we just need more standard and more standards for it so that it will not be uh be done per wallet for example for example you could have a lot of you could have a lot of automation you can have things like recurrent payments where uh since uh with account obstruction we separated the we separated the authentication from the execution or the authorization from the execution which means that you can you can pre-authorize certain things and then you don't need to to be the person who actually triggers them so recurring payments is a recurring payments is a one simple example where you authorize a merchant to a charge you a monthly fee and then you don't need to assign a transaction every month your wallet is going to allow them to withdraw it and but it can also do a much more complex thing there for example you could set certain conditions such and you could set the conditions in your account such as I want to perform a trade for I want to trade a certain token but only if the price reaches a certain level but I don't want to be waiting at my computer until until the price is reached and then hit and then send a transaction with an eoa I would have to because I need to be the one signing the transaction but with account obstruction I can send a transaction that creates the condition and then adapt or even it can even be decentralized I can even the wallet can even incentivize the account can incentivize anyone like any Visa cultures to see that the condition is met and then get compensated for triggering the trade in my account but they cannot do anything bad with it because all they can do is to reveal something that I pre-authorized so all of these use cases can make it can really improve the apps in defy and in other in other spaces and nanofit is possible without without having a counter structure very interesting and for the I'm wondering we have a couple of minutes left How uh these uh these new technologies will interoperate with old devs because like right right now like when when you sing smart uh smart contract wallet it's great but it's also kind of it's hard to interact with everything that's out there on ethereum and that's what makes it just like there's a friction there so will that be the case going forward with account abstraction that it's just hard to to up like to to use the apps that were built before um so I think uh dabs will adapts will will adjust or we'll just take uh to to benefit from these features but in order but in order to do that we need to break a cycle here we need to make sure that people start using these wallets uh start using these wallets more so the adapt developers treat them as the first class citizens and uh one way to do that is to start giving the best the best possible user experience right now so that people really want to use these wallets and then this will uh and and then users will ask dabs to have to add the support for it and apps will start will start also automating things and doing things that were not possible before so it's not it's not going to happen in a day but in order to but but we need to start building in order to make it happen and maybe if I can add to that I think today is a great time to actually make that happen because we see the emergence of layer twos you are right at only one and ethereum there are dabs that are out there and some of them are not upgradable and so if they are using the one or two things that prevent using smart contract well it may be hard to make them change but we are seeing the rise of all the layer twos which are kind of starting on the blank page so I think it's an amazing opportunity to say right now let's make sure we build up that are that are supporting Smart Control quality and it's actually very simple there's only two things that are breaking smart contract wallet one is the use of EC recover and so at adapt developer if you are using easy recovery in your code just check that you are also using EIP 1271 and for example on zkasing era the compiler will either tell you with the flag you know you are using EC recover this is like an anti-pattern make sure you support smart account abstraction and the second thing is the use of transaction.org which is a bad pattern from the start so as a developer there's basically two up codes that you need to prevent in your smart contract and in your dabs and that's it so it's not like it's complicated so if you're building on a layer 2 please just check these two things make sure you just don't use this recover transaction.origin and if you don't do that you will be a compatible so I think it's very simple and now that we are moving to Layer Two this is the right time to make that happen okay uh this went by so quickly but thanks to the panelist really interesting panel and yeah it looks like you know we'll have a much more usable uh ethereum and a blockchain future with account abstraction so and start everyone start building on on this technology thank you [Music]

Automatic transcript — names and jargon may be misspelled.