a16z Podcast - a16z Podcast: Five Open Problems Toward Building a Blockchain Computer

Episode Date: May 13, 2019

Do you sometimes wish you had been born in a different decade so you could have worked on the fundamental building blocks of modern computing? How fun, challenging, and fulfilling would it have been t...o work on semiconductors in the 1950s or Unix in the 1960s (both at Bell Labs) or personal computers at the Homebrew Computer Club in the 1970s or on the Internet browser at the University of Illinois at Urbana-Champaign (and later Mountain View, CA) in the 1990s? Good news: it’s not too late. There’s a new computing platform being built today by a vibrant and rapidly growing cryptocurrency community. You might have noticed some of your coworkers and friends leaving big stable tech companies to join crypto startups. In this episode, which originally appeared on YouTube, a16z crypto partner Ali Yahya (@ali01) talks with Frank Chen (@withfries2) about five challenging problems the community is trying to solve right now to enable a new computing platform and a new set of killer apps: *Scaling decentralized computing *Scaling decentralized storage *Scaling decentralized networks *Establishing trusted identities and reputation *Establishing trusted governance models If you’re a software engineer, product manager, UX designer, investor, or tech enthusiast who thrives on the particular challenges of building a new computing platform, this is the perfect time to join the crypto community. The views expressed here are those of the individual AH Capital Management, L.L.C. (“a16z”) personnel quoted and are not the views of a16z or its affiliates. Certain information contained in here has been obtained from third-party sources, including from portfolio companies of funds managed by a16z. While taken from sources believed to be reliable, a16z has not independently verified such information and makes no representations about the enduring accuracy of the information or its appropriateness for a given situation. This content is provided for informational purposes only, and should not be relied upon as legal, business, investment, or tax advice. You should consult your own advisers as to those matters. References to any securities or digital assets are for illustrative purposes only, and do not constitute an investment recommendation or offer to provide investment advisory services. Furthermore, this content is not directed at nor intended for use by any investors or prospective investors, and may not under any circumstances be relied upon when making a decision to invest in any fund managed by a16z. (An offering to invest in an a16z fund will be made only by the private placement memorandum, subscription agreement, and other relevant documentation of any such fund and should be read in their entirety.) Any investments or portfolio companies mentioned, referred to, or described are not representative of all investments in vehicles managed by a16z, and there can be no assurance that the investments will be profitable or that other investments made in the future will have similar characteristics or results. A list of investments made by funds managed by Andreessen Horowitz (excluding investments and certain publicly traded cryptocurrencies/ digital assets for which the issuer has not provided permission for a16z to disclose publicly) is available at https://a16z.com/investments/. Charts and graphs provided within are for informational purposes solely and should not be relied upon when making any investment decision. Past performance is not indicative of future results. The content speaks only as of the date indicated. Any projections, estimates, forecasts, targets, prospects, and/or opinions expressed in these materials are subject to change without notice and may differ or be contrary to opinions expressed by others. Please see https://a16z.com/disclosures for additional important information.

