Down the Rabbit Hole and Back with Henri Stern
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
In this talk, I'd like to run an overview of the core technical unlocks coming to the Ethereum ecosystem, from EIP 4337 (account abstraction) to UCANs/CACAOs (delegated permission infra) and distributed key management networks (using threshold signature schemes) in order to illustrate the tangible impacts they will have on crypto users's lives and crypto application UX. By showing off what's coming for the space, and how crypto UX will evolve, I want to show what the future of web3 apps will look like and what happens to the space as we move beyond financial infrastructure toward mainstream usage.
Transcript
uh on ethereum so uh my name is Henry I'm a co-founder of a company called privy and we're building one library to onboard all of your users into web3 Apps whether they're cryptogs or they're new to the space and I will of course be chilling a little bit later but uh but not just yet for now I want to talk about the technology that's going to onboard the next wave of users in the space my goal here you know I saw that I was on the bunny slope stage was to try and really break it down because I was walking around the conference Hall the other day and every other talk was about a counter abstraction and about op codes and about a lot of the complexity behind getting a pay Master contract work properly and I thought why should we care about this generally and what can we learn about the way in which this industry talks about technical topics from the way in which it's been talking about account abstraction so I'm going to try to break it down and see if we can find any ways of improving how this this industry talks about it's Tech in general through it um so as I said initially I was planning to do a talk on account abstraction NPC networks delegate permissioning and I thought do I really want to do this is it helpful to go deeper into the alphabet soup at this point um or isn't this one of the core problems in the space do we have as a community a bit of an acronym problem or a bit of a tooling problem and uh and so that's my first question really is uh does web3 have a tooling problem I think the answer is yes and no on the one hand we need the tools that we're building we need the protocol improvements that are being worked on in order to improve the experience for everybody this is a natural part of like building up a new techno technical stack on the other hand I think we suffer from the fact that we treat the tools themselves as core products and so because of it we're expecting you know Layman users to come on to technologies that are just that their Technologies you don't talk about TCP when you try to onboard someone to Wi-Fi and you know if you're already talking about Wi-Fi you've done something wrong probably um so my talk is gonna be in four parts one does web three have a tooling problem two let's go down into the rabbit hole and look into account abstraction to understand in the third section what does it mean for your users if you're building in the space and then finally I'll talk about what we do at trivia and why this is all relevant so first the tooling problem in web3 as I mentioned we love acronyms we love standards and uh we talk a lot about them sometimes the feeling is a bit like this uh this is a a post I like from someone called van Bish I'm very lucky to work with who uh is basically writing out you know web3 info companies are trying to figure out where the end users are and the only thing we find is more web free and for companies um and so the question is why why is the the the space like this and my thesis is that web3 Builders are confusing apps and infra to a large extent because of the history of the space so I'll point back to something that was written in 2016 uh this was at the time a fairly influential piece of writing called the fat protocol and in it this investor Joe manegro sort of said you know the the evolution of the space means that a lot of the value capture that's happened in the application layer historically is going to happen at the protocol layer and this had extraordinarily deep impact on what building in the space meant it sort of started a race for people building protocols um as opposed to thinking about the end users to these protocols because that was where monetization was happening um and so this has really led to a space that is you know built by technical users for technical users um again this is absolutely a necessary part of like market annealing and building up a market and building up a new technical stack but it's really important not to forget about the users and not to treat the core technical stakeholders as the end users to these products um and so here I'll do a little game this is uh brazenly stolen from a designer called Schuyler Richards from Iron fish and I absolutely loved it which is let's treat web 2 products as web 3 products for a second um so our first one here is a product that uses a digital layer to allow more seamless automated Clearinghouse transfers between bank accounts this product is actually PayPal um who's real you know take in the web 2 space is to make it easy for consumers to pay almost anywhere in nearly anywhere the second product is uh secure socket layer transport layer security for data transfer I'll skip the rest but I think you get the idea and of course this is Dropbox um finally we'll do ACH processing for P2P transactions with low fees this is my favorite because it sounds like a lot of crypto products and of course this is venmo um my core Point here boom before I make my core point you may ask are we there yet you know we've been building tooling for the last 10 years in this ecosystem at large um why do we still build tools why are we not building end products and obviously there are some uh but but it feels like there's a lot of tooling still and I think the real point is that this is kind of the wrong question to ask it's not one or the other protocols and core infrastructure operates on very different timelines than product development and I think we've kind of been brought up in this space to think of protocols as products and to expect that the payoff will be immediate but I don't think that's a reasonable assumption at all and so the question are We There Yet the answer is we've been there the whole time we have to continue to invest in the underlying tooling but we have to invest in apps in parallel so we can shape the tooling there has to be that sort of cycle to evolve the Tooling in the space and My Hope here is that it changes the way we talk about web3 because for the most part today when you ask someone why are you working in this space what are you working on the answer is one of two types either it's a hardcore technical answer that goes very very deep into the you know crypto cryptography or distributed systems in the space or it's deeply ideological you know I'm working in this to set you free neither of which are like super compelling answers I think to an end user who wants to get something done when they interact with a product um so why am I talking about all this and how do I you know bring account abstraction into this mix um I think one of my questions is do we need to understand the technical fundamentals to build better products in this space and I think at this stage in the ecosystem development we do we need to understand the trade-offs we're making by picking certain Stacks in order to build the right product for our users if we don't understand these trade-offs it's very easy to throw away a lot of for example the self-custody that makes web 3 special or on the flip side it's very easy to over index on some of the like web threeness of the tooling at the expense of ux and I think understanding the stock a little better is very important to actually building better products um so should users have to know that starknet has you know incrementing rather than open non-systems in their account abstraction protocol absolutely not but should you as a developer understand the basics of why the stack is shaped the way it is probably it will be helpful in the next few years with that I'm going to go into it and um we'll see what we can learn about account abstraction this is the part where I talk about everything you've always wanted to ask about abstraction but we're too afraid to and I will work very hard to avoid buzzwords here and and stick to I think the concepts that kind of help you make informed decisions so first I'm going to try to do this in like three degrees of detail I'll start at a 10 000 foot view really high level why does this matter then I'll go one layer deeper and one layer deeper and I'll see if we can break down why you know everybody else is talking about this too so the 10 000 would view what is account abstraction account abstract and sorry I'll preface by saying I'm by no means an expert here I'm like a random dude who read the paper online and like tried to understand it so uh maybe the the crypto commentaries do your own research but I'm here to help um account abstraction is a model for basically thinking about how accounts are composed in ethereum historically an account had really been two things there was a way to hold assets and there was a signer who controls these assets using keys and the two were tied deeply together they were completely enmeshed accounts had to be tied to a key pair and this has like really profound implications because it means if you lose a keeper you lose your account if you lose your keys you lose your assets now what account abstraction does at a really high level is it splits these concepts of Parts it exists it permits the account to exist independently of the key pair so now you can actually you know with the account point to arbitrary key pairs you can dynamically program who is controlling the account why does this matter because it unlocks a ton of new possibilities for ux in the space it makes it easier to secure accounts you can you know choose to delegate not to one key pair but to an email address for example using other technology it makes it easier to fund actions the key pair that is trying to perform an action doesn't need to pay for it itself so this gets rid of gas fees for instance and it makes it easier to assemble actions together users can you know take multiple steps in a smart contract environment without having to agree to each one of them separately so that sounds really good let's go one step farther the 5000 would be what is account abstraction I'll ask again account distraction allows for custom transaction validation historically transaction validation logic was hard coded into ethereum and the system was basically built so that every transaction is validated using the same steps and this is you know one of those steps was is the I'm going to introduce a buzzword unfortunately eoa account the external owned account that is basically signing the transaction request Associated to the account on chain that is responsible for it account abstraction enables developers to basically move away from that hard-coded like validation step and gives them the ability to Define custom transaction logic and you know frankly I think this is a lot more significant than just saying it's not just one key One account it really means you can program any arbitrary sort of event to validate transactions cool so let's go down one more step and here I actually don't want to talk about you know the mempool and op codes and all of that because I think a lot of people have talked about it very very well so I'm just going to cop out and I would recommend that you watch Talks by uh julianize who I think is one of the most uh intelligible and and and significant speakers on the topic and he's been talking about this for a long time um Alchemy also wrote a very very good paper breaking down how uh 4337 came to be but I will take a second to talk about erc4337 because that's what everybody's been talking about these days if you were listening account abstraction launched on Wednesday um and I will kind of try and explain why people are saying that so what is the account abstraction we're all talking about right now erc4337 is basically one standard you could have built others you could have done it a different way to get to this concept of a kind of abstraction to separate the eoa account from the smart contract that is the actual account um this is not a new idea this is why I say 4337 is one of many ways you could have done it it's because there's been many proposals before uh and I'm sure there will be many after but so why is this one significant because it doesn't require the underlying protocol to change you don't need everybody working on ethereum or all the miners to agree in order to get this through it's just the system of smart contracts that impacts that change and so this is really significant because proposal basically has gotten widespread enthusiasm it means account abstraction at a protocol layer is much more likely to happen now that we have a proposal that people are excited about and pushing forward now when people say you know it launched this week what does that mean I think it's like fuzzy hype to be honest uh it launched this week doesn't mean anything because account abstraction again is a concept it is not like a feature or product that launched what launched this week is a really significant thing which is the entry point smart smart contract which is one of the core pieces of 4337 so basically what launched this week is one of the key pieces of this proposed change and from here we get to actually start working in this ecosystem where hopefully multiple teams will rally around the standard to evolve ethereum to actually accept a version of account abstraction that works for everybody sounds less fun than seeing a launch this week I agree um so now that we have a sense of what this is what does it mean for actual users in the space I think it's going to have a massive impact on ux and and this is you know hardly a hot take but basically the ability to add this custom validation logic um is really going to unlock a world of possibilities it's really hard I think to imagine everything that is going to be built on these systems but for now the obvious two exciting ones is simplifying self-custody making it that ownership of keys doesn't need to mean you you know own a hardware wallet or an existing you know browser extension or something like that while it it can actually be expanded to be anything else you can think of uh provided there's the right logic in the account abstraction smart contract um the second thing it means is on-ramps into the space get a lot simpler you don't need to own gas to run a transaction on chain and so what that means is you know my mother can run transactions without knowing she's ever interacting with web3 which is very significant because you know some products will be web 3 native and will be sort of marketed as such others that use this technology maybe won't and you shouldn't know that you you shouldn't have to know that you're using it in order to participate so are we there yet I'll ask again and are we ready to start building products on this stack the sad answer is not quite we are the race has begun this is what's happened at least in my book is there's been a lot of work on account abstraction fantastic teams have done this over the years like Argent and like nosa's safe but now we have a standard that stands a chance of being adopted by a community at large which means people can actually start building around this standard without you know taking huge amounts of technical risk that you know their projects will die because no one else agrees to the standard so it means this is the dawn of a new era however standards take time what we're going to see over the next little while is companies are going to form around these new concepts of account abstraction around the spec of 4337 so you'll have new smart contract wallets that are going to appear you'll have new companies that are acting as relayers and pay masters it's going to take a little bit of time for the ecosystem to basically build out the Machinery that makes this real you're gonna need to see apps adopting these standards uh you know open c for a long time did not accept uh signatures from Smart contract wallets so it basically meant that smart contract Wilds didn't have access to basically half of the usage in the space so you need to see the core apps adopting these standards in order for the standards to exist and to really become uh not just standard but standard but the the way of the of the land and finally it'll take a bit of time to smooth ux across all these systems you're going to have a lot of different Technologies to Cobble together for a little while and it'll take a little while to find where the right thing is um but I think this is maybe one of my Meadow points about about this talk is standards take time and we have to talk about them accordingly I think saying this thing launched creates a bit of confusion around okay but why isn't my experience different you know tomorrow uh this thing launched means it will take you know 12 to 18 months for the market to solidify around this again I am just a person making a prediction who knows how long it will take um but this is my sort of take is as we go from the more researchy aspects of the space um the times to fruition are going to be longer and as we go to the more you know spec-specific aspects of the space uh the times the fruition are going to be shorter and I think one of the issues is we need to learn to talk about both realistically so developers can actually build four users using the systems that exist today I've said all of this so does a a matter you know you might think well if I don't have to worry about this for a long time why why care um I think it's a huge step to Bringing these systems mainstream I think crypto native culture a lot of what's been built to date is going to continue to exist and we're going to have you know a continuation of apps that use these sorts of things like Dao's and generative art and so on but I think enabling interoperable modular assets across standard mainstream apps will be unlocked By changes like these so I think it's a huge change so what what do you do for your users in the short term it likely means ux is going to become a little bit more from a fragmented it's going to be harder to build products in the space because there's just going to be a lot more to pick from so here are a few short-term predictions I'm sure I will be proven wrong in no time but first I think we will have sort of a second uh run of the wallet Wars you may have known wallet War one which is the eoa War uh where we had all of these competing products uh making it a little bit hard for users to understand how to onboard into the space if they weren't native what we will see now is the Smart contract four and the really exciting uh but probably reason why it's going to be you know what we've seen and then some is because wallets are going to be competing on functionality rather than just UI and I think you know Brandon from Phantom showed a lot of how you can build functionality into wallets to make them better but here by changing how transaction validation and logic changes you can make just much more sweeping changes to how while it's uh operate second prediction I think we're going to see a lot of flavors of like account abstraction smart contracts some of them will be related to 4337 some of them will be completely different again account abstraction is not a product you can't really trademark it or say it's yours you can latch on to an idea that's caught people's attention um and some of them will provide really great upgrades and some of them will not finally it's going to be a bit of a mess to integrate uh it'll be very hard to know you know what should I use in my toolkit to build the best experience and so I think what we've done is we have basically signed up again assuming Builders come and start implementing these these abstractions and they already have started we've basically signed up for a little bit of chaos to break out of what has been a local maximum in the space to get us to the new step of you know how ux might look in web3 and so with that I will talk about why we exist a little bit as a company I starting very very loftily I think technological advancement is like non-deterministic meaning there's no guarantees of how things will turn out I'm French the minitel was a uh you know almost internet that we invented uh and it was not to be and so I think it's very hard to predict how these things go and Technologies are shaped by the people who use them if you look at Netscape they invented the browser AWS was a product born out of Amazon's needs that has now spawned an entire industry all of these products were shaped because we were actively using the tools that they were built on and so I think this is my sort of core pitch for this for this this uh this talk is let's keep building user apps even if the underlying tooling doesn't always feel ready even if it feels like there's a major upgrade coming six months from now and so maybe we should just wait we need to keep building user apps because otherwise we're not actually advancing the underlying Tech I think it is you know a given that Defy is here to stay I think it makes too much sense for the cat to be put back in the box but all of the work that's being done around user identity and around uh data ownership is still very nascent and uh and so I guess I'm pushing for more apps to be built that cater to end users in order to shape the tag that we build on and this is kind of how we think about this so at privy our take is you shouldn't have to deal with this alone you shouldn't have to make sense of this this mess on your own we want to build tools that make it easy for developers to build better products products that respect their users and Delight them at the same time specifically what does that mean today it means we are building onboarding libraries for web3 we build libraries that enable users to come on whether they've been in the space forever or whether this is their first time interacting with it um the court take is that we want to help you meet your users where they are progressively onboard them if they've never heard about this space um have and help you have opinion at a design so you can activate them and retain them over time and keep their data private and self-custodial at the end of the day preview is a user management platform so you can basically help shape your product around a better user experience in the space we have customers we're live if you're building in this space obviously I would love to talk to you and I will sort of move back basically saying I think this matters because developers should be free to focus on their end users I think that's a lot of what we need in this space and tooling that helps you abstract away a lot of the complexities of the underlying stack um helps you do that and so with that I will conclude by maybe opening it up to you know why are we even building in this space in my view uh there are native things about distributed systems and about decentralized state that are extremely exciting uh assets and data is composable uh the systems themselves are open and transparent which is a terms I like much better than trustless um and the entire system is programmable so I think we're going to get to build things that we couldn't have imagined before but in the interim I'm sorry this will yield much better products over time in the interim though we have to change the way we talk about products we need to distinguish between the underlying tools and the products that are trying to be built on top of them and we need to focus on the user experience we want to get on what our users are coming to us from rather than what technical stack we want to be building on top of and so with that I will make the the sort of hot take that web3 has to disappear into the products that it spawns self-custody should be baked into most of the products that we use we're just in the infancy of a stage in which these things are extraordinarily explicit thank you so much
Automatic transcript — names and jargon may be misspelled.