New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Dieter Shirley I Rethinking infrastructure to Onboard Millions to Web3 | Pragma Waterloo

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Dieter Shirley, CTO and co-founder of Dapper Labs and co-author of ERC-721, in this fireside chat with Kartik Talwar at Pragma Waterloo. Dive deep into how Web3 infrastructure must evolve to onboard millions of users. From the lessons of CryptoKitties and the creation of Flow blockchain, to rethinking smart contract design with the Cadence programming language, Dieter shares insights on scalability, account abstraction, social consensus, NFT evolution, dynamic assets, and cross-chain interoperability. Whether you’re a developer, product builder, or crypto enthusiast, this session is packed with actionable ideas and reflections on the future of blockchain usability and consumer-grade onboarding. 00:00 Intro to Web3 infrastructure and Dieter Shirley 01:04 CryptoKitties and the origins of Dapper Labs 03:15 How putting cats on the blockchain became real 04:50 Crypto onboarding hurdles and early scalability 05:56 CryptoKitties impact on Ethereum and beyond 07:32 Designing Flow to solve user and dev pain points 08:39 Built-in scaling via separation of concerns 10:11 Why account abstraction is critical for Web3 11:15 Moving beyond seed phrases with key management 12:21 Building Cadence: a new smart contract language 14:24 How resource-oriented programming changes security 15:55 Ethereum token ownership vs Flow model explained 17:25 From CryptoKitties to NBA Top Shot to Flow 19:10 Lessons from custodial wallets and Dapper 20:36 Account abstraction enabling hybrid custody 24:05 Gaming UX with account linking and shared custody 25:33 Multi-brand learnings: Top Shot, UFC, NFL All Day 26:37 Missed opportunities for dynamic NFTs and gameplay 28:01 Why mainstream users still need familiar metaphors 29:24 On-chain composable farming game demo 30:48 Open systems and NFT interoperability vision 32:21 Real-time games vs on-chain strategy experiences 33:50 Inspiration from Dark Forest and opcraft 35:18 Designing infrastructure for the next generation 36:18 Zones of sovereignty and social consensus 38:04 Liveness vs safety in blockchain failures 40:20 Bridges, eigenlayer, and shared consensus limits 42:03 Flow’s view on bridging and LayerZero architecture 44:01 Multi-bridge security models and message integrity 45:29 On-chain media storage: tradeoffs and new tooling 48:36 User-side pinning, IPFS enhancements, and ideas 49:10 What decentralization really means to Dieter 50:35 Backward and forward-looking guarantees 52:29 Why participation and censorship resistance matter 53:05 Critique of MEV culture and Flow’s design to prevent it 54:14 Closing thoughts and thank you to Dieter Shirley _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇨🇦 *Pragma Waterloo* The now third edition of Pragma kicked off with a curated series of high-quality talks that sparked thought and discussion among attendees as they were storming into the Auditorium of the CIGI Building. Pragma Waterloo 2023 was an opportunity discuss the future of web3 and reflect on the past. Watch the full Pragma Waterloo 2023 playlist here: https://youtube.com/playlist?list=PLXzKMXK2aHh7i8oFx5vCB9qTdadQqAjF0&si=NS2W71SteTbEs4T8 ETHGlobal's Pragma series takes place in cities around the world, and is designed to be a different kind of event. Pragma is a one-stage conference with founders-only on stage, bringing together a small group of curated attendees and speakers to discuss the future of web3 and reflect on the past. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ *Follow Dieter Shirley* X: https://x.com/dete73 ✅ *Follow Flow* X: https://x.com/flow_blockchain ✅ *Follow the Kartik Talwar* X: https://x.com/therealkartik Warpcast: https://warpcast.com/kartik ✅ *Follow ETHGlobal* X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Transcript

