 Hey everybody, my name is Matt Slipper. I'm the CTO co-founder of a company called Kiyokin. For those of you who don't know who we are or what we do, we're a full-stack crypto-native software development consultancy. We've worked with a lot of notable people in the space, both on Ethereum as well as a variety of other chains. And when I say full-stack, I mean we do everything from protocol design and development to UI implementation. We've also worked with Mollick Dow, building a bunch or writing a bunch of reports that are designed to accelerate the ETH2 roadmap, as well as with Rick Dudley to help accelerate the creation and implementation of it 1559. So as for me, usually there's supposed to be a slide with my face on it and an enumeration of all of my incredible career accomplishments. Rather than do that, because I think everyone in here knows how to use LinkedIn, I'm going to tell you a quick story. And this will set the stage for both my talk and also how I think about building software and why mainstream adoption for ETH matters. So when I was 16, I built this thing. It was called Transmute. And it was a little web app. And what it did was it let you drag a video from your desktop onto your web browser and drop it on top of the device that you wanted the video to be playable on. So you could take a video on your desktop, drop it on the iPod, bam. You can now play it on an iPod. So I begged my mom to pay for a press release and some Google ads. And I managed to get some users. I had a couple hundred people using it for a while. And there was this one guy who went through and he uploaded something like 350 or so videos. And they were of him flying model airplanes in Los Angeles. And that was really, really cool. It was really, really cool because here's this guy. He's in his 60s. He flies model airplanes for fun. So he doesn't, he's clearly retired. He doesn't care about my technology. He doesn't care whether I use FFMPEG or LiveAV or what the container protocol that it is that I'm using. He just cared that I was able to solve his problem. And he's an example of someone that I would call a mainstream user, someone who doesn't care about your protocol, doesn't care about your technology, but wants to solve a problem using it. And that brings us to today's topic. So how do we build DApps that are ready for mainstream users right here, right now, without waiting for additional protocols or new research to be developed? So to get really specific and reiterate what I mean by mainstream user, I'm talking about people who use applications for the benefits they provide, rather than the technology that powers them. This includes things like decentralization. So a performer on SpankChain doesn't use the platform because she thinks crypto's cool. She uses it because she's able to custody her own funds and the financial system can't come in, decide they don't like her job, and all of a sudden delete her access to the financial system. She does it because there's no chargebacks on crypto and it means that rather than charging a 20% fee per transaction, they're able to get five. And that can mean the difference between someone paying rent or someone not being able to pay rent. The point is these are people that are being enabled by the technology. And in the past, historically, crypto has focused on the technology rather than what the people are able to do with it. I think a great example is BitSquare. So does anyone in the audience know what BitSquare is? Okay, absolutely nobody, except Jackie. Awesome, so BitSquare is sort of the granddaddy of decentralized exchanges. It launched in May 2016. The cool thing about BitSquare was that as far as the centralization goes, it was a showcase of all of the things that we consider now to be sort of the forefront of decentralization of thought. It uses a big Java app to talk to a peer-to-peer network. That peer-to-peer network is only available over Tor. So you have to be connected to Tor to get the order book and get the orders and all the other things that make it a centralized exchange and exchange. It uses fiat and crypto, it's a fiat to crypto exchange. So how do you do that, trustlessly? When people have the ability to cheat you in the fiat world, well, it had a doubt. You could stake BSQ tokens in order to become an arbitrator and then arbitrate any failed transactions that occur on BitSquare. So they've been around for a while. They renamed to Bisk, like the soup. But there's only one problem with that and I'm sure you can kind of guess what that is. Nobody uses Bisk. And the reason nobody uses Bisk is because not because they don't like decentralization or because they're stupid, but it's because it's complicated and it makes them feel stupid. They all used centralized exchanges, Coinbase, Kraken, whatever. And if I were to put on a number line here where Bisk and Coinbase fall as far as decentralization and users go, it would look something like this. You've got Bisk, which is decentralized out the Wazoo. In fact, the founders were thinking about going full Satoshi and disappearing at one point. And they've got fewer users. And then you've got Coinbase, which asks for your passport and what you did last night to let you trade, but it has a lot of users. I've deliberately chosen some somewhat polarizing examples here in order to illustrate a wider point, which is that if you pick any individual DAP or thing that we're building on crypto, generally speaking, it's going to occupy one of the poles of this spectrum. So how do we build things that are more in the middle that can be appealing to mainstream users? Well, I think the first step is to actually understand what attributes of decentralization and conveniences afforded by centralized platforms users want and what those things are. So for decentralized platforms, that's usually things like this, self-sovereignty. I'm the only one that can spend my funds, no one can take them away from me. Transparency and auditability. If the operator or a counterparty or me decides to go and do something bad, everybody's going to find out about it and they're going to yell at me. And finally, portability. I can take my funds and leave a platform that's starting to exploit me. Someone in a previous talk talked about, it was a wireline guys, they talked about how once the Gmail platform got big enough, it was time for Google to start exploiting its own users with the portable crypto platform that becomes impossible. And these are things that are only possible using a robust cryptocurrency system. However, and it's a big however, users don't necessarily know about those things. What users see when they interact with DApps on a daily basis is they don't have these things and they really, really like these things. They really like username password authentication, the ability to get all their funds back. I think my Ether wallet has six or seven warnings reminding you that if you lose your seed words, all your funds are gone. That really scares people. People like the ability to go to a website on their phone or on their iPad or whatever else and have all their data right there and the ability to log right in. They also want performance. It has to be fast. It has to feel instant in order for it to be fun. And finally, actions shouldn't have to be paid for. And so these are really ingrained user expectations. If your application doesn't have those things, you're not going to be able to get over the hump and users won't be able to get over that hump to actually start exploring what your application has to offer. And so until user behaviors change significantly, we have to honor these things and figure out where the appropriate trade-offs are in order to get mainstream adoption to happen. And a way I say this happens is we need to support multiple access points from users with varying needs. So to illustrate this a little more, who's seen this screen before? Yeah, pretty much everybody. So I pulled this one from the EF's website for the auction to buy tickets using the on-chain auction contract that they put together for DEFCON. And it's the screen that says you have to install this other thing before you're allowed to use my thing. Users really don't like this. And this isn't a dig at MetaMask. MetaMask is responsible for a lot of the adoption that Ethereum has already had. But MetaMask's risk profile is different from the majority of decentralized applications. If you're a crypto kiddies, your users are not going to be storing arbitrary amounts on your platform. They're not going to be using your platform in arbitrary ways. They're not using your platform for a free infura either. And so as a result, if you have a MetaMask only login, since MetaMask has to be maximally paranoid in order to serve its users, it's a little bit like you wanna play with your crypto kiddie, but you gotta go to some bank vault in the Swiss Alps. Maybe talk to this guy with a gun. And people really find that off-putting. Not only does it scare them, unlike I mentioned before, but it also makes them feel kind of stupid. And no one wants to feel stupid while they're using an application. So I've provided enough atmospherics, I hope, for me to actually start talking about various solutions to these problems. And the first is, well, we can borrow from applications that have already tread this path before. And those are end-to-end encrypted messengers. I've worked at several end-to-end encrypted messenger companies and they generally do something like this. You have a user make up a password, you strengthen that password using a KDF, you encrypt whatever ciphertext it is, shove it on the server, and now as long as the user has that password, they're able to sync that data everywhere they decide to go. But this doesn't solve password recovery. To do that, you need to either have a version of the key yourself that you're able to decrypt. So that does violate the first tenant, which is self-sovereignty, because technically speaking, the operator could go in and steal all your money if it wanted to. But at least the user's going to be able to recover. And to be honest, when you have a non-technical person using crypto, I generally trust the operator more than the user. Or you can use something like a fund custody smart contract. The way these work, it's a little bit like an OSIS safe where user funds are actually stored in a smart contract. That smart contract then has the ability to delegate ownership of those funds to a separate address. And it enables you to call recover with a new owner that initiates a challenge timer one called the user gains the ability to in the event of operator malfeasance, cancel the transfer of ownership and eject all those funds from the contract. So even though the operator does have a window of time in which it can try to steal your funds, if you're watching it, it can't. But we're still not changing user behaviors with these things, we're accepting them. So we're able to get short term user value and user adoption using these solutions. But it's not what we want long term. We want people to be able to change their behaviors to be more congruent with what crypto is going to require in the future. And so for that you can use something like wallet connect. So for those of you who are unfamiliar with wallet connect, Pedro Gomez has done an amazing job of this. It's a standard that allows you to share keys and signature data between various wallets. For users that have an existing wallet, they can import it directly into your DAP. For users that are on your DAP that start storing more value and becoming more accustomed to the crypto space and want to self custody, they can eject. And that's gonna solve the third tenant of why decentralization matters, the portability bit. So you should check out wallet connect if you can because it's going to slowly start changing user behavior. Recapping, what do we fix so far? So we've done onboarding, we've done authentication and sync but we haven't solved performance and we haven't solved gas. So to do that, we need to go off chain. This is the Gartner hype curve. You've all probably seen it before. This is where I think lots of different L2 solutions sit on the Gartner hype curve. This isn't a dig at each one of these solutions, it just means that of the various L2s that are available to the world right now, state channels are the ones that are ready for production and on mainnet. And the reason you're not hearing about them and are instead seeing people on Twitter saying that L2 isn't here yet, what the hell happened is because once things are production ready, they start getting boring. And I think boring is awesome because it means you can use them for real value. So an example of this is a ticketing application. And by the way, if you're using payments, you can just take off the shelf stuff for this, you don't have to build anything special, you can use the die card but I'm talking about an asset transfer system here. So for a ticketing application, you have a general flow that looks something like this. So you've got a user, he goes to your DAP and he wants to buy a ticket for something. Your DAP mints a token and either if there's enough collateral, deposits it directly into a channel and credits the user's balance or makes an on-chain transaction on the user's behalf in order to make sure that that token exists. The user's made no on-chain transactions here, they haven't paid for any gas. If the channel is adequately collateralized, they get that token immediately. And now they can actually start doing things with it, just like they would on something like Ticketmaster. But something that's important to note is after that little dotted line on the user column, the user can close the channel and they can get delivery of that token. So something that's kind of unique to Ethereum. There's been a lot of talk and rumbling about how ETH is money. If ETH is money, then ERC 20s and ERC 721s are its medium of exchange. And receiving delivery of that token means that it sort of doesn't really matter how complicated or even how centralized the system is that creates those tokens. As long as you're able to eventually take sovereign custody of those tokens, you can play with the rest of the Ethereum ecosystem. So to tie it all back together to this ticketing application that I'm talking about, once you receive that NFT or that ERC 20 that represents your ticket, you could stake it on a Uniswap if you want, or sorry, put it in a Uniswap pool if you wanted to. You could perform an atomic swap with it if you wanted to. The sky is limit because you've received delivery. I mentioned centralization earlier. And there are a class of applications for which it probably just makes sense to centralize it at this particular juncture. So if you're the mentor of the token, you're the only place that can use the token, if your company were to go up and smoke, your token becomes meaningless bytes on a blockchain, you should probably centralize and just allow people to settle onto Ethereum using ERC 20 or ERC 721s. And it seems kind of like a sad, like an acceptance of defeat, but it's not. Because at the end of the day, dApps are businesses and they're trying to find product market fit and they're trying to get people to use them. That's the important part, people to use them. And they're more likely to fail as a result of no one using them than they are people finding them to be insufficiently decentralized. And so if eventually your dApp becomes something that could be a public good, go ahead and start teasing it apart and decentralizing it and making it more robust. But until then, you wanna make sure you're building the right thing before you're building the best thing. And I can say from experience, having built several L2 solutions, both generic and specific, it costs hundreds of thousands of dollars to build a rigorous, audited, production ready, decentralized L2 that users really want to use. And that's a huge risk, particularly for a tiny company. So, continuing, we've ticked all of our boxes, but there's sort of a big question remaining, which is like, what's next and why does this matter? This is not fun crypto. This is not ZK Snarks. It's just sort of boring solutions to get people to start using Ethereum. Why does getting people to start using Ethereum actually matter? Well, let's tie it all back together. People talk in the abstract about an Ethereum killer app. The reason an Ethereum killer app is interesting and useful is that unlike, say, a Silicon Valley venture backed company where to the victor goes the spoils. And the goal is you grow your platform, you engage with your users, and then you exploit them and you crush them under the heel of your boot. Every startup that launches on Ethereum has a unique opportunity to find fit for itself, but also find fit for the entire chain. We don't talk about Uniswap in the context as if Uniswap is the only DeFi thing. We talk about DeFi as a whole. So, something succeeding on Ethereum grows the pie for everything else. And the best way to do that is to build lots of MVPs that provide user value and talk to those users. And those users have to be mainstream users that are solving a problem because the number of people that are interested in crypto for crypto's sake is extraordinarily small. I really, really like this graphic because it talks about what a successful MVP is. So in this case, the MVP is a transportation device. And so on the bottom, they start with a skateboard and eventually emerges into a car. And on the top, they start with the wheel and then eventually they put together a car. Anyway, the bit's gone on a little bit too long. But the idea is up until relatively recently, and this is a testament to the Ethereum community, we didn't even have the wheels. We didn't have the primitives to actually choose between which model of MVP we wanted to go about building in order to build mainstream decentralized applications. We do now with L2, with all of the open source work that's been done with many of the things that have been described at this very conference, we have the ability to do things at this very moment. So it's a watershed moment in Ethereum. To get to the next 10 million users in Ethereum, we need to find that killer app. Removing barriers and not forcing users to change their behaviors lets us validate more hypotheses about what users want to use Ethereum for more quickly so that over time we can in fact, make people care more about decentralization than just convenience. So that's the end. I hope you found it helpful and interesting. This is usually also the bit where I try and sell you stuff, but I don't actually have anything I want to sell you. Instead, I'm working on a lot of interesting stuff at Kyoken, shoot me a DM on Twitter if you want to hear more about it. Otherwise, yeah, I would love to hear more about what people think of these concepts. And if you're talking about, or you're interested in talking about UX adoption and L2, feel free to reach out. Thank you very much.