Account Abstraction Panel | Devcon Bogotá
Devcon·Sat, Oct 7, 2023, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. https://archive.devcon.org/archive/watch/6/account-abstraction-panel/ Account Abstraction: Experts agree, if we don't have Account Abstraction, then Ethereum is at stake! Your private key wallet will soon be a thing of the past. Account Abstraction promises to put programmability into every Ethereum wallet, and unlock new frontiers for both developers and users. How will Ethereum be different, when every wallet upgrades to a smart wallet? What will it take to get there? What commercial use-cases emerge? What other parts of Ethereum does AA touch? Speaker(s): lightclient, Julien Niset, Yoav Weiss, Vitalik Buterin, David Hoffman Skill level: Beginner Track: Opportunity & Global Impact Keywords: banks,private sector Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
foreign [Music] today I have the pleasure of moderating a panel that is going to technically challenge me so I'm just going to be really good at asking questions hopefully uh this is about account abstraction which has been a part of ethereum as a topic for a very long time and now that we are post merge maybe we can actually redistribute some developer resources to building something that has always been talked about as something that is fundamentally crucial to the future of ethereum and every time I talk to somebody who's technically minded they all say that we need account abstraction it's not an option we have to have it so we're going to explore why everyone who's more technical to me are always like yes accountants attraction good so on we have Julian Julian Nissa the co-founder of Argent he is here in the middle there we go and then on the far end we have yoab Weiss the security researcher at the EF and then in the middle here sitting next to vitalik is light clients AKA Matt he's on the guest team and then there's also metallic what's up guys yo yep it's great to be here so you guys can each introduce yourself better than I can so yeah we'll start with you I want to give a little bit of your background and your relationship with account instruction and why you think it's so important well I think yeah sorry uh I think account obstruction is something that we must have both for some technical reasons such as obstructing signatures for a future Quantum resistance but more importantly for you for usability if you want the um I mean even if you want to really go Bank less then you need to get you know you need to get to a usability where the user never sees a private key user never sees a seed phrase so that so that my mother can can use it and if she loses access to it she wears she has a way to recover and then you need to have a different security policies in the account uh such as for example you wouldn't expect your bank account to be the same if you are a large corporation or an individual customer maybe you want to have some different spending policies so all of these things become possible anything that the bank bank account can do for you and more can be done can be done using account obstruction I think this is a must for ux purposes certainly and going down the line of course we have a Julian from Argent uh Julian so can you explain a little bit about what Arjun is for those who are unfamiliar and how it relates to account instruction so Arjun it's a smart contract you know we're a company we've been building smart contract based wallet since 2010 and basically we started on a mission to actually solve exactly what account abstraction is trying to solve recognizing that the user experience of EOS will basically never scale and so if we keep that Paradigm I think we will remain in the bubble that we are in but will be unable to reach the next you know 100 million users or billion of users because the user experience of self-q study is too complicated and so we started building Argent based on you know to try to fix that and we did that at the application layer on ethereum so trying to to build a smart contract based wallet enabling different security flows to actually fix the issues that you have mentioned so for example we introduced social recovery which is a way to get rid of seed phrase We introduced some kind of fraud monitoring and so on that has been a great experience but of course we build that at the application layer meaning that smart contract wallet are a second class citizen because the entire ecosystem it's still built around this Paradigm of voas I mean developers the tooling everybody is thinking in terms of EOS which means that there's some compatibility issues if you're a smart contract wallet we like to say that we've been second class Citizen and so of course the goal of account abstraction is to make smart contract based wallet first class Citizen and of course that gets us very very excited uh Matt I've got a special question for you uh but also uh feel free to introduce yourself and and tell us what you do at Geth but also could you after you do that explain why do we call it account abstraction what are we abstracting why is the abstracting word here uh just to really get things at the very basement level sure so I recently joined the guest team actually so I'm kind of like looking for my home amongst the guest team I think that there's many different things that the get team has focuses on and so I'm trying to find like where am I a very specific Focus will end up being so before that I was part of this team called quilt and we did a lot of research and development on future ideas in ethereum and the first place that I became involved with account abstraction was back in the earlier days when we called the beacon chain eth2 and we talked about the different phases of the eth2 deployments and so the quilt team was working on phase two for eth2 for a while and we were trying to think about how to define uh execution environments in a way that you could abstractly Define all of the execution semantics about the virtual machine that was executing on ethereum and of course like one of those things that you needed to Define abstractly was like the account of logic and so this is where we first started running into this problem like vitalik had already talked about in the relation to the evm like earlier on in 2016 and so and so I guess for me the the meaning of account abstraction is actually you know maybe uh not the perfect way of of defining like what accounts abstraction actually is it's a term that has like many meanings for many different people and for me whenever I understand accounts abstraction I think of it more as like validation abstraction I think of it like we're trying to abstract what it means to validate an account in ethereum and so today if you want to validate a transaction in ethereum you're going to recover some address from a signature look at that address in the state to determine if the nonce is uh okay for the transaction that's been sent and that the account has enough balance and so that's one way of validating a transaction but there's many different ways you could have a multi-signature you could use different cryptographic Primitives to to validate a transaction and so when I think of accounts abstraction that's what I first and foremost think about but I also understand accounts abstraction is you know used more generally now to think about smart contract wallets and how can we add more functionality uh you know to the protocol or give users a better user experience when they're interacting with the protocol and so now I understand that there's like many ways of like thinking about it uh vitalik every time you introduce yourself you always come up with a new funny different way of doing it depending on what era of ethereum you are so I'd love for you to introduce yourself and how you relate to ethereum these days and also answer the question for you why does everyone say that account abstraction is inevitable yeah yeah so hi guys I'm vitalik I'm a fashion influencer and travel blogger at the ethereum foundation um yeah so a chaotic reaction has been a topic I've been uh like really trying to push for um almost uh since the beginning right like you think even actually uh when ethereum launched the original Vision I had been hoping for was to try to get people to use Smart contract while it's by default right because I mean we wanted people's money to be secure and we thought it would be really nice if people could just have the default type of accounts be a two of three multi-sig wallet right and that that ended up not happening I think in part because uh the community was just I'm you know so fed up by yeah incest and kind of delays on top of delays for the ethereum 1.0 launch then at some point we just put our foot down and said okay you know no more features unfortunately we have to just like cut everything and launch something um but then you know since then we've been uh trying uh very hard to come up with uh the right way to actually get to the point where smart contract wallets can be the default type of wallet that people can use and try to get all these benefits like uh you know security for multi-cigs you know a social recovery other types of cryptography and if we want Quantum resistance more recently yeah mineral thanks to minnow you know your evangelo and the others are the uh the topic of kind of trying to get where like aggregation to be in here in there as well to try to kind of save gas and save data um so I'm like basically trying to find the way to bring a smart contract while it's in and make them actually be as convenient and have all of the properties and censorship resistance is another important property um that um externally owned accounts so the default type of accounts that most people use uh use now have today and you know it turns out that there's actually quite a bunch of challenges and there have been a whole bunch of various efforts um you know there's like EIP I think it was 86 and then 210 and then 29.38 and then you know there's a kind of grab bag of different proposals um separately the kind of separately the the strand of kind of enabling a kind of Delegation I might which has basically allowing people to pay for transactions on behalf of other people which I think is part of the motivation of like both uh 3074 and some other proposals like like that's been basically there's been this you know really long strand of research of trying to like really yeah optimize and figure out like what is the cleanest and like what is the most sensible and secure design uh to get to um you know what uh actually satisfying these goals and you know that's what we're trying to implements and uh roll out today I want you to check my understanding on this because I actually had to do uh some homework to prepare for this mod this panel because this is uh technically challenging for me after kind of figuring out when people explain account abstraction they were like oh it enables you to do this and then it unlocks this feature and it lets us do that but it kind of feels like we're feeling uh that elephant metaphor where somebody's feeling the tail and it's like a snake and somebody's feeling the leg it's like oh it's like a tree without actually seeing the whole thing so I want you to check check this metaphor with me um an externally owned account there's only two types of accounts on ethereum you have an externally owned account which is probably what you use when you like buy your nfts you have a private key and it unlocks a wallet and then there's a smart contract and account abstraction is putting what we currently use which is you know our Ledger or our private keys that unlocks a specific wallet and it makes our that wallet a smart contract which more programmable my mental model for this is that um a smart a account abstraction is like putting a chip into a wallet and what I mean by that is that we have like Bitcoin which the meme is like Bitcoin is a calculator ethereum is a smartphone and I kind of apply that to externally owned accounts and uh a smart contract wallets or account extraction wallets where it's externally owned accounts are like Bitcoin they don't really do too much and then externally and then account extraction wallets are like ethereum where there's a chip in it is that metaphor land yeah no no that's a that's a really fun metaphor I like it is there anything incomplete about that and and Matt I want to throw this one to you uh where you were talking about um validation abstraction can you connect these two metaphors how do those things relate right so I think you know if you're thinking of the con the concept of like putting a chip into a wallet there's like two important pieces that the wall is doing and the way that I think about it is that the chip is dealing with the validation logic like I mentioned when I spoke a minute ago uh it's determining like is this uh message and signature that's coming from account valid in the context of this account you could also Imagine the chip did other things uh after you do the validation you would have like the execution portion and so a lot of times when we think about accounts abstraction as like a general concept we also think it's doing a lot of other stuff now and so that chip is now determined like I want to send a bunch of transactions from this account all or I want to send a bunch of calls from this transaction or from this account's all-in-one transaction or I want to recover uh using like some social Recovery Group that I've come up with so that's like another part of the chip beautiful beautiful and I want to throw this one to Julian as somebody who's responsible for actually putting some smart contract while it's in people's hands thank you for your service how do you think this is going to get rolled out uh people in general and we'll get into the topic as to why people think that everyone will have a a smart contract wallet rather than externally owned account in the future but what's like what's your idea for how this gets rolled out into how do we replace private keys with externally uh with account extracted wallets so that's that's a very good question I think the the way I see it is that I think I mean vitalik has been pushing for a kind of abstraction for a long time and every single proposal has some you know enabled some of the features of account abstraction but none of them I think is the end game uh and and personally for example I like the last proposal 4337 but the problem is that it's still it's at the application layer so we are not fixing what I think is the real problem is getting rid of of voas and I understand that on ethereum there's so much at stake that such a drastic change will take time I think people are recognizing that account abstraction is the future I think it will happen but on ethereum I think it will take time what we've been pushing at Urgent is that I think now we are seeing the emergence of layer twos and I think layer 2's are an amazing opportunity to actually try to test some of these you know and try to fix some of these limitations of the evm that we have only one because there's much less at stake and then each layer two they may favor a different type of trade-offs so we can explore on different patterns and actually bring alcohol abstraction at the at the layer twos right now so this is what we are pushing and that will enable us to better understand you know the limitations what we can do and and following that I think then we'll have everything enhanced to actually bring that to layer one and push for a kind of fraction at really the protocol level only one that's the way I see the roadmap of account abstraction not folding beautiful and and you'll have you're a security Reacher at EF so I want to tap into your security mind why are smart contract wallets more secure like what security benefits from a user perspective or whoever might else whatever entity might also use a Smart contract wallet why why is it more secure than our current wallets well then uh this is a there are many different ways in which it makes you more secure first of all is a key management users users don't know how to manage Keys even expert users and they just I think that five years from now if we we recall that we used to secure our assets by writing 12 words on a piece of paper it will seem unreal to us so I think uh for example being able to add devices to add devices to your wallet so the wallet is no longer associated with some seed phrase you never actually see but instead you add your phone you add your computer then if you lose your phone you remove it and add a new one using your computer so um and so this allows this obviously improves the security because you don't need to manage keys and then there's the uh there are things like for example you could say that your wallet is uh that you can you can have good usability and spend small amounts easily you using your phone but if you are doing something out of the ordinary such as sending a very large amount in that case in that case you have to go get your Ledger or something you had you have to add another signature so it allows you to have a security policies to protect yourself and there's the the other Security benefits of switching of switching to a better signature scheme which we're going to have to do in the future anyway um and since since it's programmable you can add any any security mechanism you come up with and different users will have different uh we'll have a different requirements so having just a single security policy for accounts which is what we have with EOS I mean the security policy for a foreign AOA is if you have the key do anything if you don't have the key do nothing this is not granular enough so I think being able to have a to have personalized security policies will make ethereum overall more secure I think um the way that I see account objective wallet smart contract wallets there's this unique relationship with devices and we all have a bajillion devices in our homes uh like when I said on my computer I have my computer in front of me I got my phone and then maybe there's an iPad and those are three devices each with different levels of security assumptions around them like my computer is at home it doesn't go anywhere my mobile phone can go anywhere in the world but all of these things can you talk about the relationship between a device and the wallet and how that can relate to a different level of security of control of access right so maybe I only want to send a hundred dollars with my phone but I can send all of my money with my computer can you talk about the relationship with a device and a smart contract wallet yes this this should definitely be a part of the security policy for your wallet um so yes you could say that you can use your phone to do small things but your computer for a for bigger things I'm actually not sure I'm sometimes your phone could actually be more secure because uh on your computer may or may not have the capability of security of a on of a secure enclaves but phones modern phones they usually do now the problem is that at the moment you couldn't use it within AOA because it doesn't support the signatures the ethereum use it doesn't support the same curve but with account obstruction it becomes it becomes possible and someone actually just built built a nice demo of such wallet at the hackathon here in Bogota so um you can have so if you can associate the fingerprint of a specific device and you can you can have a fingerprint on your device which is actually verified by a secure Enclave on your phone and then the signature happens inside it so your phone actually gives you a pretty good pretty good security but in any case you have to evaluate that for example your phone is coming with you your computer stays at home so you have to evaluate your unique situation and set up a policy where you decide which device can do what and maybe sometimes you need the to use two of the devices maybe sometimes you need to go also get your Ledger from the safe so it's up to you to say to decide how each device is going to be used in your wallet I think the important important thing to take a note from here is that we're using devices to relate to a wallet differently rather than having a different wallet on every single device and so Julian I want to throw this one to you and now you guys are thinking this at Argent and check my understanding here is like I've got I've got a wallet here on my phone I've got a wallet on my my metamask on my computer I've got a wallet on my ledger there's three different wallets but now we're talking about three different ways of interfacing with the same wallet which is a different different kind of just organizational structure so do you think that like we're just going to be able to kill most of the wallets all these like throwaway wallets that we use and instead of like having a little bit of cash in some wallet and a medium amount of cash in another wallet and then like cold storage it's actually going to be the same wallet and we just have different levels of security of how to access these things how are you designing Argent to work inside of this Paradigm I think the first thing for me and the beauty of account obstruction is that you can choose as a user so I don't think there's one model that fits for anyone there are users that may want ones who have different accounts for privacy reasons for example so I think there's not one model that that fits all but of course in terms of origin we like to see the origin wallet the main account if you want as your identity on chain and so yes having the ability to choose the security Associated to the key that that's in a different device is of course very very important and so at Arjun we are researching a lot of different IDs for example now we're exploring something called session Keys is the idea to have an ephemeral keys to which you can attach very strict policies so you can literally say this key is valid for 24 hours and it can only call a certain method on a certain certain contract and so you can imagine for example if you consider that your phone is more secure because I agree with you I think my phone is more secure than my laptop but maybe I can actually have a key on my laptop that has restricted policies and so that kees can do certain action but I Define exactly the type of actions and and the rules that are associated to to that key but to answer your question for me it's really about giving the choice to users and I think that's again the beauty of Icon obstruction is that it opens a completely new design space for what an account can be and I think we are only scratching the surface of of what can be done at origin we see it as as your identity it's your our account you may have multiple accounts with different rules for example it's a good example if I'm playing an Unchained game I may not want to play a non-chained game on which I have say 50 in a certain token I don't want to play that game with the same account on which I have all my savings for example so I think having the ability to have different account with different rules and different logic is actually what account abstraction brings and I I think I just wanted to add that uh for even for privacy reasons you want to have multiple wallets because you don't want to docs yourself everywhere uh it's still the fact that we decouple the we decouple the device and the keys from the wallets means that you can have all of them associated with a fingerprint on your same phone so you choose which one you're using based on whatever privacy you want to have but you still use the same device you don't need a different device for each wallet I'm going to turn this conversation to how we actually get account abstraction implemented at the layer one because this is going to take a an EIP this is going to take a hard Fork to get this into ethereum uh and I want to throw this one to vitalik our resident crypto philosopher here uh crypto loves tribes we got like the layer one tribes we've got the layer two tribes are there like uh account abstraction tribes and if there are what do they fight over I mean I kind of feel like the tribeness of account abstraction is like a bit overstated in that I don't like I don't really see many competing camps of approaches for like let's say how to solve the problem of uh I have a smart contract as well and I want to be able to send things from that smart contract wallet without needing you know some third party to wrap my transaction and pay 21 000 gas overhead or whatever right but there's the different camps I think are more kind of just groups of people that came into the space of improving accounts with different emphasis right so like the like the emphasis that I came with is solving the yep the the problem of like how to make it easier for people to have Smart contract while it's with arbitrary validation other people came in with the emphasis of solving the yeah problem of how to let people pay for other people's accounts or how to let someone who has usdc only pay other fees in usdc instead of paying fees and if um so and then you know there's also the idea problem of uh how to let an account to do many operations in one transaction and though these are not really yeah they're not competing goals right I think they're goals that like everyone here agrees that we need a solution that covers all of them right and I think you know there's uh I mean different ideas that are slowly kind of convert converging toward um some architecture that can that actually does kind of do is getting better and better at actually fitting together um and in service of like how to get from here to there like one of the differences between eip2938 and erc4337 right is that 4337 is an ERC is 2938 is an EIP and 2938 is a kind of boil the ocean let's change the protocol now and like let's you know set things right in the protocol sort of solution 4337 is an extra protocol solution right and it's a kind of analogous to sort of the roll-up Centric roadmap in some way right which is you know part of part of the motivation there is like the core developers are busy and you know there's the merge and there's the Surge and there's a splurge on The Purge and uh you know some people wants to call singles to what finality of the George um but uh you know the yeah and then you know because uh 4337 is an ERC we can kind of work on it separately get it and you know have a small amount of usage just start fairly quickly get it until twos and improve it from there from there over time but I guess the the one kind of big difference here is that I think over time like especially over the last year there has been this realization that like we do want eips like as in things that hard work change the ethereum protocol eventually because like we do want to upgrade existing EOS like we want to let existing users that don't want to you know go through the the expense of just completely moving everything from their current account to what we want to let them enjoy the benefits of the AI new system and we might you know we want benefits like say yeah you know sensor any censorship resistance guarantees that we get from inclusionalists so I would want that to apply to account obstructed operations and you know if we want these different things to up or like happened then that does require making a protocol changes right but the yeah the good news is that kind of the ERC comes first and the EIP has come later and there's a lot of these kind of great proposals for how to do these uh yeah these eips and like there is definitely a kind of a deep multi-year multi-stage roadmap involved where like it's you know it starts off in uh kind of making it friendly for the API people that kind of wants to Pioneer and what and I really care about getting these properties um early and then you know expanding more and more until finally um you know eoas may may actually uh you know finally kind of go away and we really do just have Smart contract wallets and all the benefits are available for everyone so if I'm understanding correctly like the current state of account instruction development is that we haven't yet come to consensus as to what the EIP that we want to put into the ethereum base layer is like we know eip1559 we totally wanted that I don't think there is an equivalent EIP for account abstraction that we have there there is an ERC and to be clear right it's important to remember that like with just the ERC we can already get to the point where you know if people wants to like replace their entire activity and like run it off of account abstracted wallets instead of regular ones like they can do it and it works reasonably well right but but the EIP is for the second stage of the roadmap indeed like there are like we didn't there's we do not have those cips yet they're under development there's um lots of different there's lots of different uh different ideas and it's still solidifying if I can add to that I think I was I was saying some layer twos are actually experimenting on that if for example if you look at starknet and zika seeing they are launching with Native icon obstruction which is actually inspired by erc4337 so even if it's just an ERC finale ethereum it's actually inspiring layer 2's that can actually try to implement the next step which I think will come in a later EIP when we will change that at the protocol level on only a one but I think it's interesting to realize that it's already there on certain Leo tools if you look at stagnet it's still in Alpha but actually it loans with Native like an abstraction so there's no more eras it's actually trying to be the end goal and I think that we learn a lot on the Star Credit Simpson that we can then bring back to the next CIP that will put hopefully 4337 to the one layer down to the protocol level if it's okay if I mean just make a comment on this I think that this idea of layer twos experimenting with future potential core changes to the ethereum protocol is really interesting and I think things like Stark net is a very interesting place for it to happen because it's very different than what the evm actually looks like and I think it's probably the right place for those things to happen but I'm still hesitant about understanding how this is going to play out across all of the different layer twos because we've seen over the last 18 months there's been a huge push for things like evm equivalence and having something that's exactly like ethereum and trying to bring things like 4337 into the protocol I'm not sure how it's going to play out on those different types of systems yeah that's a very good question but I mean we're discussing with some of the team like like Alby Trump optimism want to have that evm equivalence but they all recognize that they'll also need to have account abstraction at some point and so they want to capture the evm ecosystem but at the same time they would want to have a construction and so that conversation is on right now and hopefully we can find a path to make that happen on on these you know these these layer twos that want to be as close as possible to you have an equivalent UFC casing V2 for example that wants to be equivalent but also wants to have a kind of abstraction so I think even if you're going for the evm equivalence I think it's good to try to push the I mean modify the evml a little bit so that you can still capture that that compatibility and the fact that you have a common standard with different layer tools but still try to fix some of these issues if you can so I think this conversation is on right now there's no clear path yet for sure but I do think it will probably append on layer 2's before it will happen earlier once yeah I mean one way to look at like how much equivalence you need is kind of from the point of view of the user right so like I have you know my ethereum wallet like zero xd8da blah blah blah and one of the nice things that um the eoas offer is that neck one with just the same wallet the same code the same key scheme the same everything I can just you know switch to all optimism and with the send the transaction on optimism switch to Arbitrage and transaction on arbitrum and so forth right the other benefit is that I get the exact same address like you can go and send things to Xerox d88 blah blah and optimism and I'm gonna have them right or you could send things to Xerox data blah blah on arbitrary and I'm gonna have them right and eip4337 like you know it does try hard to make that possible Right like it definitely makes it possible to you know use the same con the same code and have the same type of contract while on all of these Roll-Ups and because the Singleton is created with create two um you it's gonna the Singleton is going to have the same address on all the Roll-Ups and so you're going to be able to uh like anything derived from a Singleton including people like people's individual wallets are also going to kind of have the same addresses right so like one one thing that you know like people you know ZK Stark and similar systems could do is like try to achieve kind of like that code in Azure s equivalence for example you know even while experimenting what's trying to like make the way they handle operations much cleaner and different and just a I want to go back to what Matt was saying just to really drive this point home about how layer twos are going to be like the testing bed for account abstract action Matt can you just kind of walk us through into the future about how you think this may play out like ZK sync does some sort of flavor of account abstractions Dark Knight does a different one the market decides what they like we sort of come to consensus as to what features should be pushed down to the layer one how is this going to work out in the future I mean honestly I'm just really curious to see how it plays out in the future I think you know my perspective is I'm very worried about fragmentation of different approaches and I think if we think about maybe on the longer time skills 10 years maybe eventually we'll come to some Solution that's great and everybody will do it just because all the other uh you know all the other companies will have have run out of money and you know left the ecosystem but I think I'm very worried about the like shorter term like three to five years like how how are we going to be able to bring millions of people into this ecosystem and have like really good experiences using applications if every single protocol has a different way of doing account abstraction I can't imagine trying to support like 10 different ways of doing account abstraction in ether's JS or web3 JS and so that's kind of like my perspective is like how can we do this in a way that we avoid the fragmentation and that's why my perspective is that we should really consider using the evm on the ethereum mainnet as the shelling point for coordination amongst all these different protocols is there going to become a moment where at some point this turns from like oh we'll talk about account of traction and we'll ideate on it to like oh we need to pull the fire alarm and ship this thing is that is there like a fire alarm event potential in the future where like we need to get this done starting a ship already yeah I think I mean we've had no safes for a long time as well so the smart contract wallets have existed we want to like improve the experience of using them and I wanted to say like earlier like I think it's really cool understanding all the different uh security perspectives of account obstruction and the different policies of different devices but the way that I think about it a lot more is how can we improve the user experience of using ethereum and that's something that I think like we're still really lagging behind and to me the reason that we're lagging behind is because there is fragmentation across different wallets different protocols from my point of view I do see some kind of of urgency because I and for me it's related to self-q study I think self-q study today because of vlas is really hard we all know that and we because of that a lot of people are actually turning to centralized solution I mean if we ask the audience most of us here we have a binance or an FDX or a coinbase account even though we are the builders and the early adopters so my fear is that if we don't find a way to to to have a good user experience for self-care study then my fear is that the next wave of users may turn more and more to centralized solution and then will it fail as an ecosystem and in my opinion account abstraction is actually the only way to to enable this user experience that can big self-q study but still make it simple for user so I do feel a certain sense of urgency yeah that's a good point and I feel like for me the urgency is like how do we make smart contract walls the default everywhere because defaults are sticky and so if I go to minta nft on openc and I create a metamask following some tutorial that's the default that I'm stuck with for a long time it's very hard for me to migrate to the smart contract world and so figuring out how to make that the first thing that people see whenever they come onto all of the different protocols is very very important yeah fully agree no um okay so uh to my knowledge the current state of Defy is unfriendly to account obstructure and in smart contract wallets can one of you guys explain why that's the case why is that the case and how do we fix it yeah so I wouldn't say that defy in general is is not really there are some doubts that are that are summed up that make it difficult for example uh um for example they assume that you can sign directly with the address so and contracts cannot sign contacts do not have a private key so if you need to login for example to openc by using uh if you need to log in by signing a message with your address then you're unable to log in and we have an ELC to solve that a very old one actually a 1271 which defines how a contract can validate that I can say is signature valid so summed up support it some don't and assume in AOA we need to have developers to stop it to stop doing this sort of thing and assume that some of the that some of the addresses are actually contracts uh that's the that's like the minimum requirement in order to make it the first class citizen so I want to run through some potential use cases just to make things really Concrete in the imagination of of the people in the audience here and the listeners uh so I want you to each of you to think of the most powerful use case that account abstraction unlocks and how that on boards new people new utility into ethereum you each get one and whoever is going to go first is going to have the the opportunity to have the best one you're gonna give it to you what's the what's the best use case that account abstraction unlocks well you know there are there are millions of use cases some of them quite exotic I'm tempted to talk about them but instead I just repeat that being able that being able to obstruct the signature and to have as to have authentication and authorization obstructed and let the user control it that's the single most important thing in my opinion I think just to make the concept of abstraction more concrete for people right like one of one of the big use cases is multi-cig wallets and social recovery wallets right so multisig wallet's pretty simple I mean we have n keys and you need you know some n over two or some number of them so I for example you have you know six keys and you need four of them in order to assign a transaction right like that's uh like most of my money is in a four of six ignosis safe right and like that you know it's it's public info it's on etherscan but um then the social recovery wallet is like a wallet where you can sign things uh with instant transactions with one key but if you lose your key then there is you know some other mechanism which itself probably could be a multi-cig right so uh the like one thing you could do is like you know choose some like five friends and three and three of them can can kind of make it up and that mechanism can change the key of your account if you lose it right so the philosophy there is like in practice people's accounts getting lost there's a big it happens much more often it's a bigger problem than accounts getting stolen and so you know you can solve that problem without sacrificing any convenience and that makes sense for you know a lot of smaller and medium value use cases right so the challenge though is that you know if you want the benefits of uh either the security like the security the protection against theft and like the kind of you know the really hardcore and security of a multi-sig wallets or the easier recovery of a social recovery wallets you have to put your funds into a smart contract wallet right and smart contracts exist and like you can do this today but the problem is that if you want to actually send the transaction then like you have to also have money in an eoa and the eoa has to pay gas or you know you have to work through an intermediate area then you have to rely on that intermediary and then what if that intermediary starts censoring and that or or even just you know disappears or whatever and uh it you know that you end up wasting gas and there's just like a lot of extra money black City involved which is I mean what basically you know what we're trying to get rid of here right so I think like you know multi-sigs and social recoveries are one easy use case of abstraction but then another one is being Quantum proof right like when the quantum computers come we yeah we all have to like get move get out of ecdsa entirely and is there a timeline on that unknown um uh it's unknown but uh but what's but what's great about our current process even with the ELC is that we can start moving away from it we don't have to do it one day we can uh we can start moving gradually and over time you'll see less and less wallets relying on relying on ecdsa so we can start moving there it's not a one day any utilities that vitalik and yov didn't mention that come to mind about account instruction batch transactions why is that such a big deal why do we need that have you ever used the blockchain a few times I've been known yeah what can you uh do it give us a user story about like how this is a ux Improvement as a good core developer I don't use the blockchain very often but when I do use the blockchain I have to sign so many messages to send anything I have to approve my tokens to go to a contract I have to send them then I have to approve more tokens to go to a different contract all for the same application and to me it's like we could be making this all a single message to go on chain so you're saying that account extraction allows us to produce the ux that people kind of expect there to be in the long term that we don't have today more or less I don't think it's just a count abstraction like I think that we could be living in this world today what I would really like to see is like some sort of mechanism for dapps to let the wallet know that I would like to send a batch of operations and the wallet can determine whether or not it has the capability of sending those in an atomic batch and so like I would imagine that you know you go to uniswap and you need to approve and then do a swap rather than having that pop up as two dialogues if you have metamask it could show and say I want you to sign two different transactions to do these two things to complete the operation that you would want and metamask would send out those two transactions and verify that they both happen if you have a noses safe or an Arjun wallet it would get that message and it would say I want you to do two operations but you have the ability to send them all in one transaction so now you just sign one transaction and send that off that's something that we could just have today that I think we're totally missing and actually a good example of that in practice is on the stagnet ecosystem there's a like nft Marketplace and and there they've introduced the concept of a shopping cart so when you go you can actually do your shopping in a sand you want to buy that Nifty in that one that one and you will pay different token and at the end of your session you go to your shopping cart you say buy these items now and your smart contract without orchestrate all these operations so it will do all the approved on the C20 token that are needed and then purchase all these nfts also exactly this is I think the multi-code is a great example social recovery is another great example so I come last but I still think something that I find very interesting is the idea of off-road monitoring because I think the problem with the blockchain is that I mean we make users or there are Bad actors and it's sometimes very complicated to know exactly what you are doing as a transaction typically you'll see some you know some called Data or something that is very obscure and it's very complicated for us as a human to actually you know know the the actions that that we are making and with a smart contract our current abstraction you can imagine for example that you you program a second key on your account that must co-sign every transaction so you turn your account in the two of two multisig but then you can choose to give that key to a service that may monitor the operation that you are about to do and so that service if it takes that the call data is legit it's something that you know is secure you can co-sign automatically it's transparent to the user but now you're making a last transfer to an address that you've never interacted with maybe you can just ask you to confirm who you are with a second sector like email and SMS or Google load or something so using a construction we can actually bring the flows that user normal user are expecting you know bring the best of web 2 or of the banking world but actually reproduce that purely on chain so I think yeah for me it's really multi-core social recovery and and fraud monitoring are three ways that we can greatly improve the the user experience for users one thing I'm still uncertain of is is how we we want everyone to have a smart contract while we assume that everyone will eventually have a smart contract while as everyone is in this room and also all future users of ethereum how does that actually happen as in who are the service providers we have somebody like Arjun who's producing a smart contract wallet but what are the other categories of how smart contract wallets get into the hands of users uh like I could imagine for example like I'm logging into some web3 game and I need to use a wallet for that where does that wallet come from who provides that wallet and maybe maybe that's what Nosa safe is but maybe not like what are the categories of who's providing all of these wallet uh wallets to us all the users like are there different categories out there I think my philosophy on this is that like one of the really strong ideas here is that we want to be as a kind of active intermediary minimized as possible right to the point of like basically you know in an ideal world not requiring any active intermediaries that don't uh already exist in eoa land right um so the yeah like you know there are people there are kind of it's you know acts once in that intermediary is what that could you know do their thing and then disappear which are you know smart contract wallet authors wallet developers and people like that but look we don't want to how to depend on you know like active a kind of relaying actors of some kind for example right which is um you know that like the status quo is that you do need Asia like you do need to talk to a specific relaying actor if you want a uh you know if you don't have your own um Ela and you want to use a transaction through a smart contract well right and I think you know censorship resistance is a good reason to minimize activities or Media or it's just kind of Simplicity but it's like it takes a while to get there right so erc4337 it works through in Mev ecosystem so it kind of Acts makes it it relies on Builders to access intermediate areas and then you know the goal of uh the the various kind of longer term EIP is just to kind of constricts that more and sort of protocolize that I mean more and more over time so we are okay five minutes we're gonna try and find some time for questions so if you have questions start thinking of them now but um as we wrap this up I wanted to do some call to actions and there's a very various different like uh stakeholders in this uh in the world of account extraction we got core devs application devs layer two teams and users each of these people have their own sort of responsibility for getting account extraction out into the world um so uh let's start with the core devs what do the core devs need to do to get abstraction done what do they need to pay attention to we talk I'll throw that one to you L1 core devs not I would say yeah not much yet okay um L2 core devs I think um or are important for them to be yeah kind of on the ball earlier because I think there's a lot of reasons why l2s are a very natural uh kind of uh testing ground for account obstruction I mean first uh because uh later look there's just lower fees on layer twos and lower two fees especially for computation right so the overhead of accountable to action matters was they can iterate and they can develop and build a lot of things more quickly also one thing we didn't touch on this panel yet is that um eap4 or erc4337 has this some aggregation feature in it which allows basically different uh signatures of different transactions to get aggregated together into one it's the same sort of stuff as the aggregation technology that powers the if the yeah ethereum a beacon chain and that allows so many validators to make their attestations and for those attestations to be kind of packaged together into one world thing that can be verified very quickly and that's important like that's super important lawyer too is right because some lawyer two is computation is or data is even more expensive than computation and aggregation like really yeah saves on data right and so for those reasons that local leader tours are an even more natural kind of first use case for um abstraction and then layer ones and there's a lot that we were tools can do right like Layer Two is right you know they run sequencers and they're in the process of figuring out how to decentralize those sequencers and as part of those processes making their leaders support account abstraction and are accounts abstracted transactions and accounts natively is something that's uh really important right so and then in the one longer term once the Asia layer 1 EIP has started coming in then mineral core developers need to start paying more and more attention to it Matt what's your big call to action to the world what do we need to do to move the needle forward on this one um there's two things I would really like to see my colleague Sam Wilson has started a bi-monthly call called all wallet devs I think that if wall developers are not aware of it it's an awesome thing to to see what the current discussions around improving wallets are and account abstraction is obviously one of them and I think the second thing is something that we can be doing today to improve the user experience of dapps is this is like creating a new interface for adapt developers to Define that they're trying to do a batch of operations together and then allowing the wallet on the back end to decide whether to send that as an individual transaction or as multiple transactions I think if we do that then we start to show the core developers that we're really serious about batch transactions in smart contract wallets and I think that that will really improve you know their feelings about changing the protocol to support that type of Technology Julian what's your big call to action yeah I agree with that I was going to say I think that developers as well of course Leo tools I've mentioned that in vitalik mentioned that but I think that developers today could start to embrace patterns like EIP 1271 just to verify option signature I think just making sure that you adapt today is compatible with smart contract wallet and as you mentioned we can extend that to multiple but I think that would that would give already a good sign and that also means that if you know erc4337 picks up and people build more and more wallet on top of that they will become more and more first class citizen even on L1 I think they've never reached the point of having full first one first class citizen but making sure every single dab is compatible with smart contract wallet I think will make it easier to go on that Journey towards full account abstraction you'll have tickets home and also you have is the uh the person that actually helped educate me a lot on uh for this panel because I was definitely not prepared more than a week ago so yoab thank you uh for your help what's the big call to action that you have uh to how we get account abstraction into the hands of everyone yeah so uh so the first thing is what everybody here already said that adapts need to be compatible with it and not get in the way by requiring signatures and and they can start thinking about ways of course batching batching has met already explained but even Beyond batching start thinking about ways in which a contract wallet could improve the ux of your way of your application and work with the wallet developers in places like in places like all wallet Dev the Discord start walking with the world developers to add the features that to other features that become possible with this and for all the developers to start thinking about about interesting ways to use this to improve the life of your users such as using gas obstruction models maybe you know allow users to allow users who do non-financial stuff to pay with a credit card and not buy crypto at all and there are many things that the wallet could be doing using account obstruction to make the user's life easier so start thinking about that and there's a so I I posted a presentation with many with many cool use cases that you could build using it so um so I could so I think going through this list and seeing what could help your wallet become better maybe interesting and I think just again to really just drive this point home ethereum is a technology that is working on expressing itself uh starting in 2015 it was limited and now we have proof of stake now we have layer twos we have ethereum can express itself a little bit better but it's not going to be done expressing itself until wallets themselves are expressive as the Turing complete nature of ethereum itself and so we will actually not see a complete ethereum until we all have Smart contract wallets and that is how I will finish this panel panelists thank you so much for helping me explore this world [Applause] foreign I assumed that we actually did not have time for questions but apparently we do so I'm gonna let somebody else Steward that hey thanks I'm just wondering when is Arjun planning to become ERC 437 compliance I guess that's a question for me so for the moment we something that's something that we're exploring that that we want to research but our focus is really on I would say native account abstraction on Leo twos and that's why we're building on stock net and ZK Singh and I think we kind of have our hands full with that already still discussing with our earlier twos to see if we can convince them you know to to move forward with that as well so for the moment we are exploring with Falls 337 but again just to highlight that on Stockton and DK Singh it's actually heavily inspired by 4337 so it's actually what we are already supporting but on on this chain so at the moment no plans but that's for sure something that we are discussing internally and researching uh jog this question is for you I Tried reading erc4337 the other day and could you explain a bit why it's such a hard read uh well first of all because uh we are not very good writers I guess but I mean we could we could have written it in a clearer way and maybe even split it to more than one more than one ELC but the other the other reason is that it really is complicated so it really is complicated because we paid a lot of attention to to keep things decentralized by having a mempool and keeping the mempool keeping the main pool protected so um so to prevent a Dos attacks that would bring the system May on his knees so uh this so yeah this this made a difficulty then I understand that uh hi everyone uh I work at Diagon and we're working on bringing subscriptions on ethereum we're currently using meta transactions do you think metal transactions will be less relevant when when accounts obstructions will go live so the issue with the meta transactions right is like one you need some kind of mechanism to like figure out you know who's going to pay on your behalf and connect you to the person paying on your behalf and these like if this depends on specific actors then like that becomes a censorship vector and they might disappear and all of these things and also emitted transaction requires like this extra gas cost of 21 000 uh per transaction right on top of a smart contract overhead so like I think it's important to remember that erc4337 like it is similar to meta transactions in a lot of ways and like it uses very similar ideas but like it does add this like oh open mempool to solve to kind of remove dependence on specific actors and it adds this kind of like batching problem to like basically cut the yeah 21 000 overhead to uh one uh to one per block so I like I view it as a kind of iteration on the same idea if I can just add on that I think with Native account abstraction there's no more meta transaction because the account can pay transaction fee by itself so the day if we bring 4337 to the protocol level there is no more meta transaction because you just sign with the keys you send your transaction and then the account will automatically validate and if you validate the transaction we'll pay the fee directly to the miner so if we go to full account abstraction there's no more there's no more need to have a meta transaction and we layers here hey everybody um yeah firstly thanks David I'm a big fan of bankless um these are great conversations and uh vitalik I'm a fan of ethereum so thank you for that um also a fan of ethereum somebody mentioned that like more wallets are lost than are stolen so I kind of want to zoom in on like the social recovery aspect I think if we're going to onboard the next wave of users we can't expect them to have crypto friends or Hardware wallets already right um so I know that Argent has some functionality where you can kind of back up a share of your key to Google Drive I'm from ultimate.money we do something similar with Apple iCloud accounts because we've read that 95 are 2fa encrypted um so like do we as a community kind of accept that we're going to stand on one leg of like either you know Google drive or Apple iCloud um you know if we're trying to onboard people that are really like new to crypto is that something we accept yeah so um so I think once you have a recovery built into the wallet um you could you could use different mechanism first of all if you don't have crypto friends and you don't mind some centralization you could have for example you could have a service like a professional Guardian someone with someone who can verify your identity and then recover your wallet and you could use a centralized centralized Solutions like a Google drive or apple that's also fine but if you use if you had to use this within AOA it means that Google has control over over your account and maybe they lock you out of it at some point but but since you can have as many keys as you want for the recovery you can actually have you can use a centralized way for login like log in with Google or anything anything of this sort and then and still keep a more complex recovery mechanism for the case where they decide AI to sensor you for example so you can benefit from both from both worlds here my question was for for Julian yeah so the way we see social recovery is kind of in a sense it's a protocol so every users will want to use different mechanism to you know to get back access to to the wallet so yeah we don't expect people to have crypto friends and to rely on your friends but maybe if you're a more crypto expert you may just want to use a hardware wallet that you control and you can put that you know in a safe in a bank and if something bad happens you can use that that's how we want it so that's one option you can actually give that key to a centralized service that you trust but the day you don't trust it you can just remove it or or you can actually combine so you can you can use a centralized service and a hardware wallet I think it really depends on on the user if you have fifty dollars it's probably okay to give that recovery key you know that that to to ask is is centralized service that you trust to act as your guardian but of course if you have millions that may not be acceptable so you may want to use two three Hardware wallets that you put in different states so the way we see is that recovery is really a protocol and and depending on users we can build on top of that the user experience that they need depending on the use case and where they are in the in the crypto Journey hi my question is for Julian um about the fraud detection um option for um the Urgent wallet and my question is does it um does it apply to mvv type attacks like bot Suites for example where if a user has engaged with efficient attempts and then every transaction after that goes to a multiplicity of different wallets uh would that feature be able to detect things on on the mvv level in the pool and then pull that's honestly a very good question and something we haven't really thought about so just to make sure understand your question you're saying if we enable this cosigner for example can this cosigner anticipate some kind of Mev extraction I guess the answer is probably yes but to be honest we haven't researched that yeah so that's a that's a good question I I don't see why not because based on the type of transaction you can probably assume that some Mev will happen but yeah that's that's an interesting point of view and something interesting to research I don't know if someone else actually a smarter answer than mine to that question feel free to shoot really quick one about MPC wallets so the use cases that you describe the main ones with uh multisigs social recovery can be solved a bit in a bit of a hacky way with MPC EOS like the one that I think coinbase wallet is working on uh is that good or bad and if it's bad what do we do about it I mean so yeah like one specific thing that uh eeo the MPC approach can't solve right is the key is key changes so like they actually they can't really solve social recovery well right and the reason is that even if you take your key and you split it into five secret shares and you give each year to one of your friends the yeah the problem is that like if your friends get hacked um you know even five years later like there's basically no time limit you have no way to revoke once enough of them get hacked they'll be able to take control of your key in your account right so that's one uh very very big problem and then another problem is that just for my ux perspective that kind of approach would require the users who participate in like basically it will require your recovery Partners to have custom software and account abstraction done with smart contracts is like cleaner because it doesn't require custom software right like to add a bunch of recovery Partners you know you just like put in what their addresses are and so like it whether they don't need to like hold some separate thing and then make sure that some some separate thing is kept safe and like accidentally lose it because the only thing they ever use it for is helping you recover your accounts and they just forget this is something that once you know literally happened to even me when I yeah was using the HTC Wallet that was using NPC recovery by the way right um the like I even you know I almost lost it because a couple of my recovery friends just like upgraded their phones and you know forgot to upgrade I forgot to carry over the recovery app um so like those are the two problems that you know at least uh I think the smart contract based approach has always better and then also just like theoretical cleanness right like ecdsa is just a fundamentally bad algorithm the only reason it has any prominence at all in this world is because of stupid stuff involving a snore patents um and you know it was ecdsa was invented to just get a basically get around the patents and that patent has expired years ago and so there's a and ecdsa has a lot of like bad mathematical quirks to it that make it much harder than needed to MPC and uh I mean you know much more complicated than needed and though like we really should be yeah upgrading to Schnur or um or other things anyway and so you know just from that kind of theoretical Amino trying to kind of make the Asia ecosystem cleaner overtime perspective I think as smart culture quality approach is better so like for the solving dealing with people's needs now um you know it's definitely valuable in some cases but I do think there's you know value in and like like there are serious value ads that a smart contract based approach him AdSense up yeah and in order to add that um when you're that an MPC aims to solve the aims to solve maybe a recovery or managing the keys but it doesn't give you things like adding a policies I mean you can uh it helps you with the authentication of the account but nothing else and there are actually NPC there are some NPC wallets that use it that run a policy on a centralized server so you have a server participating in the MPC and the server will make sure that you don't do certain things but this means that the policy management is done off chain in a centralized way and I think being able to enforce a policy on chain is a powerful thing that NPC cannot achieve hey real quick question that that's actually all the time that we have so we have to sadly that's two seconds just real quick just wanted to ask I'm not the one writing the rules I don't know one more all right cool we're good we can appreciate that that's love I'm Russ from 40 acres now we're trying to create self-sustaining communities of color utilizing blockchain and obviously there's a lot of big brains in the building right now but for the people that have no idea what you're talking about I'm super curious there was a wallet out and you could aggregate you could use D5 nft marketplaces I'm curious is there space for things and products like this in the ethereum space and how do we kind of aggregate that information for people who don't even know what a smart contract is course so basically there was a wallet out right and you could put there was D5 protocols in it there was nft marketplaces All in One Stop Shop and so I'm curious is are there other products or anything like this being built again to help those who have no idea what smart contracts are those who just need this information the most yeah I think smart contract wallets are how we get to a point where uh we have just intuitive ux and so you can just like uh there's something called like the grandma test where if you can give your grandma the thing and she can do it then it passes the ux test and smart contract walls are how we get there and so just like things to make things intuitive to get rid of like the whole like signing with a private key and doing and making wallets behave in the way that we expect them to just as humans smart contracts wallets are how we get there and so I'd say that smart contracts wallets are kind of how ethereum kind of fits into every single corner of the internet and it's because we find ways to hook ethereum into some sort of web3 app game nft Marketplace and it doesn't feel like ethereum it just feels like the internet and that's and smart contract wallets are definitely how we get there I hope that answered your question cool thanks guys [Applause]
Automatic transcript — names and jargon may be misspelled.