foreign [Music] well welcome back to the second half of pragma we got the next two and a half hour jam packed with a lot of things that have to do with how the rest of the ecosystem and infrastructure is evolving so next up is our fireside chat with Dieter you've all kind of seen a lot of things around ethereum here we've seen a lot of things around what we need to do to help more people get into this space scaling is a massive topic but it's not just about ethereum being the center of all these things there's a lot of other attempts there's a lot of other ways to think about designing infrastructure that scales and a big part of somebody that's pushing this forward is Dapper labs I want to bring on Teeter here to kind of explore how we should think about infrastructure that actually helps millions of people come in especially as we want more consumer more social applications want to explore how some of these decisions were made for the flow blockchain and how do we think about a world where different blockchains are compatible with each other and are actually adjacent and complementary so to do all of that I want to bring on Dieter who's the co-founder and CTU of dapper Labs please welcome Dieter on stage good afternoon hello hello thank you for having me carton I am excited to have a crypto kitties diaper Labs reunion here yeah it was great to see the team members uh up here it's nice to see the folks of uh you know uh you know it's great when folks stay but I mean sometimes it's even more gratifying when you see your your friends and team members go off and do uh amazing things on their own so it's uh it's great to see you have some of them here today it's it's I think it's just this community that really wants to kind of come in and give back and honestly just tell others about all the cool things that they can do I think that's to me the the key thing that actually makes this ecosystem really work really well it's it's not just uh in a way just taking and not giving it's the fact that because there's only a few of us they want to hang out with each other more and when you see opportunities like these more and more in different parts of the world everybody does come in and interact with each other and once everybody else succeed um my kind of first question to you is I know we've heard a version of this question uh from uh some speakers in the past already but how well tell us about your background and how did actually adapter Labs came to be oh that could there's a long version and a short version of that I'll try and uh not use the longest version of that um so I joined a company called Axiom Zen in 20 13. um and everyone was uh sort of Gaga over Bitcoin at that point in time and uh and so the team there sort of um you know we talked a lot about Bitcoin we engaged in some some Bitcoin hackathons um and uh it was really interesting but it didn't seem sort of right uh for productizing at that time so when 2017 came along and uh and and we sort of saw what was happening in ethereum um we decided that we really wanted to build something interesting in that space um and so we we actually had like a month-long ideation like process right where a bunch of us would you know both you know synchronously getting together in meeting rooms but also asynchronously just like exchanging messages on slack we uh came up with just like I don't know like over a dozen ideas of cool applications we could build on blockchain but one of the weirdest was uh my good friend Max said let's put cats on the blockchain um and that seemed that seemed insane to me and so I I literally said to him like what what do you mean he's like I don't know but I'm pretty sure we can figure it out um and so um that was you know if that ultimately became cryptokitties and so we built cryptokitties um and uh you know we we did a bunch of testing of course you know we we launched it here at uh at East Waterloo um but like what's funny about cryptokitties is that we never knew we never expected any kind of success um and you know I I actually was just talking to some students uh at lunchtime and and they said like what advice do you have for us right literally meaning students and I'm like as long as you do stuff with the intent of learning um you'll never fail because it didn't matter whether cryptokitty succeeded or failed we would have learned so much from how how ethereum works but also how people think about this technology and what a appeals to them or doesn't appeal to them about this technology and of course building cryptokitties did teach us a lot um you know I think it taught us that that people want to engage with digital assets that they truly own um rather than you know existing on somebody else's uh infrastructure they found things like metamask and uh onboarding into crypto like completely nonsensical and confusing right we had millions of people like if we had decent conversion rates right and it and and our our onboarding funnel didn't include installing a Chrome extension and going through kyc with coinbase um we would have had a lot more users but of course even with a number of users we had which was probably a hundred thousand ish we went it ended up overwhelming the ethereum network and so um you know I don't think it was just it was a surprise to anyone that that ethereum had scaling issues but like it was you know it really put a an asterisk on that and so um both us and and I think the whole Community really uh focused on scaling at that point um our our answer similar to ilia's answer I just saw Ilia sitting there waiting for his turn was that we needed to build something fundamentally different we built something that we call Flow and it is a blockchain and I I dare say it's the only blockchain Built by somebody who built applications before they built blockchains and so we were trying to solve the problem of us as dap developers in terms of what was the platform that we want to build on um and so every you know decision point in deciding exactly how our blockchain should be structured was thought of through that lens both as like what do we want as developers but what do we want for our users who are coming to this technology perhaps for the first time I think that's great and actually one thing I want to highlight here is that um you're kind of just understating it but even in 2019 the most popular second best app on terms of usage was like a D5 up compound with like 8 000 users so in 2018 January getting 100 000 people to try it out is no small thing because that was a pretty hefty double digits percentage of all of crypto audience and uh and it was in a way a good moment because uh for people in the audience uh that also kind of led to the standardization of ERC 721 which you're one of the co-authors of this is not what you know as nfts you kind of saw what the limitations are of ethereum everybody understood what gases set up we didn't know we educate people with gases and how do you price transactions uh whether they wanted to know or not um and we kind of figured out what limitations are if we want blockchains to be the de facto infrastructure backend if everything want to do and I'm going to move everything on chain five years ago was crazy four years ago it was slightly less crazy and we're kind of asymptotically getting to a point where this it's actually in a way interchangeable from any other database or any infrastructure and uh I want to kind of set the stage for like how we want to stretch the rest of the conversation which is effectively cryptokitty's launched we saw all the Articles around we have clogged the ethereum pipes which was a very interesting analogy but it made sense and that sort of sparked that this clearly isn't working so what were the things that you really needed to address and walk us through the inception for the features you wanted to guarantee with flow yeah it's I mean when we started it we we were mostly just trying to solve that uh that scalability problem right and and the solution we ended up coming up with in in 2018 actually is is not that dissimilar from a you know a blockchain with sort of a uh an intrinsic L2 built into it right so we have a separation between the nodes that are um that are forming consensus in the nodes that are doing the state transition um and so you can think of it a little bit like optimism or arbitrim where there's like this one chain that's building the blocks and and doing the data availability and then there's another set of nodes that don't have to engage in consensus that but they have to they their job is to do the state transition from hey here's the input what's the output um and by doing this um you know as we all know from from optimism and arbitrum by doing this we end up with a system that has much better scaling properties where we can have thousands of nodes participating in the in the consensus but the the fact that those nodes are are relatively slow and couldn't possibly have a giant State space couldn't possibly you know process tens of thousands or hundreds of thousands of transactions in a second isn't a problem because they're just doing data availability and consensus and then so long as we have this deterministic state transition function then we can have a much smaller set of nodes actually executing that without degrading Security in any way shape or form um so so that was pretty exciting in and of itself to sort of have that Insight but as we were building it like there were a bunch of other things that we really wanted to address as well so um you know one of the things that we talk a lot about in ethereum World these days is account abstraction um you know vitalik was mentioning that this morning and that's something that you know we sort of also wanted to build in the flow in the early days because you know it really is Bonkers that we're supposed to have this one key for one account and we're supposed to hold on to to that indefinitely and in a weird way it's almost a regression from Bitcoin so you know like even Bitcoin like the sort of the use case I think that Satoshi imagined for it was is that yeah we would get tokens coming in on a particular address but every time we spent them we would use a new address right and and and many Bitcoin clients sort of encourage that moving um moving to New uh new addresses and new keys as as you sort of naturally transition along but in like an account based model like ethereum or flow um having that one key associated with all of your assets indefinitely is is really quite fraught um and so um so I I mean I think the biggest thing that that we need to see in web 3 is not just the infrastructure right so you know this has been built on Flow for a while now is it's obviously come to ethereum uh but we need the usability right like we need apps to uh to appreciate this and support it we need the wallets to understand it and support it we need the users to understand stand that you know actually we don't want to live in a world where you have 12 magic words that are that are copied off of your device into a safe deposit box but actually each of your devices should be generating its own key that never leaves that device and then your account has multiple Keys associated with it and when one of your devices gets lost or you add a new device you you use key cycling to add devices to that thing instead of copying this like most critical piece of information from one device to another but of course A lot of it was not just a you can like you can break this down into okay we gotta come up with some better patterns which is a kind of abstraction making it One-Stop shop for them to get access to crypto initially instead of the two step and mass kyc flow but also a lot of these were not just immediately and default supported on the way we did smart contracts so you kind of talked about how you set up different sort of validator systems but what kind of led to the creation of a brand new programming language should now solve a lot of this yeah one of the one of the scariest steps we took in the development of flow was to come up with a new smart contract programming language called Cadence and um it was funny we were talking to one of our investors and we're like man you know we really don't like evm it seems like solidity is is really quite a terrible language but it's you know like the reality is is that EDM was designed when people had no idea what blockchains were going to be used for um and so you know the first draft of anything is never going to be perfect and we just we could do so much better and it felt like people going to wasm it was going the wrong direction it was it was adopting a programming model that was even less um uh appropriate for smart contracts right like wasm is designed to run in your web browser has a completely different security model than a smart contract environment and it has to deal with things like network access and file access and memory access all of which you know aren't really a thing in blockchains um and so one of our investors like well you should just write your own language I was like well you can't just write your own language he's like you know I mean it's it's it's it might be worth it right like you should just think about it and so I grabbed one of our Engineers um who actually we hired to do iOS development originally um at Axiom Zen um but he happened to have a master's degree in programming languages and I was like hey do you want to build a programming language he's like well yes that's my live stream um and I said okay well let's build a better Pro Smart contract programming language and so he went off and he did a bunch of amazing research um or he uncovered a bunch of amazing research that Carnegie Mellon and some others had done around using linear types in the context of smart contracts and I'll admit I didn't really get it at first um and and so this guy Bastion it kept coming to me and he's like he'd show me these academic papers and I'd read them and I'd be like brother like I've written in a bunch of smart contracts none of this makes sense to me and then finally one day it like clicked and I was like holy crap like this just this just turns our security model on his head um and you know the essence of what Cadence does this resource oriented programming model is it says look if you have an asset of of value a data structure that represents value let's tell the programming language that this data structure is special is protected we call that data structure a resource and that data structure is I mean very similar to object-oriented programming right where it owns all of its internal data its internal data and then exposes functions that let you interact with it but because that data structure is a understood by the language to represent value you can move that around right one of the one of the things that blew my mind when I started programming ethereum was when I realized that your erc20s weren't in your account right Global state yeah like most people don't know this so maybe we should we should shock a few people here yeah yeah there we go so when you think about erc20 or even erc721 right like you have these tokens that are defined by you know programmers they've uploaded these smart contracts and you think of those assets as being in your account right like my cryptokitties are in my account except they're not my cryptokitties are actually in the cryptokitty smart contract and what the crypto Kitty smart contract is is a list of all the kitties and then with it has owners next to it right the name of of who owns that thing and what this means and and this will make more you know just to make it more concrete what this means is that if you want to know what nfts you own you have to go to every single smart contract where you could own nfts and ask it do I own any nfts right um and whereas this resource model because the programming language is like protecting the sanctity of these assets you can store that in your account so on my flow account if I want to see what top shots I own I go into my account and I look in my account and I see all of them right but it doesn't matter how many different nfts are defined or fungible tokens are defined all of the things that I own are in my account um and of course this is this is amazing because it lets you do things like you know objects owning objects and and and locking objects behind um saves a lot of RPC calls too it it's it potentially saves a ton of RPC calls and it makes certain kinds of patterns interestingly enough though like because so many people are used to this Ledger model it actually screws up people coming from ethereum because they're like oh I've built this nft project I need to know who is on the transplants all of the all of the nfts and now it's the opposite problem right if I want to know the nfc's I own I just go to my account they're all right there on Flow if I want to know who owns all of the top shots I have to go to everybody's account and find the top shots so it's kind of a ironic switch around there oh that's kind of funny um but that's what I've unlocked effectively you having a better way to think about making things more ready for the individual consumer because otherwise this is a non-linear problem to scale as the more users you get the tougher it gets to kind of make the same experience consistent um and I think you kind of set a really interesting comment which is you were kind of one of the first companies who made a product in a consumer product first and then the blockchain came after and I'm kind of curious to understand what was that experience like so the first thing that sort of most people may know is NBA Top Shot tell us about sort of the motivation around having Topshop beat the flow be the language and the contract behind topshot and how did you kind of notice anyone from performance to the ease of kind of deploying that and getting millions of people to play with it yeah I mean the the Top Shot was like in a weird way topshot was the point right like we didn't we didn't build Top Shot to show off flow we built flow to power Top Shot um now of course right the whole point of our company of our every product that we ever wanted to build was to build on a truly public decentralized blockchain that anyone could access and anyone could extend um composability um is uh you know is something that was like incredibly important to us and like a a touch point and a word that we use all the time on our team um and uh and so but as soon as we realized that we could build Top Shot on top of flow we we realized it was also the best possible thing for flow because you know what what are you going to do on like who's going to come and build on a platform that doesn't have any users um now we did make a big mistake with topshot um or more particularly we made a big mistake with uh how we we built Dapper wallet um so in order to really appeal to a non-crypto user base we built Dapper wallet as a custodial wallet so very similar to how like coinbase holds your tokens on your behalf Dapper sort of holds your your top your top shots your nfts on your behalf um now it's not exactly like coinbase because everybody has their own account right so um Dapper holds your keys they don't hold your assets I don't know if that makes sense but everybody has their own account and so you can go on chain and you can see who has you know which accounts have all the assets and as they move around you can see that all happen on chain and and our vision was hey we can start this way and then as time goes on and people can move to self-custody but that moved to self-custody like every time we we talk to the regulators and we talk to anybody having anything to do with financial regulations they were like they just they need a thick black line between you're doing a Money Services business where you're you know you're taking credit cards you're letting people like move money in and out with ACH um and you know like free trade where anybody can do whatever they want and it just became increasingly apparent to us that this idea that we could we could have a gradual entry from you know like this you know those those cool pools where it's almost like a beach you could go in right like yeah you just start it's graduate eventually you get to the deep end and The Regulators more or less told us that that's not going to happen um and so we're right now in the middle of um of deprecating Dapper wallet right so it's it's not going away for anyone who wants to keep using it but we're encouraging application developers now to uh to use account abstraction and when people come and sign up for applications then you know maybe they just give their email address and the application creates an account for them but by using account abstraction we can when the user is ready to take ownership of that account they can create a new account and using account abstraction they can take control of the account that the application developer created for them so it really does give the best of both worlds and and I think it's a it's a I think it's a really powerful technique that we show developers use way better than you having to keep track of your private key and making sure that you get to either rotate or it doesn't get stolen that's actually super interesting what um in this model I guess I'm curious are we using a con abstraction as just the general concept of making it easy we'll be able to use in a way non-eoa accounts or is it the same definition as what abstraction would look like on ethereum 2 in terms of standards so I mean the short version of account abstraction on ethereum is is that it's letting a smart contract control access to your account um and so that by itself is that's there's no functionality there right like that's a means to an end that's not the the end itself um but the the two critical things that you can do with account abstraction one is that you can have multiple different Keys um and as I said having a keeper device is just a much better security posture than than copying your keys between devices but it also allows you to do things where the um where the code can decide access wants something other than a key um and and of course you know we had Benny up earlier talking about how account obstruction enables nfts to control access to an account and so we have very similar mechanism on Flow where at One account can control another account um you could do it through nfts but it doesn't have to be through an nft um and so that's that's more or less what happens here is is that you go and you sign up for an account with you know let's say cryptolamus and you're you don't have a wallet so cryptolamas instead of saying hey you need to go download this other software in order to use our our product they say great just create a you know just log in with your email address or use you know Twitter login and we'll create an account for you but crypto llamas can actually create an on-chain account and you know and they're welcome to sell you nfts for credit cards and whatnot right so long as they're just selling a product for money when we don't end up in this weird regulatory uh Middle Ground um and then when that person is like hey I want to go to a Marketplace and I want to trade with other users with my crypto llamas the the crypto llama's team says great now you go get a wallet right now that you understand the value of true ownership right go get a wallet and then we'll link those two accounts your wallet will create an account that you have full sovereignty over you can do whatever you want with that you can put any fungible tokens in there you can do all your D5 stuff in there but if you link that account to your crypto llamas account now when you go to your Market okay say floaty which is one of the the nft marketplaces on Flow you'll be able to see all of your crypto llamas as though they were in your main account even though they've never left this account that that you started with um and we call it hybrid custody or shared custody because there's a lot of cases where you don't necessarily want to take you don't want to kick the application developer out of control of that thing especially when you start thinking about gaming right so um the the use cases in Mobile are really cool because you can imagine a world where you go to the App Store you download an app it creates a key for you it creates an account for you you're using in-app purchase to buy all your stuff in your in your game and whenever you're playing the game because the game has the key it doesn't need to constantly pop up your wallet and ask you for permission but then you go and you get your mobile wallet you can link those accounts you can trade all that stuff anything that you're worried like if you don't trust the game developer perhaps you can pull some stuff out of that account but you don't have to and you can go and trade on any Marketplace you would use your wallet as as um as normal right approving those those transactions but then when you went back in your game anything you bought would just automatically be there and anything you hadn't sold would would still be there you don't have to move things in and out and so it creates just a really smooth user experience yeah in a way it's super powerful to be able to actually compartmentalize different ways to access the same resources which you don't really understand if you're on other blockchains or just even with regular money so I this is I think it's a really good phrasing so thanks for kind of explaining that like even I'm like oh this is yeah this is cool like I didn't know this before um kind of on that same theme I think the really cool thing here is that it's not just Top Shot like obviously that was one of the reasons to kind of you know attest this in prod but you have UFC strike NFL all day and a couple other things that are in the works and collectively you've kind of brought this to millions of people who have transacted I would assume close to 100 million if not more what kind of has been the learnings from all those incredible hits and how do you think about the future of Gaming on blockchains moving forward yeah I mean one of the I'll start with the last part first um one of the things that and and we did this ourselves right so I don't I don't want anybody to feel like we're um you know disappointed in the whole industry because it was it it happened naturally to us but I kind of feel like we were aggressed from cryptokitties right like cryptokitties did something right now maybe you don't think the breeding game in crypto kitties is that fun or you know after that first year when we unlocked all of the various genetic uh mutations um that you know it sort of hit its end date um and that's fine but I but I'm like I'm really disappointed that that no one including us right yeah NBA Top Shot there is no functionality built into Top Shot moments right so people can build stuff on top of topshot and we've seen some amazing stuff built where people are doing what I would call sort of off-chain composability right where they're um where they're taking you know oh if you own you know a certain number of of uh of of Jeff's moments I don't know assume Jets is a team I I have no idea if you own a certain number of jets moments then you can join this Jets Discord and you know that it's only going to be true fans that's amazing right like what a what a great way to leverage that thing but wouldn't it be even more interesting if we were doing stuff on chain where maybe um you know as the as the player you know uh as the as the player you know progressed through their career maybe we could even update those nfts to a certain extent or maybe those nfts could um I mean we actually have the stats on chain and so we could do more um but also other people could do more of you know creating um you know I think there's some teams creating like Fantasy games and whatnot that are using that on-chain data which is really interesting but but I just think this idea of like nfts that update themselves right I think people typically call them Dynamic nfts um I feel like that's just something that like we're not tapping enough of and and it's kind of ironic right that the first sort of thing that anybody called an nft for the cryptokitties did that and and almost nobody else does it so is this like a creativity argument or a tech like we just don't have easy enough way of doing this thing or it's just expensive to kind of mass update all the contracts or is it pure like we need more creative people here to think about crazy for things they can do with with on-chain assets I think it's a little bit of both right it's um I think one thing it I think it's a third thing right so so I think there's a little bit of creativity but I also think it's just like and users can only absorb so much right like if you go to somebody um I I always think about this analogy like imagine if you went to somebody who had a Model T and you told them how great it was that your Tesla had a touch screen right like like they would not they would be like what do you need a touch screen for like even if they understood the assume they understand what a touch screen is for um you say oh well it controls the air conditioning like what's air conditioning right like oh it controls the wipers what are the wipers right like there's so many things that you know like until we know the until the users sort of experience the problem like presenting them with solution actually is just confusing um and so I think I think nfts that you own that you know that don't change are actually easier to understand people collect baseball cards they don't have to learn something new it's been going on for 100 years exactly but you know just to give you an example of of an idea that that we've been working on so one of the engineers and I actually built a prototype recently where we created this nft that represents a farm and then that can hold nfts that are fields and then the fields you can put fungible tokens in that are seeds like we started with strawberry seeds and then the strawberry seeds have metadata associated with them which is how long it takes for them to grow and how many strawberries they produce right and then the the strawberries come out they're also fungible tokens and then you need to have a farmer who goes and spends energy in the field to get the strawberries out and we were talking to a game designer a game design team about this and we're like hey wouldn't that be cool and they're like yeah this is pretty cool I like that idea like and imagine somebody else not your team somebody else could come along and create a blueberry smart contract and suddenly now your game has blueberries in it and and and what's interesting to me and again this is about how quickly it is for people to absorb stuff in that moment right we had just presented them with this idea that they could have this autonomous code managing farms in their game um and they wouldn't have to run the server but when I said that somebody else could do it their reaction wasn't oh that's super cool their reaction was yeah but our economy isn't balanced for blueberries right why would anyone want to grow a blueberry blueberries aren't input into any of our our recipes right and like I think most of the people in this room right if they've been in crypto for long enough they know that that's actually surface area for somebody else to build something rather than thinking of it as like oh this is a loose end um that that needs tying up and it actually reminds me a lot of ecology right like in in ecology when when there's waste right when there's waste in natural systems that's input for some other system and and when we're used to Building closed systems we always think about you know we want to minimize waste or we want to minimize outputs right whereas I think in open systems you want to maximize outputs because then they can become inputs for other things and that's a mindset change that I think people need to make I mean that is a incredible premise because we kind of see uh well in a sense of doing this on chain like to me the most impressive part of this is that effectively seems like this is where we want to be uh we kind of play games like Eve online or a handful of other big worlds like they are part of the shared World things age with the same things some of them even have constraints on this is how you can travel and it'll stay constant and obeys laws of universe but doing this thing on chain is almost infinite complexity over time how how do we think about managing that effectively and and efficiently like is is this a again is this now a coding and optimization problem or is this now hey let's just imagine this world but we kind of have a natural constraint on well looks like this Farm can never be more than two acres long or or wide or something and this is to compute that can manage this do we run into those types of issues in this world so I I think that there are there are likely to be sort of two like there's there you know we we often use the phrase real time in computer science to refer to things that happen quickly but like that phrase actually means like relative to the clock that we're all experience right and so um so I think slow real-time things like things that take place over over hours days weeks months I think it makes sense for those sorts of things to happen on chain and and I think that it can be done efficiently um and you could even imagine like a very large scale game that had you know things like weather and growing and things like that happening on a blockchain um I think that when you talk about shorter time scales though then that's a that that becomes a different problem um and I don't know if Liam's still here but I ran it you know Liam was who was one of the co-founders of Youth Global um and and I think probably best known for working on optimism um actually you know I the project of his that I think is coolest was the state Channel stuff that he did um and and I think State channels are like a really underappreciated solution out of this problem move a lot of it off chain manage to stay transition exactly actually interestingly that's a good point because if you uh if you looked at or others in the audience looked at opcraft they kind of ported Minecraft Primitives to optimism just so you can actually have almost the same interface and uh if you get to mix and match on chain and off chain that actually is possible looks like we finally got a what three native Farmville back in the early 2000s but but that's that's pretty amazing right because you effectively introduced more of a well compared to collecting cars or trading which has been essential around a lot of gaming on chain not just in your ecosystem but overall even in ethereum we've kind of introduced a more interactive World whether autonomous or not but effectively we're still in a way catching up to how games have been since late 90s because we've had player versus player autonomous players just players versus robots all these things happen and we're slowly moving towards just not being able to differentiate and I feel like that world is very soon like it's maybe a year away we're talking again and you can just play that game uh because somebody else is going to make it so uh that seems to me very very exciting well if they want to build it on Flow they should come talk to me because I will I will happily uh talk to them about design ideas and and we would uh I mean honestly I feel like this is one of those things where like if someone just built like I mean um Dark Forest right is a great example right like perfect did Dark Forest have an awesome UI no did Dark Force have an compelling premise and interesting technology under it absolutely right and and I feel like whether it's a farming game or some other kind of thing where like it naturally makes sense for it to be slow real time so that it can it can run on a blockchain we can create like some really really interesting games and there is you know not everybody wants to just go and shoot things in a first person shooter and and if you do that's great but like I love games where there's like a longer strategy to it um you know I used to play a game called diplomacy which would would take place over over a course of weeks when you played it on internet who's ever played Grand Theft Auto to complete the missions come on like and actually another perfect example Dark Forest of actually obeying the same laws of physics if you are attacking somebody you're following the same law of gravitation to send your shot from one star to another and and you really gotta wait 20 minutes sometimes to reach the other end of the screen because that's the mechanism but it is highly addictive and like a wonderful premise um well even if you're not choosing to build this on flow it still sets up a stage for us talking about what the next viewers look like on how we think about infrastructure in general um I think the kind of topic here is in a way kind of shared consensus and in Social consensus uh clearly flow exists near exists ethereum exists these are blockchains that are getting me people they're they're going to stay for a while and people have to but don't have to actually make a decision between one or the other we're going to be in a multi-stand world how do you think about what it means for people to interact with different blockchains in that world and what is kind of considered from your end kind of social consensus you know it was when we were designing flow what what came what kept coming up was that there are certain failure states where you can't expect the software to recover um but that's kind of okay because then the people will recover um and so in particular when we're talking about uh Byzantine fault tolerance systems you're sort of two failure modes right liveness and safety right and liveness liveness failure is when the blockchain stops making progress and a safety failure is when the blockchain finalizes an invalid State transition um I.E you know someone stole someone else's money without their signature or uh you know uh somebody you know minted uh money into their their own account against the rules of the smart contract and the blockchain um and what what I advocated early on in the team was is that liveness failures are actually much less dangerous because a safety failure somebody might not notice it right um if I steal your tokens it might take you a few days to notice but if I mint tokens into my account um people might never notice right because who's watching what what's going on in my account and if I uh whereas aliveness failure everyone notices that immediately like as soon as aliveness failure happens like everyone freaks out things down whereas you're talking about suddenly a lot a lot more blueberries yeah and so and so the the um and so thinking through this lens one of the reasons why aliveness failure is quote unquote safer is because it engages what I call the Social consensus layer right um and the best example of of social consensus is whenever we do a hard fork in ethereum or uh you know theoretically there are two blockchains at that point in time right and and except in one very notable case um back in 2016 um there have you know there only ends up being one at the you know after the the hard Fork but theoretically that other one can continue on and the reason why we end up on the new chain and not the old chain is because of social consensus it's there's nothing in the code that that solves that problem it's entirely us as people all agree oh you know we all know that the Network's upgraded now and that the old rules are the old rules and we want to follow the new rules so we're all going to we're all gonna pay attention to this blockchain and and I think that you know there's been a lot of there's a lot of fundamental problems when it comes to things like Bridges when when we start talking about eigenlayer um where this social consensus rather than being sort of a safety net it actually ends up almost being like um it's or rather it's a safety net that we can't count on um and in the term that italic uses which I really like is is zones of sovereignty and and basically if you have like if you just think about ethereum by itself just base layer ethereum or ethereum as it was in 2017. um if ethereum has some problem right we can reboot ethereum with that problem fixed and everyone knows to use the new the new version of it and and everything is hunky-dory um as soon as we start adding things on top of that right and that could be an L2 that could be something like usdc that has like actual like money in bank accounts somewhere else that can be a bridge that Bridges between blockchains that suddenly that social consensus it's it's a much more fraught scenario um you know imagine a scenario where like there was a hard folk of ethereum and tether decided that they were going to redeem tokens on one fork and and circle decided that they were our Center rather decided that they were going to redeem uh on the other one uh yeah a usdc on on the other Fork what would we do then what would the social consensus be I don't I don't know right um and you know when eigenlayer came along and said hey we can actually Leverage The the staking that people are doing on ethereum um and theoretically other blockchains as well um to to secure other systems um you know metallic responded with the blog post about like hey be careful right like you can kind of sort of Leverage our technical consensus but if you try and leverage our social consensus you could be very disappointed right um and and uh I can't remember if he used the example of optimism in his blog post but sriram the search of reply did yeah on um of of eigenlayer um basically you know was was pointing out that like if if you depend on like ethereum is not going to hard for it to save your project right like that's more or less what what's happening and and so I mean that's a tough problem because now there's no determinants the correct answer and it's not how computers work yeah in this situation and so we think about it so I mean one of the questions we're constantly asking ourselves with flow is like how can we connect better to ethereum right and we've we've explored everything from becoming like a full L2 right maybe building off the optimism stack you know all the way to you know just you know being maintaining our sovereignty and and using a bridge but that that bridging problem is hella hard um and um it either has to be its own zone of sovereignty the connecting those two zones or inevitably one of those two sides of the bridge is going to be beholden to the other right because in this case if it's like an OP stack equivalent answer then you're fully leveraging but if it's a kazike approved transfer then you are still in your own Zone but you are relying on both social and secure consensus on on ethereum so that's an interesting problem is that something that you would like to do or is this more of a it'll be nice to have but you don't have to in a way effectively make this the the case well I mean right now what I think the answer is something like layer zero where we don't depend on any sort of one bridge to try and solve the problem um I remember when I first saw the layer zero pitch I actually talked to the guys and they were they were telling it to me they're actually based in Vancouver I used to make over yeah um so so they stopped by the office and we were talking about layer zero and and when I when I understood that they were basically saying hey it's they don't like it when I talk about it this way so I apologize if no one else I don't don't listen to the way I talk about but this is how I think about it um it's a two of two multi-sig right and and the one multi-sig is the Oracle I can imagine why they don't like it yeah yeah what one one side of that is the Oracle right the Oracle has to say that this thing happened on ethereum but the relayer also has to say that thing happened on ethereum right and if they don't both agree then that the the action on the target chain doesn't happen um and and that's really really powerful because it means that if you break the Oracle you bring break nothing right you you have you can go to a lot of trouble to try and break an Oracle and then you you basically have no value unless you can also break the relayer and vice versa if you break a relayer it doesn't do you any good unless you also break the Oracle And if those two things are sufficiently independent it dramatically increases the security posture now interestingly enough it actually has a it also increases your liveness uh issues because if either the relayer or the Oracle go down slow down yeah but but that idea of saying hey let's not build one Bridge let's let's Multiplex messaging um and you know you could even extend that right and and the reason I like to think of it is a two of two multisigans because you can extend that idea to say look there are five different ways to find out what's happening on that other chain I'm only going to do something when I see three of five or four of five right or even five of five right you can have that liveness versus safety trade-off where you're like well look if two of these things go down I still want to be able to get the message across right um or you could say look I want I this is so secure that I it's better that we don't do anything unless all five agree um and I think extending that idea is is really powerful and so I've been encouraging teams to um to try not to depend on any one Bridge um and to uh and to look at using multiple Bridges and certainly we've been working with you know so sellers already live uh going between uh going to flow and we've been working with layer zero and and axlr and making sure that there's lots of options there oh that's great so we are in fact if we make it easy for people to go from one change to another end talk with more consumer apps uh one last question on on this theme of kind of better infrastructure we kind of talked about better programming languages better consensus better account management better access control um as somebody who's primarily dealing with a lot of images media files audio video uh what kind of annoying still on on the storage side for being on chain and what what can we do better on that um yeah I mean I think I think what's in the the thing that I find frustrating is that people think there's only two answers to this question and I think the correct answer is actually a third thing right so what we did with crypto kitties what we did with topshot is the easy thing right which is that we just store stuff in uh in Google you know gcp storage buckets um and uh everybody knows how that works right um it's easy to get cloudflare to to uh to put that into their CDN so that it's fast access for everybody who's using it all of the web devs know how to interact with that it's great problem with that of course is that it's centralize the other thing that everyone knows how to do is hey just put the data on chain right um could make sense in the case of like an SVG kind of thing blockchains are not databases but blockchains are not actually databases um and and what drives me crazy is is that you know like flow has flow is designed to have a much larger State space and so State Storage on flow is actually a little cheaper actually quite a bit cheaper than in other blockchains um and unfortunately I I feel like some people are maybe abusing that a little bit and they're like putting full pngs and jpegs in the blockchain and and I think there's got to be a middle ground where where we figure out how to leverage ipfs and filecoin and AR weave to um make sure that that data is available but like it doesn't actually need to be Unchained because a smart contract never needs to look at it right we put like what player is associated with an NBA Top Shot on chain because that's interesting a smart contract might care what player or what Play Type um is associated with it but no smart contract is ever going to go and analyze the bytes of the MPEG file to figure out what the video file looks like right um and so I think that storing that data in a decentralized way is the correct thing to do but what we're missing is tools for users for you know Dows for people like the internet archive to easily go and and mirror that data right so there's no reason why there shouldn't be a tool that you go to your your you know onto your phone onto your laptop and you double click that tool and it goes and it looks at every one of your accounts and it figures out all the ipfs hashes that are referenced by the assets that you own and make sure that there's a backup of those things that would be so easy and easy easiest thing in the world there's a good admin hack for this weekend provide that that's a good act for this weekend for people yeah there we go there we go um there's no reason why people like the internet archive shouldn't be like running ipfs pinning Services there's um and and of course like anytime there's a there's a Dao or a user group like storage is so cheap right and so like could we use filecoin of course could we use AR weave of course but like we don't even need to necessarily go to that level right once we've made it available with ipfs and once we've made it easy for users to point at whether it's an account or a project or you know an ecosystem and say I want that data then I think that that data will be duplicated uh all over the place and you could even imagine that being built into clients of the blockchain one of the things that I've toyed with the ideas I've toyed with and talked to the team about is the idea of like what if we built that into our uh our our API when you query the blockchain if there is an ipfs hash in the response have the the the node actually resolve that ipfs data and send it back so that as adapt developer I just have to query that's just a single interface I get all of the data it just that data doesn't happen to be literally in the execution state it just is easy to get to I mean that's a very simple enhancement that just simplifies a bunch of requests and and keeping data hot that's cool um well my last question to you is something I've asked all the other speakers too but what does decentralized mean to you and why do you think is important wow that's a that's a loaded question um that's a question I spent how much time do we have um because that's a question I guess three minutes three minutes all right piece of cake um we literally spent hours talking about this when we were starting to build flow because I don't know if you all remember but in 2018 there was this real mindset especially among the investors that there was there was such a thing as um good enough decentralization um and the you know everyone all the investors would talk to vitalik and vitalik would tell them look a truly decentralized system it needs to have all these participants and therefore the throughput of that system is going to be limited by sort of not the weakest of the participants but like sort of like the median participant in that Network and so if your system has high throughput then you're rejecting people from participating in that Network and that's not good and of course investors don't like that answer and so they started telling themselves well maybe there's such a thing as like decentralized enough right we don't need to be you know government level security we need corporate level security and and so as a team when we were designing flow we're like well what would that even mean right what would decentralized enough even mean and so we actually dug into why decentralization matters and and we came up with sort of four axes on why decentralization matters and I would argue that none of those four that they they are worth uh diluting your system for right so so one Axis or you know there's two angles of this but it's like basically security and and and and and and certainty guarantees right and there's forward-looking and backward looking so back we're looking certainty what that means is that what happened happened right like and that's one of the great things about blockchain is is that no one can tell you that you know such and such happen on ethereum a year ago when it didn't actually happen like that is that is impossible to do provided that you're willing to actually go back and and do the math to make sure that the the hashes are correct and so that's pretty remarkable right like your bank can't guarantee you that you're like your bank could give you like they're audited and et cetera et cetera but like the reality is is that there's not in the same level of robustness and yet this is an open system that's amazing right the forward-looking version of that is just like guarantees that what works today will continue to work tomorrow right um and you know obviously you know the the number one example we can think of that today is the whole Reddit API thing right where the thing that works today isn't going to work tomorrow and completely this is destroying a bunch of people's businesses a bunch of users the ability to interact with this platform um and one of the neat things about blockchains is that that you know like they do change a little bit over time but like that's really incredible the other sort of aspect or you know I guess is a four by four and maybe I'm becoming a consultant now um is is the idea of participation and and I think that takes two angles and one is like can I be a part of operating this thing and you could argue that it doesn't matter right like if you can trust that the thing is happening is doing you know you're going to have to trust that some other server is doing the correct thing but like I think it's meaningful to be able to run a node and actually participate in the network that holds your stuff um and then of course the other side is censorship resistance and like can I be certain that my stuff is getting Equitable access to the blockchain as other people's stuff and that last one actually is an area where I feel like I feel like the folks in in ethereum and I assume most of you are in the ethereum community I I feel like you guys could do better um because Mev is almost treated as like it's just a thing that has to happen and and like rather than a thing that we can prevent and and I feel like we could do better on that one it is a privilege for people to actually in a way take advantage of any metractical value yeah I know you're right that's a it's a really good phrasing it seems like MAV is not possible well so Mev is possible on Flow but um it's a it's a much more complicated thing because we have um well the block time would actually make it slightly harder too I assume well you can't there is no single actor in the network that knows all of the transactions that are going to be in a block at the time that the block is formed right so it's it's very similar to proposer Builder separation with the exception that there's actually multiple proposers per block and the the order in which those those proposals are executed is unknown ahead of time and so you you um it's much more difficult to execute uh certain kinds of a sandwich attacks um yeah I realize and I caught myself going Technical and I promise this won't be technical so we'll end this here please thank Dieter for an amazing chat and we'll move on with the next sauce everyone

Automatic transcript — names and jargon may be misspelled.