Transcript
Discussion (0)
Starting point is 00:00:00 The content here is for informational purposes only, should not be taken as legal business tax or investment advice or be used to evaluate any investment or security and is not directed at any investors or potential investors in any A16Z fund. For more details, please see A16Z.com slash disclosures. Hi, welcome to the A16Z podcast. This is Frank Chen. Today's episode is called Five Open Problems for the blockchain computer. It originally aired as a YouTube video, and you can watch all of our YouTube videos at YouTube.com slash A16Z videos. Well, welcome to the A16Z YouTube channel.
Starting point is 00:00:38 Today, I'm here with Ali Yahya, our deal partner in the A16Z crypto team, and we're going to have a fun conversation. So here's what we're going to do. I'm going to pretend, Ali, to be a Google software engineer or an Apple software engineer, right? So I'm somebody who knows how to write software, has been doing it for a while. and then all of a sudden I saw my friends start to peel off and go to crypto startups. And I'm looking around going, but what's happening? Google's a great place or Apple's a great place.
Starting point is 00:01:07 Why are people leaving to go to crypto startups? And maybe you can help me understand like what's causing all these smart, talented people to head into crypto land. I love it. Fantastic. So maybe let's just start with the world in which we live today, which is, you know, I use my iPhone or my Android phone. I happen to use a Google phone, the pixel, I use Google Photos, I use Gmail, my carriers, T-Mobile. It's sort of a centralized world, and it works pretty well, right? Like, it's pretty reliable, and Google gets all my photos, and my mail arrives when I want it.
Starting point is 00:01:42 And so that's not a bad world. Is crypto really trying to overturn that world? That world does work fine, but it's not the frontier. And so what I would say is the reason that crypto is so exciting is because it offers a fundamentally new paradigm for computation that has features that are completely novel and different from the features that enable applications like social media as it exists today, like sharing photos, like all of sort of the centralized services that we know and love today. And so I think with every successive wave of computation that we've seen throughout the history of computing, normally, The new paradigm tends to suck at first, and tends to be pretty bad at most things that the old paradigm is very good at. But it happens to shine in one or two particular ways that enable new applications that previously were just not possible to build. And so with, I mean, I think one of the clearest examples is just the example of mobile phones,
Starting point is 00:02:41 enabling applications like Uber or applications like Instagram by virtue of having a camera and a GPS bolted onto the phone that enables. those kinds of behaviors that with a personal computer you couldn't have possibly could it have possibly built. Your PC didn't know where you were necessarily so it couldn't enable lift. Exactly, yeah.
Starting point is 00:03:01 And it would have been also just deeply impractical for one to pull out, one's laptop and try to call a lift. And so with crypto, I think the key dimension along which these decentralized computers that people are building in the world
Starting point is 00:03:17 of crypto shine is that of trust. They provide this new angle that previous computers didn't have because previous computers are owned and operated by individuals or by single entities like companies. And so you have to trust that individual, you have to trust that company to actually run the software that they're claiming that they're running and to actually do what they claim they will do with your data and basically with the entire interaction between you and them. And so we trust Google with our photos, we trust Google with our email, we trust Google, with just about everything that entails the kinds of interactions that we have with Google.
Starting point is 00:04:00 This new paradigm of computation is such that you now have a computational fabric that is not owned and operated by any one person. This is the whole point of decentralization. When people talk about decentralization in the world of crypto, they mean decentralization of human control. not decentralization of computing in a geographic sense. It's not decentralization in any other way that you may think. The key thing about crypto is decentralization of human power and human control over systems and figuring out clever ways to build a system such that it is self-policing and such that its security and its trust emerges bottom up from its participants and from individuals
Starting point is 00:04:46 as opposed to top down from some trusted organization at the top that kind of enforces the rules. Got it. So instead of trusting Google or Facebook or Apple, I can entrust the collective of people who've contributed their computing, their storage, power, et cetera, et cetera, to deliver the service that I'm consuming. And that's the big innovation. And so the, well, why don't we go through the implications of that by sort of talking through, well, what will we need to rebuild in crypto land, starting with compute, so that all of the applications that run on top of this distributed computer sort of will have the power that you're describing. So let's start with distributed compute. What do we need? So I guess maybe to set the stage, if we think of compute today, we have computers that can perform certain much. transactions per second. We have Visa, which can clear so many financial transactions
Starting point is 00:05:44 per second. And then we compare those things with things like, well, how many Bitcoin transactions can clear? How many Ethereum smart contracts can clear? So why don't we talk about how do we get distributed compute to really sing in Cryptoland? Absolutely. So I think, yeah, so much, so much of the attention in crypto tends to be on this metric of transactions per second. And I think we would argue that that's the wrong, I mean, is it not even the right framing because we're not talking about just a ledger that processes payments. We're talking about a computer. We're talking about a decentralized fabric for general computation. So the right metric is not really transactions per second, it's really instructions per second. How many instructions
Starting point is 00:06:25 of some computation can you process in any given period of time? And that's kind of what people know as as throughput. And so that's one of the metrics for scalability that matter when it comes to compute. The other one is the latency to finality. It's like, how do we know that the computation was done and that it can no longer be reverted? That it can no longer, that its output was final
Starting point is 00:06:48 and that nothing can happen that could reverse it and have it be something different. You can trust that outcome is settled. So that's latency to finality is how much time do you have to wait before that happens. And people talk all the time about how
Starting point is 00:07:03 Bitcoin has terrible latency to finality. You have wait 60 minutes before you can be reasonably sure that your payment is final. Yeah. So that's another axis. And then the final one when we talk about scalability of computation is what is the cost per instruction? How much do I have to pay for that transaction? How much do I have to pay for just an arbitrary computation on Ethereum or on some of the
Starting point is 00:07:27 more general platforms for computation? And the reason obviously that all of this matters is because the kinds of applications that we want to build, we'll just require far greater scalability and also will require far lower cost to really work. And I think it may be helpful to just exemplify what those applications are. I think some of the things that we are seeing already in the world of Ethereum, kind of the Ethereum ecosystem is maybe the richest so far in terms of actual developer activity on top.
Starting point is 00:08:01 So we've seen kind of the emergence of this parallel financial world. where you have things like stable coins, which are price-stable cryptocurrencies that have some logic that modulate the supply of the token to keep it stable to some external reference, like the US dollar. And then on top of that, people build things like lending platforms, and they built things like derivatives platforms. They build things like decentralized exchanges
Starting point is 00:08:29 where you can exchange tokens or exchange crypto assets without depending on some central exchange. So all of these things, that's like one example, one trend that is already happening among many other trends. And we can talk about other examples later if you think it's helpful. But all of that depends on far greater throughput,
Starting point is 00:08:52 far lower latency to finality, and far lower cost per instruction. Because already, just with this initial activity, we were already seeing the limits of the current technology. So it's an open problem. How do we increase throughput? And for that particular question, people, like,
Starting point is 00:09:11 one of the things that matters the most is the delay in propagation of messages in a distributed system. That's what ends up dominating the cost of that particular problem. So people talk about the block time in crypto. It's like, how much time do you have to wait before you can append a new block to the blockchain.
Starting point is 00:09:35 And blocks usually contain computations. They contain transactions. So you can lower the amount of time that you have to wait for new blocks to come along, then you will process more transactions and more computations per unit time than you would otherwise. And so propagating messages in the network
Starting point is 00:09:52 is the dominant factor. That's what makes it slow to sort of finalize a transaction. Exactly. And the reason for this is that we are building a distributed system and so if you think about it, what is the difference
Starting point is 00:10:05 between a distributed system and one that's just centralized and that is that there's distance between the different nodes that are participating in the system. So the key difference is that now there's this additional communication cost between the different nodes in the system.
Starting point is 00:10:19 And that cost is also significant because it's bounded, is like the lower bound on it is the speed of light. You cannot get faster than the speed of light. So it, It causes this kind of lower bound as to how performance it can possibly be. And you can only get so clever before you reach that kind of lower bound.
Starting point is 00:10:41 But it is the case that today we're still far from that lower bound. There's still a lot of room for improvement. Yeah, I mean, people in general are pretty impatient. I remember when the chip and pin system started getting deployed here in the United States. It was just a couple years ago, right? And then you'd insert your credit card. It would take like five seconds, right? And that was a lot slower than the swipe.
Starting point is 00:11:02 And people were like, this is never going to work. I'm not waiting five seconds for my credit card to clear. And so maybe talk a little bit about, you know, sort of what is the propagation delay today? And then what's practical to get to given sort of speed of light limitations? And then what's the target? And how do we get there? Yeah, for sure. So today, I mean, there's enormous tension between, well, to back up a little bit,
Starting point is 00:11:30 So there are two things that matter here. One of them is how much time does it take to send a message between two points in space? But then there's also the problem of what influence does the size of the message have on that amount of time? And so basically the two angles here are latency and bandwidth. Latency being the amount of time that it takes to send a message, bandwidth being how much data can you actually fit through the pipe per unit of time. So there's a tension in this space. You can see this reflected in, say, the Bitcoin, like, block size debate.
Starting point is 00:12:08 Between sort of the throughput that you can get out of a network and the propagation delay that is caused by, say, increasing the block size. So in the case of Bitcoin, people were talking about doubling the block size from one megabyte to two megabytes. And so that would increase the throughput of the Bitcoin blockchain, because now you can fit twice. as many transactions, and the blocks would still come at a 10-minute cadence, but that would increase the propagation delay for those blocks, which would cause certain miners to no longer really be able to participate because they won't get the block in time. So they would eventually end up falling out, and you'd end up with a more centralized system.
Starting point is 00:12:52 So we see here there's a trade-off between performance and decentralization, assuming that you want to keep security constant. You don't want to suffer. You're still needing the trust, right? You can't give up on the trust. You can't allow double spending, right? So I always thought that the reason, say, Bitcoin was slow, was the proof of work was so computationally demanding.
Starting point is 00:13:13 Is that still the case? Or is that a solved problem? So it's a very good point. So we've been talking so far, we've been talking about the throughput of instructions for a blockchain, which is one of the three different, dimensions for scalability of compute. The third one was the cost of an instruction.
Starting point is 00:13:35 How much does it cost to have a transaction be processed? So the cost of proof of work is what ends up driving the cost of an instruction so far, so high. Rather than, I mean, so there are, there are various different lines of work. There's the line of work that's trying to improve the propagation of messages and to make that more efficient. So there are companies like Blocks Route,
Starting point is 00:14:04 which are building like a kind of a content delivery network, which has advanced computer networking technology, that allows miners to propagate their blocks to other miners very efficiently. And so that will help with the propagation delay, which will help with the throughput problem. So it's a new generation CDN. Exactly.
Starting point is 00:14:22 That is optimized for crypto. And in fact, they call it a blockchain distribution network, a BDN. Oh, got it. And so that's an interesting. angle, and that operates at layer zero. It's like the networking layer below the blockchain layer, and it can help any blockchain project. Any blockchain project that built on top of it will benefit from faster propagation of messages. Yeah. And the classic internet definitely
Starting point is 00:14:43 needed this. Like, it's impossible to imagine the internet without a CDN, right? You'd be waiting a lot longer for almost anything without that layer of infrastructure. So that makes sense. So there's sort of a CDN layer. Yeah. And then there are people who are working on this latency to finality dimension, which we also talked about, which is how much time do you have to wait before your message or your update, your computation, is final. And so that is a consensus problem. How do we agree that the update is final? How do we agree that something can no longer be reversed? So proof of work is a probabilistic consensus algorithm in that there is always some probability that whatever update to the ledger was performed, could be reverted at some point in time later.
Starting point is 00:15:31 And the key aspect there is that the more time passes, the less likely it becomes, that that update gets reverted. But it's always probabilistic. And this is why you kind of have to wait 60 minutes before you know that it's final, because that's the point in which that probability becomes so minimal, that you can effectively trust that it won't be reverted. But there is innovation and consensus algorithms that are better than that, that are not probabilistic and that are actually deterministic and are final on a far shorter time span. Yeah, and you need both, right? You need non-probabilistic and you need fast, right?
Starting point is 00:16:05 So, you know, everybody talks about the Ethereum contract things, underlying things like, hey, when you go rent an Airbnb, that lock will open because it knows it's you. There's a smart contract that governs the, oh, you're allowed to stay here tonight. Yeah. No one's going to wait there 60 minutes. Yeah, exactly. for that. And so is it feasible, are we on a path to basically enable use cases like that where like I've got my smart key and I'm in front of the Airbnb and like in seconds that thing's
Starting point is 00:16:32 going to open because of the contract cleared? Is that possible or is that not quite possible yet? We don't know the path. I think, I mean, we do see a path. I think that, so given the improvements on the networking layer with companies like Box Route, improvements on the consensus layer with companies like DFINITY and Ethereum 2.0 and Cosmos and PolkaD, there's like a large number of people working at that level. And then finally, improvements on the cost per instruction. Similarly, proof of stake and other consensus algorithms
Starting point is 00:17:02 don't use the expensive proof of work that the original blockchain is used. And so that can also come down. And so you can see a world where this does come down to a degree that it becomes fairly practical for everyday use for things like kind of quick, light-hearted interactions between people or between people and machines. And so I think that is certainly possible, and I think we're on our way. But I think it's worth noting decentralized systems will always be more expensive and less performant than centralized ones.
Starting point is 00:17:37 There's just an inherent trade-off there, and there's an inherent cost to decentralizing a computer system. And so it won't replace everything. There will be applications that will always make sense for a centralized world. For a centralized world. And there will be some applications for which decentralization very much does make sense. And those are the ones where trust is the key differentiator, where trust is the bottleneck to scale. That's where decentralized systems will shine. I want you to give me a couple examples of sort of applications where trust is the key,
Starting point is 00:18:12 as opposed to performance or, you know, cost or whatever. But before we do that, I want to talk about this notion of proof of work, transitioning and proof of stake, because this is super important. I read all the time that Bitcoin mining is consuming some, like, known fraction of the world's electricity because the math is so hard to actually do one of these proof of works, right? It has to go, you know, similar to public key cryptography. And so what's happening here? Like, how do we get on a path where we're not consuming?
Starting point is 00:18:42 all the world's electricity doing these proofs. Yeah, so the key goal for crypto networks is to build trust in a way that is bottom up and that does not depend on some central authority. And so as a result, you have to figure out a way to make the network be self-policing
Starting point is 00:18:58 and to kind of have an incentive structure that makes its members police one another in a way that the entire network kind of works and sort of proceeds according to people's expectations. So in a sense, you have to make the rational equilibrium
Starting point is 00:19:14 to play by the rules of the game rather than to defect and profit in some way that is against the rules and that kind of figures out a way to game the system. Right. And so in Bitcoin one of the key ways this worked was
Starting point is 00:19:30 through this proof of work. So maybe talk a little bit about how did it work? Why did it consume so much electricity and then where are we going? So the key problem that crypto networks have to solve is figuring out who gets to participate. Because there's no one central party who is able to decide who gets to participate and who doesn't. That's the entire point. We want to do away with that. And so proof
Starting point is 00:19:52 of work does this by requiring every participant to compute an expensive proof of work. It's a computation that's done on top of every block that they want to add to the blockchain. So that's an extrinsic resource that they have to come across. They have to procure to be able to participate. And it prevents any one person from completely monopolizing the system and from having unilateral ability to modify the underlying blockchain. That, of course, is very expensive because you have to come across all of this computational power in order to participate. So proof of stake says something different, is instead of making the resource that you have
Starting point is 00:20:30 to come across and that you have to procure, be extrinsic to the system, why not make it something that's intrinsic to it? namely, why not make it a crypto asset, why not make it a token that you have to own in order to, in order to sort of buy your participation in the system? So what proof of stake does is it says if you own 2% of the tokens in the network, then by and large, like on average, you'll have 2% of the say in what blocks get to make it onto the blockchain and which ones don't. But now, because of the asset itself, the resource that you need to be in possession of in order to participate, because it's no longer extrinsic to the system, it's no longer a resource that is sort of a physical resource like electricity, and rather it's entirely virtual, now the cost of actually participating in consensus and making the entire network work, in real terms, comes down dramatically. And it's just secure, or at least theoretically, can be made just as secure. And that's a controversial statement, but I will sort of stand by it. But it's less expensive.
Starting point is 00:21:39 So from a cost per instruction, on a cost per instruction basis, it'll be much more performant than a proof of work system. So if I could restate that, it sounds like in Bitcoin, with its proof of work, I had to bring electricity, consume the electricity, do this hard math. And that was how I sort of entered the system. and participated, right? And my reward is a minor for burning all this electricity as I get paid in Bitcoin. Yeah. In proof of work, I'm bringing basically tokens, or sorry, in proof of stake, I'm bringing the tokens themselves. I'm not consuming electricity. I'm just bringing the tokens
Starting point is 00:22:10 themselves. And I'm, by virtue of my ownership of the tokens, I can participate in a proof of stake that delivers the same trust properties as proof of work without burning all the electricity. Exactly. Yeah. Got it. Got it. Got it. So it sounds like all of these things need to come together for us to build sort of distributed compute in this new world, right? We need the new CDNs. We need the transition to things that look like proof of stake, so we're not consuming all this electricity. Any other big innovations that need to happen in this space to bring the transaction cost down and the transaction speed up? I think those are the big ones.
Starting point is 00:22:49 So we're talking about the three pillars of computation. There's, well, the three pillars of scalability of computation. So there's throughput, there's latency, and then there's a cost per instruction. And so we kind of addressed all three. There's companies that are working in all three. And I think these are very much still open problems, and there's just a lot of greenfield for exploration. And so I will tell you, Google engineer, like, this is where it's exciting.
Starting point is 00:23:12 This is where your skills as a sort of distributed systems engineer or machine learning expert can kind of leverage those skills to figure out some of these open problems. Got it. So if I'm motivated by doing things like, I want to create a better TCPIP, I want to create a better HTTPS, right? And, oh, man, I'm just too late to the party. Like, I arrived when all those protocols were already settled. Like, you're saying, this space is for me, because a lot of the problems haven't been settled yet. Yeah, right?
Starting point is 00:23:40 Thorny problem, unsettled, big world impact. Yeah, even if it's been 10 years since the publishing of the Bitcoin White Paper, this is still very, very early days. Because I think that it's only been recent, it's only recently that people, have begun to conceive of blockchains as computers as opposed to just payment systems. So the emergence of Ethereum was in 2014. And
Starting point is 00:24:04 it's only really been five years or four years really of people thinking of blockchains in this way. And so it's very early days. The space is very nascent and there's just a lot of work to do. Great. So perfect time. Why don't we sort of move on to part two?
Starting point is 00:24:20 So we've talked about distributed compute. Let's talk about distributed storage. And so, you know, we started with a Google Photos example. I kind of trust Google to have all my storage, all my photos, but to do that, they have huge servers with lots of hard drives in them scattered around the world. It's pretty expensive. And so if I was a startup trying to mount a frontal assault against that, I kind of only have two choices.
Starting point is 00:24:44 One is raise like a trillion dollars, right, and try to duplicate their infrastructure, right? Put point data centers everywhere, points of presence. or I could do what the distributed crypto community is trying to do, which is convince you to lend me a bit of your hard drive space. Well, the key reason that we need a decentralized layer of storage is because it itself will be a foundational building block for this decentralized world computer that we're talking about. And so in order for some of these applications that we've talked about
Starting point is 00:25:18 that are not really possible to build on top of a centralized architecture, to really work, we need the full extent of a computer that works in this way. And so if we had a centralized storage layer instead of a decentralized one, then that would be the weakest link. It would dilute the promise of the decentralized layer of computation if you don't have all of the pieces themselves being decentralized. And so that's why it's important because we want to enable these applications that kind of depend on decentralization for trust.
Starting point is 00:25:54 And it's not so much to compete head on with Amazon because the economics are different. As we said, like decentralizing a system always comes with the cost. And so it won't make sense for just storing your photos if storing your photos is something that Amazon slash Google can do and if there's no trust dimension to doing that. Maybe if you care deeply about your photos not ever being seen
Starting point is 00:26:20 by anyone but yourself or by anyone but your close friends, then maybe you can imagine using a different kind of architecture, one that's maybe more decentralized. But for that kind of use case, I imagine sort of the centralized data center model, it works very well. And it'll continue to work very well. And they're not paying the decentralization tax.
Starting point is 00:26:36 Exactly. And so it's always going to be cheaper for them. Yes. To store your photos. But there are interesting opportunities. So, for example, there's a project called Filecoin. There are a number of others, two, that are working in the same space. One of them is called CIA, Another one's called StoreJ.
Starting point is 00:26:51 And they are trying to build decentralized marketplaces for storage. So the idea is, yes, I can rent some of your idle storage space on your laptop and pay you for that storage in Filecoin. And the reason that that's now possible is because I can now trust that you will actually store my files, and you can trust that I will pay you for that storage. Even if we're complete strangers and reside across the world from one another, because of the cryptographic guarantees of the underlying protocol. And so that's important because previously, without crypto and without blockchains,
Starting point is 00:27:29 that would have been a very difficult interaction to coordinate. It would have been very hard for us to establish trust from halfway across the world and make that exchange happen. So it's a marketplace that now emerges where previously it couldn't have. And it gives us this property that no one controls this, sort of layer of storage, and we can use it in conjunction with a computation layer to build applications that are fully decentralized and that are unstoppable and kind of run in their own right, and therefore command greater trust than applications that are centralized.
Starting point is 00:28:09 So I remember before the crypto craze, there were definitely startups that were trying to do that, do this exact thing, which is sort of let's share hard drive space. I remember there were backup companies that basically say, your price would be, I'll make up a price, $20 per gig per month. But if you contribute your own hard drive space, your price is $10 per gig a month or whatever, making up those numbers. But they never really got to scale. So what are the advantages of doing this with sort of a cryptographic protocol as they're intermediary, as opposed to just, hey, there's a company and there's a service and there's a price chart and please participate, right? and we're going to sort of transact value in fiat currency. Yeah, well, I think that the key difference is that those companies were operating on the assumption
Starting point is 00:28:56 that the value at here is an economic, it's economic, that you actually, that is kind of like Uber, you'll tap into all of this unused storage space that previously wasn't accessible, that you'll offer that at a cheaper rate. But I think that in the end, because storage is the most commoditized of computational resources, and because there's just so strong economies of scale that benefit companies like Amazon as they build data centers, the economic argument just doesn't work. So the reason that we need decentralized storage networks is not because they're going to reduce the price of storage by orders of magnitude. At least for most kinds of files and for most use cases,
Starting point is 00:29:43 is that I don't believe that that'll be the case. The value proposition is that, again, we now no longer have this central entity that's controlling the storage on this network. And so for the kinds of applications that depend on that, the kinds of applications that really cannot be built unless you have that, you just have no other option.
Starting point is 00:30:04 So you would pay the additional cost. You pay a higher price for storing your files and file coin because that matters. Is there a privacy? argument here, which is because it's decentralized, for instance, there's nobody to give a government subpoena to say, I want to see your files? I think privacy comes into it to some extent, but I think it's a little bit orthogonal because you could imagine encrypting your files before storing them in a centralized surface. Yeah, fair. And so there are ways of building
Starting point is 00:30:35 privacy into sort of existing centralized storage networks. Okay. And then what are some of the challenging computer science things about building these. And so if there was proof of work for computation, what are the proof ofs in this space? Yeah, well, the biggest one is trusting that the people who are claiming to be storing your files actually are storing your
Starting point is 00:30:57 files. So there's this line of work that's been spearheaded by the people of FileCoin and by Stanford's cryptography lab. Dan Bonnet's lab and sort of people like Ben Fish and Benedict Boone's underneath him.
Starting point is 00:31:13 have done a lot of work on figuring out how to create cryptographic proofs of retrievability. How can I prove to you that I actually am storing the files that I'm claiming that I am storing? And it's super interesting, it's extremely cutting edge, and it's basically at the heart of how you make a system like this work. Yeah. So you basically have to catch the pretenders, which is you don't want somebody to be able to say, yes, I'll store your files and then not actually store them. Right, because it would be cheaper for them not to store them, right? And so these sort of proofs of retrievability are basically ways to catch the pretenders. Exactly.
Starting point is 00:31:51 Right, and it's sort of a mathematical fashion. So, yeah, you actually had a conversation with Ben Fish on this. So for people who are interested in exploring this topic further, there's a couple YouTube videos. Awesome. So, okay, so we've talked about distributed compute. We've talked about distributed storage. I guess the third leg is now networking. Like, what's happening here?
Starting point is 00:32:10 Actually, this kind of reminds me, do you remember the company? phone. This was sort of back in 2006, and the idea was I could buy a Wi-Fi router from this company called Phone, and then I could sort of do one of two things with it. One, I could sort of offer it in Linus mode, which is I gave it away free, Wi-Fi access, right? Anybody that came in my house with my Wi-Fi router, you could access my Wi-Fi for free. And then in exchange, I could access anybody else's Wi-Fi access point for free. So that's mode one. Or I could be in bill mode. And in bill mode, basically, I would say, look, my Wi-Fi is available to you, but you're going to rent it for two bucks. And in exchange for that, I would have to pay,
Starting point is 00:32:53 you know, to access other people's Wi-Fi, right? So I could be in open-source mode, or I could be in, I'm rent-seeking mode. And it was this attempt to basically create a distributed ISP out of, you know, millions and millions of wireless. So it's something, wireless access points. Is something similar going on in crypto today? Absolutely. Yeah, I think the difficulty with those efforts has often been, which is the problem of density and the problem of incentives. So how do you get enough people to offer up hardware that forwards packets and provides bandwidth within a particular geographic region to make it make sense and to make it work and to be at all competitive with sort of the more kind of centralized, top-down, internet backbone infrastructure that we rely on? And so there are a number of projects that are, it's very early because this is actually probably one of the hardest problems in the space to tackle. Like how do you decentralize even the networking layer, the communication between different nodes, and to not have it depend on centralized internet infrastructure.
Starting point is 00:33:58 And so people are talking about incentivized mesh networking protocols where you can earn cryptocurrency, you can earn like, say, the asset that's native to a particular protocol. by setting up a router. Yeah, like this router can be a normal router that's just forward's packets, but it could also be wireless and provide a different layer of connectivity that otherwise, and that essentially makes the networking layer
Starting point is 00:34:25 more robust and more resistant to censorship and perhaps even more performant if you have just greater connectivity to the people you want to interact with. So yeah, I think this is one of these problem areas that's fairly far out because it kind of depends on the other two building blocks and it has its unique challenges
Starting point is 00:34:45 because now we're talking about bringing hardware into the picture. That's always a whole other kind of worms. But it is very interesting, and I think in the end, it'll also be a piece of the puzzle. So that's one angle to it. It's decentralizing networking, and then the other angle is making networking itself, which is more performant for the use cases of decentralization.
Starting point is 00:35:08 So we talked a little bit about CDNs for blocks. So that kind of falls into that category, into this category as well. Got it. So those are the key ingredients that you need to build a computer, right? You need compute, you need network, you need storage. And it looks like there's sort of efforts underway in all of these things. Let's assume for a second that, you know, time has gone by. And protocols and sort of Darwinian fashion have competed in a couple winners have emerged.
Starting point is 00:35:34 And these things look more like solved problems. Right. So now the exciting opportunity is, okay, now we can build killer apps on top of the blockchain computer. And so maybe talk to me about what is the community most excited about? What kinds of apps are you going to build? Because as you've been pointing out, it's not going to be the straightforward replacements for the things that we know and love today, right? It's not like instantly the replacement for Airbnb or Google Photos or Lyft, right? Because those systems don't have to pay the decentralization tax. It's probably going to be another class of apps, at least to begin with. That is the killer question. And I think as with any new technology, it is very difficult to predict what applications will be the most impactful. I think one reason to believe that the kind of innovation that we'll see will be enormous is that everything happens, all of the code that's written in the space ends up being open source. And so as a result, the ideas are out there. People share their ideas with other teams, other teams build on top of one another's ideas. And so the kind of innovation that we're likely to see is just combinatorial in nature and likely more explosive and will accelerate more quickly than it has in previous, for previous waves of computing and previous waves of technology.
Starting point is 00:36:51 If we do have this kind of decentralized world computer that is a kind of computational fabric on top of which applications can run, and it is unified in that one application can easily talk to another, then we have. the possibility of composability of applications. So not only do we have the sharing of ideas that are just available to people because by virtue of being open source, but we also have the actual composability of running code, code that runs on top of this computational fabric that builds on top of the code that other people have built.
Starting point is 00:37:27 And this kind of composability will just fuel the flame of combinatorial innovation even further. So I feel like the kinds of applications that we'll see as a result are fundamentally impossible to predict. But I will say, I think the kinds of things that we've started to see, the kinds of applications that seem to be working so far,
Starting point is 00:37:46 and it's still very early, and they're working only in kind of niche, within niche communities, are ones where trust is the bottleneck to scale. So I think the most obvious one, it began with Bitcoin, it's attempting to be money. And the only way that you would trust,
Starting point is 00:38:02 that you would trust a program that maintains a ledger of tokens and that claims that those tokens should be money is if that ledger isn't in the control of any one entity or any one individual. I guess you would trust the central government, maybe, but you would not trust a company to do that. So you wouldn't have been able to build Bitcoin on top of Amazon. Bitcoin is like one example of an application that you can build. And a bunch of the applications that have worked so far in the Ethereum ecosystem primarily
Starting point is 00:38:39 have been financial in nature, have been things that build on top of that initial idea. So things like lending platforms, derivatives, exchanges, things that depend on trust for them to really take off. But you can, we've also started to see other applications that benefit from this feature. I think gaming is an interesting one where you can imagine taking the existing world of gaming. You can imagine, for example, World of Warcraft, where people have significant investment in their character and in the gear that they have and in the lives that they live within these games, taken to a whole other level where you actually own your character and you own the gear for your character. And you can take your character and gear out of the game and maybe into another game. Because you now have this interoperable, trustworthy fabric of computation that other developers can build on top of.
Starting point is 00:39:37 And so that kind of investment in your personality and in your character in the game is unlike what we've seen in gaming before. So this could take gaming just to a whole other level. That could be a very interesting set of applications. But it very much depends on these three building blocks. We need scalability before gaming can really take off. And we've seen examples of this. I think CryptoKitties is one where people became very important. invested in owning this digital, this digital collectible, which is, this is something that
Starting point is 00:40:07 is fundamentally new. Never before would you be able to directly own something that's digital. Is it the first time that that's possible? I love this idea of being able to take sort of a high-level character that I've developed in one game and moving it to another because, you know, look, essentially a high-level character in, say, World of Warcraft is the ultimate proof of work, right? which is I had to do a lot in order to get this character
Starting point is 00:40:29 to be super high level. And now I'm kind of stuck in World Warcraft, which is great if I want to play more World Warcraft, but it'd be awesome if I could take my proof of work and move it to another system. Absolutely. Yeah. Yeah, I think there's a story about how Vitalik,
Starting point is 00:40:44 part of Vitalik's inspiration for starting Ethereum is having, I'm not sure which game it was, but it was like some gaming platform that revoked his ownership over like a key, a key item in the game that made him like so infuriated. This is the problem with centralization, right?
Starting point is 00:41:04 Which is you have a company operating a game, they can do whatever they want with the game. One change to the terms of service, and all of a sudden your proof of work is basically it's invalid. Exactly. Yeah, that would make you mad. Well, if you think about sort of trust
Starting point is 00:41:18 being the key feature, I mean, there's so many sort of properties that we think about on the internet that are essentially sort of brokers of trust, right? So LinkedIn is sort of the trusted entity to manage your resume and present your resume. And eBay is sort of the trusted marketplace where the sellers or Etsy is sort of the trusted place where you sort of send money and expect stuff, right? There's Airbnb and Lyft. And so like trust seems like a super powerful primitive for creating killer
Starting point is 00:41:49 apps. Yeah, definitely. And I think the Web 2.0 world has figured out how to bootstrap trust in a way that depends on things like identity and reputation, where there's social capital associated with your track record on the internet. So things like reviews on Yelp, or things like reviews on or stars on Uber, or number of likes on Twitter, and number of followers on just generally social media. These things are, this is like the mechanism for trust that's used. in Web 2.0. And I think crypto is orthogonal to that. Crypto today has no sense of identity, that people are pseudonymous, people can create multiple addresses and pretend to be
Starting point is 00:42:37 different people, people can abandon identities that maybe have a bad reputation and move over to new identities that don't. And the entire fabric of trust, therefore, depends not on social capital, but rather on financial incentives. So it's this orthogonal layer, where you're incentivized to behave honestly because there is real money at stake. And if you lie or if you behave in a way that's not in accordance to the rules of the protocol, then there's something that you will lose as a result.
Starting point is 00:43:10 So there's sort of financial capital, financial incentives as a way of bootstrapping trust, and then there's social capital as a way of bootstrapping trust. And I think that's one of the key differences between the Web 2.0 world and the now Web 3.0 crypto-enabled world. And what will be very interesting to see is the two models coming together.
Starting point is 00:43:34 So that's something to kind of look out for. And it seems like Keybase is sort of an early attempt at that, right? Which is, on the one hand, you had all of these private keys that represented you, right, in these cryptographic networks. And on the other hand, you had sort of your Twitter profile and your LinkedIn profile and your Facebook profile and Keybase sort of tried to sort of bridge them. Yep.
Starting point is 00:43:55 What other things do you think we will see in this space of sort of making identity more seamless? Yeah, I think KeyBase is a key one. A key problem is how do you map a real human individual to a public key in a way that is trustworthy and in a way that you can rely on? So a key base is this, and I think it's a very apropos example, where you can use your existing Web 2.0 world identity to bootstrap your web 3.0 identity. You can use your Twitter account and your Facebook account and your GitHub account and your website and point them all to this to this cryptographic identity that you can then use to interact with other people in the sort of crypto anonymous world. And they can verify that that really is you because of the cryptographic assurances of those connections between
Starting point is 00:44:48 Twitter and so on and your public key. You can take that further, though. I think once you do have identity in the crypto world, and I think it is an unsolved problem. KeyBies is the first kind of attempt, but there's still a lot to do there. Once you have a solid layer of identity within crypto, that also doesn't sacrifice privacy. So it's worth noting there's a big tradeoff there. Like if you have strong identities, then you have less privacy. And it's kind of difficult to come to the right balance between the two, and it will vary per application. But once you have a good system for that, then you can start building.
Starting point is 00:45:25 reputation systems. You can even imagine like a page rank style algorithm for reputation. Like if I trust Frank and Frank trusts Joe, then I kind of indirectly trust Joe. And you can imagine kind of taking this to the whole other level to really enhance the kind of trust that emerges from financial incentives with social capital and with with reputation. Yeah, it's very powerful. You see some of even in things like the Facebook marketplace today, which is you see somebody listing cheese or a bike or whatever, and you'll see, oh, this is a friend of Ali. And then that brings a level of trust to that transaction that wouldn't otherwise exist. Exactly.
Starting point is 00:46:07 And one of the reasons this is so important for crypto is that today, every interaction in the world of crypto tends to be very transactional. You don't even know who you're dealing with. And so it really is about that one transaction. It's one-off. And whenever there are, whenever there's conflict, it's a one-off. Prisoner Dilemma-style game, whereas if you had identity and if you had reputation, you could turn all of those one-off prisoner-dilemma-style games into iterated prisoner-dile
Starting point is 00:46:34 games, which are far easier to solve. You have the long view of relationships. You can have a track record and rapport with the people that you interact with if you only had that other layer. So so many of the problems, the game theoretical problems that need to be solved for cryptidwork that are so hard to solve will become easier once you have this additional level. to play with. Yeah, that's super interesting. Right. So every prisoner's dilemma type game is sort of assume perfect strangers go in.
Starting point is 00:47:01 And now we have to sort of mathematically model what will happen, not knowing anything about them. Exactly. But if you threw me and you into a prisoner's dilemma, right, like we'll have much higher fidelity predictions about what each other, like, I'm not going to squelch on you. Ali, he's a friend of mine. Especially if we know that we're going to be in a similar kind of game in the future. It's like if we cooperate now, then we'll build rapport and then it'll be easier for us to cooperate
Starting point is 00:47:22 in the future. And if we cheat each other now, then we will kind of ruin that opportunity later on and make it harder for us to cooperate down the line. Yeah. Super interesting. So one thing before we go, I want to talk a little bit about governance because today it seems like there's a lot of conversation in the tech community about, gee, maybe the tech giants have gotten too big, right? Because with the stroke of a pen and one change in terms of service, like all of a sudden the roles of engagement or the winners and losers in that environment, are dramatically different. In Crypto land, the idea would be
Starting point is 00:47:57 let's not have one company which completely owns their terms of service control that. There's going to be sort of a decentralized community. But we end up with some of the same questions, right? Like who gets to change the terms of service? How do those changes come about?
Starting point is 00:48:13 Who proposes them? So maybe talk to me a little bit about what's happening in the community as we iterate on systems of governance. Yeah, you're hitting at one of the most fundamental questions in this space, which is that if you do build a system that is decentralized and that control over it does not rest with any one individual, then there's a question, well, how do you go about updating it? How do you go about changing it in any meaningful way? And if it is going to be a
Starting point is 00:48:40 complex system that adapts and evolves over time, this question most certainly has to be answered in order for any of this to work. So this is a question of sort of governance of protocols. and there are an enormous number of experiments that people are running, like different kind of approaches. The canonical and sort of initial approach was out of Bitcoin, which is that essentially you do just have to coordinate with all of the stakeholders, all of the people who are running the Bitcoin node software, in order to change the protocol.
Starting point is 00:49:13 And in this case, that would be that all miners, all of the people who are running the code to mine Bitcoin have to, to modify their software, and this is a human-level process, you have to call them up, or you have to sort of issue an announcement saying that protocol is being upgraded and get that to work. There are other approaches that people are exploring with that are more, sort of, they're formalized and are built into the protocol. So there's the idea of being able to vote with tokens. So if I own a certain stake, a certain amount of the network, then I can't use the technology. tokens that constitute that stake to vote in favor or against proposals that may be made by
Starting point is 00:49:55 the community. It's just another approach to decentralize governance that tries to lower the barrier and tries to make it a little bit more seamless. There's an enormous set of challenges associated with that because there are possible attacks where you can bribe people. There is the issue of voter participation. And all of the issues that you see in governance systems outside of the world of crypto, just like offline government. Offline. Who's going to the election? How do they vote? How do we prevent dead people from voting? Exactly.
Starting point is 00:50:25 These problems have become replicated in crypto as well, and they are therefore fundamentally difficult problems that have been unsolved for millennia. So it's not as if crypto will solve any of that. It'll just have to figure out the right mechanisms and the right structures to be good enough and to enable systems that are decentralized to adapt and to change and evolve
Starting point is 00:50:47 while striking a balance between sort of evolvability and decentralization. And actually, we did two podcasts specifically on this question, a question of governance in crypto that will go much, much deeper and talk about all of the challenges. So if you're interested in that topic, I recommend checking those out. Perfect. We'll throw the links into the YouTube video so you can follow them easily. Well, Ali, this has been super interesting.
Starting point is 00:51:14 There's so many problems to be solved. There's so many meeting computer science things to be had. Like, how do you prove that I'm actually storing your photos, right? Instead of just pretending to store your photos and collecting the money. And so I guess the way I think about it is, like, if you have ever wished that you could have been like a semiconductor engineer at Bell Labs in the 1950s or a PC enthusiast in the 1970s and you were like, oh, I missed the 50s. And then I missed the 70s. And then, like, if you wished you were at UIUC with Mark at the dawn of the Internet in the 90s, like, look, here it is. This is the new computing platform. Here is your opportunity. It's not too late. And these are the times to exactly insert yourself into that conversation. If sort of that's what you wish you had the opportunity to do is influence some of these protocols, these incentive systems at the ground level. Absolutely. Awesome. Fantastic. So that's it for this episode. And if you liked what you saw, go ahead and subscribe to the list.
Starting point is 00:52:22 If you have comments, go ahead and leave them down below. Maybe you could pick one thing that you were super excited about. Like, what problem do you wish you could solve as an engineer? And we will see you next episode.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.