# Building Mainstream-Ready dApps in 2019 by Matt Slipper (Devcon5)

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2020-10-09
- Duration: 18:47
- Topics: blockchain, smart contracts, distributed ledger, ethereum
- Watch: https://streameth.org/watch/yt-06_dtE1dcbI
- YouTube: https://www.youtube.com/watch?v=06_dtE1dcbI

## Description

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 IPFS and more.
https://archive.devcon.org/archive/watch/5/building-mainstream-ready-dapps

Matt Slipper speaks about building mainstream-ready dApps.

Speaker(s): Matt Slipper
Skill level: Intermediate
Track: Developer Infrastructure
Keywords: dapps, mainstream, adoption, technical

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 5 was held in Osaka, Japan on Oct 8 - 11, 2019.
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

hey everybody my name is Matt slipper and the CTO co-founder of a company called key oaken 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 aetherium 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 Moloch Dow building a bunch of or writing a bunch of reports that are designed to accelerate the eath to 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 gonna 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 eat matters so when I was 16 I built this thing it's 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 sixties 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 live a V or like 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 apps 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 decentralisation so a performer on Spang chain doesn't use the platform because she thinks crypto school 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 doesn't 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 bits Square so does anyone in the audience know what bits Square is okay absolutely nobody except Jackie awesome so bit Square is sort of the granddaddy of decentralized exchanges it launched in May 2016 the cool thing about bit Square is 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 in exchange it uses fiat and crypto if it's a Fiat to crypto exchange so how do you do that Trust lessly 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 in order to and and then arbitrate any failed transactions that occur on bit square so they've been around for a while they renamed to bisque 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 bisque and the reason nobody uses bisque is because not because they don't like decentralization or because they're stupid but it's because 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 bisque and coinbase fall as far as decentralisation and users go it would look something like this you've got bisque which is decentralized out the was Oh 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 convenience is 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 gonna find out about it and they're gonna 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 wire line 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 taps on a daily basis is they don't have these things and they really really like these things they really like user name password authentication the ability to get all their funds back I think my ether wallet has six or seven warnings reminding you that you know if you you know 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 if their iPad or whatever else and have all their data right there and the ability to log right in they also want performance has to be fast 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 I 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 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 dig at meta mask meta mask is responsible for a lot of the adoption that aetherium has already had but madam asked risk profile is different from the majority of decentralized applications if you're a crypto kitties 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 free and fury either and so as a result if you have a meta mask only login since meta mask has to be maximally paranoid in order to serve its users it's a little bit like you want to play with your crypto kitty but you got to 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 and like it like 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 like you know 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 indent encrypted messengers I worked at several and and 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 users 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 fund custody smart contract the way these work it's a little bit like a gnosis safe where user funds are actually stored in a smart contract that smart contracts 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 when 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 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 wall 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 debt that starts storing more value and becoming more accustomed to the crypto space and wants to self custody they can eject and that's going to solve the third tenet of why decentralisation 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 where 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 to 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 main net 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 dad mints a token and either if there's enough collateral deposits it directly into a channel and credits to users balance or makes a non chain transaction on the user's behalf in order to make sure that that token exists the users made know 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 this is something that's kind of unique to aetherium there's been a lot of talk and like rumbling about howie this-- money if eath is money then ERC 20s and ER c720 ones are it's 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 takes all in custody of those tokens you can play with the rest of the etherium ecosystem so to tie it all back together to this ticketing application that I'm talking about once you receive that NFT or that er c20 that represents your ticket you could stake it on the you know swap if you want or sorry put it in a eunice watt 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 to 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 in smoke your token which becomes meaningless bytes on a blockchain you should probably centralize and just allow people to settle onto etherium using a RC 20 or a RC 7 21s and it seems kind of like a sad like an acceptance of defeat but it's not because at the end of the day adapts or 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 DAP becomes something that could be a public good go ahead and start teasing it apart and be centralizing it and making it more robust but until then you want to make sure you're building the right thing before you're building the best thing and I can say from experience having built several l-2 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 aetherium why does getting people to start using a theorem actually matter well let's tie it all back together people talk in the abstract about an aetherium killer app the reason an aetherium 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 aetherium has a unique opportunity to find fit for itself but also find fit for the entire chain we don't talk about yuna swap in the context as if you know swap is the only defy thing we talked about defy as a whole so something succeeding on aetherium 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 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 bits gone on a little bit too long but the idea is up until relatively recently and this is a testament to the etherium 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 decentralize applications we do now with l2 with all 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 aetherium to get to the next ten million users in aetherium 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 aetherium for more quickly so that over time we can in fact to 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 like I you know 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 Keo can shoot me a DM on Twitter if you want to hear more about it otherwise ya 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 [Applause]
