Abstracting Complexity, Unlocking Opportunity | Max Howell - tea Protocol
Ethereum Denver·Wed, Oct 9, 2024, 12:00 AM
Through this workshop, attendees will learn strategies and implementation examples for utilizing account abstraction to smooth the transition for web2 developers into web3 while enabling new reward, ownership, and recognition opportunities for open source project contributors through simplified interactions for their users. We will showcase demos using our app, tea, which leverages these techniques to empower open source project ownership and decentralized community rewards. APPLICATIONS FOR ETHDenver 2024: #YearOfTheSpork ARE OPEN APPLY NOW https://ethdenver.com/apply
Transcript
[Music] everyone Thanks for attending our talk this is the title of the talk you can tell my marketing team came up with it try saying this four times really fast abstracting complexity unlocking opportunity simplified web 3 development and rewards for open source projects firstly I'd like to introduce myself and my co-speaker I'm Max how or MXL as I tend to go online as I've always been a bit of an open source person and I'm most famous for my work home brew which I created almost 15 years ago now one of the biggest open source projects full time Mada do you want to introduce yourself hi everyone my name is maada basier I'm head of product at t uh building crypto products for about 10 years now across different ecosystems and blockchains uh and user groups uh and excited to present today with Max firstly let me go back a little and talk about home brew I uh actually have a chemistry degree I was never going to be a programmer uh the reason for that is when I was trying to figure out what I would be in life I met some programmers at a job fair and they scared me with their incredible level of geekiness so so I thought I'll be a scientist and I went and did a chemistry degree where I discovered that in fact everything everyone had told me about chemistry was true and it's an incredibly boring subject falling into a depressed funk I discovered Linux I got involved in the open source communities on Linux this was 2003 2004 or so and I started working on open source projects it was incredibly rewarding I couldn't stop myself I ended up going back to live with my parents and working on them all night so I didn't have to talk to my parents uh in that process I managed to get myself a job in the tech industry some company in London called Last FM uh liked the work I'd done so I skipped the whole step of having to get a degree that made sense and got straight into programming while I was there I created home brew part of the reason I created it was because we were working on six different apps at the place and uh we used Mac as the unified development platform this was kind of new this was 2007 or so and there wasn't really a very good package manager for Mac so I used to complain about this to my colleagues after work at the pub and eventually they got fed up with my complaints and told me to do something about it so I did I went home and uh started the work on home brew a few months later I open sourced it and it became phenomenally successful incredibly quickly uh so much so that I quit my job to work on Homebrew full-time I had a bit of money saved up and it was a much more rewarding thing to do it was incredible how much impact it was having how much excitement it was generating in the developer sphere eventually I ran out of money though and this started this uh cycle for me where I would go and find a job maybe I liked it maybe it was acceptable earn a bit of money save up quit then go back to working on open source fulltime after a few years of this and uh tens of thousands of hours of work on Homebrew and the feeling that I was always doing two full-time jobs I eventually burned out which is where I want to talk about tea and tea protocol my story is common in open source the people who make open source love working on open source typically they make things are important when these things are made they enter this stack of bricks in the uh entire software sector cuz the truth is 80% of enterprise software is built on top of Open Source nowadays over the last 15 years or so open source went from being something that was derided Microsoft used to uh spread what we call fear uncertainty and doubt about open source they declared that it was Insidious and viral and dangerous but web 2 decided to build on top of Open Source in that process web two companies have made small fortunes where the people like myself who were maintaining the open source that made that possible were not getting anything we never made open source because we expected anything we were making open source because we loved making it but this divide between what was happening at the top and what was happening to us just didn't seem right right this uh comic we have here is based on a famous One by XKCD called dependency and in that uh comic the uh little brick at the bottom there that's holding up everything is labeled as some random open source package developed by someone from Nebraska thanklessly since 2003 and this is part of the problem with open source is that the pieces fall into this Tower but then over time they get forgotten and they are thanklessly maintained but they're holding up everything and we like to rethink this comic now as actually web 2 is that pillar that's holding up the entire web 3 ecosystem my story is not unique and even it's not the most uh concerning like here we have a quote from uh this guy who maintains core.js core.js is downloaded 5 to six billion times a year 80% of all the top one 100 websites in the world use core.js in fact it's pretty difficult to make any kind of JavaScript application without it and yet the guy thanklessly maintains it I love this quote because it just really resonates if he stopped maintaining it what would happen to the internet a couple of years ago this happened just as I was raising money for tea log 4J is this not very wellknown depend dependency that is in a huge amount of internet software and someday someone found this really bad security exploit and suddenly for a week or so everything on the internet was easily hackable the people who maintain it received an awful lot of threats and bad vibes is what I'd say and the Enterprises that depend on it didn't really understand they don't understand that they have all this open source underneath everything that they're building and they demanded fixes so the developers said well okay we'll fix it but maybe you could like sponsor us a bit of funding after we fixed it they fixed it they still have almost no funding a couple of years ago I was once again in between jobs trying to figure out how to work on open source full-time and I looked at the car and crop of solutions to that there was new ones but I couldn't see anything that would make it possible so I just decided that maybe this time around it was my personal mission to try and fix that so I dive deep I wasn't really familiar with web 3 or crypto but I looked into it and in a moment of inspiration I saw the possibility of putting all this package data that I was intimately familiar with onto the chain using the connections between those packages to direct token at T we see it as our mission to support open Source the web 2 open source spere keeps the entire internet running and yet for some reason people feel that it has no value most open source developers have something in their REM which is like hey why don't you buy me a coffee because that's kind of what they feel that they can ask for even though their software is powering the internet there's 2.2 million open source developers and for comparison there's probably only 30,000 web 3 developers web 3 is doing okay but all these open-source web 2 type developers are the ones that we need to support or we're going to run out of steam 5.
8 million open source repos 10.5 million packages T protocol has on boarded all of this if you go to T doxyz today because we launched our test net last week you can onboard your package and start receiving rewards based on the impact of your open source contributions we call it proof of contribution and we've calculated all the different impacts of all the different open source packages that exist our aim is to bring all of the web 2 developers that exist onto web 3 and so far we have over 200,000 signups for our test net and that's in less than a week but why are we using blockchain and cryto crypto well my simple answer to that is the solutions that currently exist have not succeeded some people are making okay uh with the existing solutions that are out there but the truth is the vast majority can't get much my GitHub sponsors currently is $8 a month that's a couple of coffees the needs to be a solution that really can fix it and the only way we can go forwards is by trying something new our p Mo now who can talk about a few more of our utility functions Thanks Max so we understand that the t solution has three components to it the protocol the proof of contribution algorithm but the third piece is the application that brings it all together the guey the front end that lets people actually interact with the platform and with that and a blockchain crypto backend web 3 backend we actually hit this interesting ux conundrum that is uh as old as the age of crypto and so for the past eight years of my career it's been an ongoing Mission trying to solve this ux conundrum and what we really mean by that is how do we take the blockchain interactions that are happening the transaction signing uh wallets all of that uh pieces of all those pieces of the puzzle and make it easy for users how do we actually make a great user experience behind this and the Big Driver here is actually recognizing part of our target market and that is the web two developers the web two side they're not exactly that familiar with web 3 crypto they may not know what a wallet is although they are very technical very sophisticated and intelligent groups of people that's just a part of the world that they haven't interacted with and that's fine they don't need to understand that part of the technology in order to use uh the product and to get value out of the soft in the solution that t is spearheading and so the thought becomes okay well how do we create a user experience for that side of the market how do we abstract away the blockchain how do we abstract away wallets how do we abstract away transaction signing but still give the power of crypto to that user group and then the other camp we have is the web 3 developers they're very familiar with crypto wallets transaction signing multisig all those pieces of the tech stack um but no one really wants to do those actions no one wants to have to click a button in metamask three times to stake they don't want to have to uh record Another private key somewhere make sure it's stored properly in order to actually uh ensure recovery of their assets that side of the camp also does not want to have to think all the time either to be able to use a platform like te and so this whole idea this very common notion of don't make me think and user experience uh for some reason is considered a luxury for developers as the end users and so we took it to ourselves to figure out how do we actually build a user experience uh for that market that serves them in every way resonates with them but also really is consistent reliable and easy to use and so we considered a few things in our approach and there's really four pillars to how we approach user experience with the T protocol and the application built on top of it the first is empowering the sleekness and power of web 3 all web 3 apps for the most part there's a few outliers out there have incredible uis they're beautiful they're Sleek they're slick they're clean but the other part of it is once you are into web 3 the onboarding process is pretty simple you bring your own wallet you log in with that wallet you're all set you can play around with Unis swap uh dydx whatever it is and so that kind of sleekness and power was really important to how we actually designed the application the second pillar is empowering self- custody although we want to make things easier for the web 2 camp and you know still simple for web 3 there's this idea of self- custody that needs to be in there centralized exchanges are a great example of that simple user experience no self- custody and so how do we still allow for the self self custodi piece of this and that means self- custody wets as well as a road map towards decentralization truly and that means that t us as core contributors are not in the middle we do not control anything it is truly self- custody and self- sovereignty and how people can interact with the protocol and the proof of contribution algorithm the third piece still is always a mission in web 3 and that's why we have so many layer 2s uh come out and different blockchains come out is this uh drive to have to have low costs in the end no one's have to pay $100 to send some eth to someone else which for a period of time in 2018 I do remember uh painfully uh having to pay that much to make a transaction go through that I needed to go through unnecessary removes the removes away from the actual value of the technology and so part of that uh part of actually accomplishing that pillar in our user experience is looking at layer layer twos and we were able to accomplish this with base as our Layer Two but also another part of this is smart contract design and the efficient smart contract design how do we make our smart contracts that actually make the protocol move work efficiently and therefore at a lower cost of gas and the fourth pillar which is always the most interesting one to work with just because uh the user experience of web 2 apps fintech apps uh that are out there it's hard to build them oneto one as far as ux goes with crypto because of the nuances of the blockchain but we took pieces of those use ux of the ux of those web two apps to build out the T app and really primarily going back to the first point of bring your own wallet it's also bring your own account single sign on was a critical part of that so users can actually sign up for the T app with their Google account Microsoft account Discord account they don't have to create a new one they don't have to download metamask figure out how it works store their seed phrase somewhere uh and uh now have to remember this other account that they have to manage it's all within their Google account the other piece of this that we've learned and has been a quite a mission to get to is trying to enforce simple language in our application if you look at web 2 apps that are super successful with the masses language is simple you don't have to understand what's going on behind the scenes to understand what kind of action you're doing on the front end and that's a really important piece of the puzzle however part of it is also ensuring that we educate users as as well we don't want people to be blind to what's happening behind the scenes we want to slowly gradually educate them on what is happening what are Stak tokens how do you register a project what is a multi-stake what is a treasury what are tokens in the end all these pieces actually flow into the verbiage and copy of the application which actually helps educate users but makes their lives easier because they know oh if I click this button tokens will be taken out of my account if I click this button tokens will be deposited into to my account awesome and the third piece which is actually the biggest piece to accomplish was account abstraction and what that really means is how do we take away the layers of the blockchain and just simplify it for the end user and there's a lot of layers to this part of it is how do we actually ensure that the user doesn't have to click a button four times to do something how do we make it a true oneclick done activity the other piece of it as well though is how do we actually allow users to interact with the blockchain in other ways uh without understanding truly what's going on behind the scenes what are gas fees oh do I need to acquire eth in order to pay for the gas for this transaction when I already have t tokens in my account and that's what I'm using all these little pieces of the puzzle that have actually caused a lot of uh friction to user experience in applications so far in web 3 have been a big uh part of our mission and everyday brainstorming of how do we make our app more accessible and we know this is still a problem because we have not crossed the chasm yet in crypto adoption there's a reason we haven't achieved Mass adoption and that's because it is still generally speaking difficult to enter a web 3 D and so by using leveraging account abstraction in its various forms we're hoping that we are one step closer to that maybe more and the big thing to note there as well is that with account abstraction although it's been around for a few years there's different implementations of it and we've had to spend a lot of time exploring what those implementations could look like for our application and at the time when we started building there were very few options and so a lot of creativity had to be uh put into place to actually make it work for the user so they don't know what's going on really behind the scenes they just know that it works if it doesn't they have someone to reach out to and a big piece of the puzzle here is actually the base layer that we used for our for our app for our protocol and that is a layer to uh blockchain called base uh spearheaded by the coinbase team and there are many reasons why we chose it and it also flows into the user experience of what we're building here and firstly it's the coinbase integration millions of users many on-ramp off-ramp uh capabilities uh other Integrations with other applications and and other uh pieces of code that we can pull into our system their road map was also really intriguing I mean the the the rollups piece of it as well is really important for us to ensure the security of the chain and security and integrity of the transactions going on on the Chain skiping the head of cost efficiency robustness also very important uh but the biggest thing that we actually that Drew us to base was the open- source component as they live and breathe it and as we live and breathe it and we want to make sure that value alignment was there and so with base as our as our foundation we're actually able to achieve a lot lot more on the account abstraction side but we talked a lot right now about our approach in design our pillar for ux but how does that actually work and so this is a bit more of a technical part of the conversation but really what we're looking at here is that every user on our app has an EA their externally owned account and we generate an AA an account abstraction account for them and that's actually through safe so we leverage NOS is safe for this uh the user gets a safe that is a oneof one multisig attach their EA so in this case you have Alice and Bob Alice comes into the system she signs up with her Google account an EO an EA is is generated for her and that eoa is then attached to an AA or A Safe Bob does the same thing now both Alice and Bob are actually developers they have a project called hello world it's on npm it has a t rank so proof of contribution score of 35 they want to register it on t so they can start earning rewards for their contribution to the ecosystem they come into the system they follow the wizard very easy where they actually create the the constitution of their project they say Alice and Bob we are the two contributors uh we are the governors of this project uh only at least two of us sorry two of us have to sign every transaction that goes through this application so every time we want to do anything with our treasury anything with our registered project both of us have to sign have to agree to it that is the Quorum rules once they actually create this constitution file they actually have to prove that they truly own the project hello world they need to go into for example GitHub or directly to their git they have to upload that file and that proves ownership because our system checks does that file exist does it have the same um uh address wallet addresses that are provided in the system awesome they're all set their project is now registered on T but now they want to stake from their project they have some tokens in there they want to stake it they want to receive some yield out of it uh and so they want to start a stake they want to initiate staking Alice starts it she initiates a transaction through our application transactions constructed uh and they can um and and the um the transaction data is pregenerated Alice then hashes signs the hash data with her EA Bob the same thing and then we actually take that data we we we we attach it to another pregenerated dat of set of transaction data we connect that all together and then we actually send it to the pay Master where the gas fees are actually covered for that so the user themselves don't have to actually get the eth to pay for it the base eth uh they don't have to figure out how to get that into their wallet the pay Master actually covers it for them it's then forwarded to the bundler that puts it all together and then it calls their treasury to actually uh execute the transaction at the end of all of that they actually have a legitimate transaction go through uh tokens from their treasury are now staked to their own project and they now receive yield on that and so if you actually want to see this in action the easiest way is to actually go to app. t.x YZ where you where you can actually try it out um it's uh it's a way for you to you can sign up with your Google account your Discord your Microsoft bring your wallet is coming soon uh as well and you can if you have an OSS project you can go ahead and register it if it's in our supportive package managers and you can give it a try and see this ux in action and as a thank you uh for attending today we are meaning uh some PS uh to all uh attendees so go ahead and scan the QR code uh and you can get an nft which uh May uh make eligible for rewards in the future and that's [Applause] all
Automatic transcript — names and jargon may be misspelled.