The a16z Show - 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. Stay Updated:Find a16z on YouTube: YouTubeFind a16z on XFind a16z on LinkedInListen to the a16z Show on SpotifyListen to the a16z Show on Apple PodcastsFollow our host: https://twitter.com/eriktorenberg Please note that 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. a16z and its affiliates may maintain investments in the companies discussed. For more details please see a16z.com/disclosures. Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.

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. Today, I'm here with Ali Yahya, our deal partner in the A16Z crypto team, and we're
Starting point is 00:00:44 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? Right?
Starting point is 00:01:05 Google's a great place or Apple's a great place. 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?
Starting point is 00:01:37 Like, it's pretty reliable, and Google gets all my photos, and my mail arrives when I want it. 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. 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, enabling applications like Uber or applications like Instagram by virtue of having a camera and a GPS bolted onto the phone that enables.
Starting point is 00:02:51 of 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 Lyft. Exactly, yeah. And it would have been also just deeply impractical for one to pull out, one's laptop and try to call a lift. Right. And so with Crypto, I think the key dimension along which these decentralized computers that people are building in the world 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.
Starting point is 00:03:36 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. 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.
Starting point is 00:04:23 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 as opposed to top down from like some trusted organization at the top that kind of enforces, enforces the rules. Got it. So instead of trusting Google or Facebook or Apple, I can entrust the collective of people who've
Starting point is 00:05:00 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, 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 will have the power that you're describing. So let's start with distributed compute.
Starting point is 00:05:33 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 monotransactions per second. We have Visa, which can clear so many financial transactions 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 Crypto land? Absolutely. So I think, yeah, so much of the attention in crypto tends to be on this metric of transactions per second.
Starting point is 00:06:05 And I think we would argue that that's the wrong, I mean, it's 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 of some computation can you process in any given period of time? And that's kind of what people know as is 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.
Starting point is 00:06:39 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 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 Bitcoin has terrible latency to finality.
Starting point is 00:07:05 You have to wait 60 minutes before you can be reasonably sure that your payment is final. 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 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 will just require far greater scalability and also will require far lower cost.
Starting point is 00:07:43 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
Starting point is 00:07:58 in terms of actual developer activity on top. 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,
Starting point is 00:08:20 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 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
Starting point is 00:08:45 if you think it's helpful. But all of that depends on far greater throughput, 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?
Starting point is 00:09:08 And for that particular question, people, like, one of the things that matters the most is the delay and 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? And blocks usually contain computations. They contain transactions.
Starting point is 00:09:39 So you can lower the amount of time. time that you have to wait for new blocks to come along, then you'll process more transactions and more computations per unit time than you would otherwise. And so propagating messages in the network 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 between a distributed system and one that's just centralized? and that is that there's distance between the different nodes
Starting point is 00:10:12 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. And that cost is also significant because it's bounded, is like the lower bound on it is the speed of light.
Starting point is 00:10:27 You cannot get faster than the speed of light. So it causes this kind of lower bound as to how perform it can possibly be. And you can only get so clever before you reach that kind of lower bound. But it is the case that today we're still far, far from that lower bound. There's still a lot of room for improvement. Yeah.
Starting point is 00:10:48 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. And people were like, this is never going to work. I'm not waiting five seconds for my credit card to clear.
Starting point is 00:11:07 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 this enormous tension between, well, to back up a little bit. 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?
Starting point is 00:11:37 in space. But then there's also the problem of what influences the size of the message have on that amount of time. And so there's 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
Starting point is 00:12:05 debate. Between sort of the throughput that you can get out of a network and the propagation delay that is caused by increasing the block size. In the case of Bitcoin, people
Starting point is 00:12:21 were talking about doubling the block size from one megabyte to two megabytes. So that would increase the throughput of the Bitcoin blockchain, because now you can fit twice as many transactions, and the blocks will still come at a sort of 10-minute cadence. But that would increase the propagation delay
Starting point is 00:12:39 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. So we see here there's a trade-off between performance and decentralization, assuming that you want to keep security constant.
Starting point is 00:12:59 You don't want to suffer... You still need 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. Is that still the case? Or is that a solved problem? So it's a very, 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,
Starting point is 00:13:33 the cost of an instruction. How much is the 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.
Starting point is 00:14:01 So there are companies like Blocks Route, 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 the new generation CDN, but is optimized for crypto. And in fact, they call it a blockchain distribution network, a BDN. Oh, got it. So that's an interesting angle. And that operates at layer zero.
Starting point is 00:14:31 is like the networking layer below the blockchain layer, and it can help any blockchain project. Any blockchain project that builds on top of it would benefit from faster propagation of messages. Yeah, and the classic internet definitely 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.
Starting point is 00:14:52 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 be? 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?
Starting point is 00:15:13 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. 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 at 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,
Starting point is 00:15:52 that are not probabilistic and that are actually deterministic and are final on a far, shorter time spend. Yeah, and you need both, right? You need non-probabilistic and you need fast, right? 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 that, 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 is going to open because of the contract clear is that possible or is that not not quite
Starting point is 00:16:37 possible yet we don't know the path I think I mean we do see we do see a path I think that 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 don't use the expensive proof of work that the original
Starting point is 00:17:05 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.
Starting point is 00:17:23 And so I think that is certainly possible, and I think we're on our on our way, but I think it's worth noting decentralized systems will always be more expensive and less performant than centralized ones. 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.
Starting point is 00:17:46 There will be applications that will always make sense for a centralized world, for a trusted entities. 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. Yeah. 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, as opposed to performance or, you know, cost or whatever.
Starting point is 00:18:16 Yeah. 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 can say, can, can, can, can, assuming some 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, similar to public key cryptography. And so what's happening here? Like, how do we get on a path where we're not consuming all the world's electricity doing
Starting point is 00:18:44 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-police 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 it the rational equilibrium to play by the rules of the game
Starting point is 00:19:18 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 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 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
Starting point is 00:20:01 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.
Starting point is 00:20:19 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. Instead of making the resource that you have 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?
Starting point is 00:20:40 Why not make it a token that you have to own 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, 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 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,
Starting point is 00:21:13 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. So from a cost per instruction, on a cost per instruction basis,
Starting point is 00:21:43 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. And my reward is a miner for burning all this electricity as I get paid in Bitcoin. 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 themselves.
Starting point is 00:22:11 And by virtue of my ownership of the tokens, I can participate in a proof of stake that delivers the same trust property. trust properties as proof of work without burning all the electricity. Exactly. Yeah. 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?
Starting point is 00:22:34 We need the new CDNs. We need this 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. Yeah. So we're talking about the three pillars of computation.
Starting point is 00:22:52 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.
Starting point is 00:23:09 And so I will tell you, Google engineer, like, this is where it's exciting. This is where, like, your skills as a sort of distributed systems engineer or machine learning expert can, can kind of leverage those skills to figure out some of 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, exactly. 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
Starting point is 00:23:49 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 it's only really been five years, 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. 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
Starting point is 00:24:35 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. One is raise like a trillion dollars, right? And try to duplicate their, their, you know, and try to duplicate their infrastructure, right? Put 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
Starting point is 00:25:06 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 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.
Starting point is 00:25:45 And so that's why it's important, because we want to enable these applications that kind of depend on decentralization for trust. 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
Starting point is 00:26:09 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 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 for the decentralization tax. 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,
Starting point is 00:26:45 there's a project called FileCoyne. There are a number of others, two, that are working in the same space. One of them is called SIA, another one is called StoreJ. And they are trying to build decentralized marketplaces for storage. So the idea is, yes,
Starting point is 00:26:57 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
Starting point is 00:27:18 because of the cryptographic guarantees of the underlying protocol. And so that's important because previously without crypto and without blockchains, 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,
Starting point is 00:27:51 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. 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,
Starting point is 00:28:20 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 their intermediary, as opposed to just, hey, there's a company, and there's a service,
Starting point is 00:28:43 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 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.
Starting point is 00:29:14 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
Starting point is 00:29:35 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, 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.
Starting point is 00:29:55 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. So you would pay the additional cost. You pay a higher price for storing your files and file coin because that matter. Yeah. Is there a privacy argument here, which is the because it's decentralized, for instance, there's nobody to give a government subpoena to say, I want to see your files?
Starting point is 00:30:22 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 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 files. So there's this line of work that's been spearheaded by the people of Filecoin and by Stanford's Cryptography Lab. Danbonnet's lab and sort of people like Ben Fish and Benedict Boone's underneath him have done a lot of work on figuring out how to create cryptographic proofs of retrievability.
Starting point is 00:31:20 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. 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,
Starting point is 00:32:00 there's a couple of 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? 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?
Starting point is 00:32:29 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 1. 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 $2. And in exchange for that, I would have to pay to access other people's Wi-Fi. So I could be in open-source mode, or I could be in rent-seeking mode. And it was this attempt to basically create a distributed ISP out of...
Starting point is 00:33:04 millions and millions of wireless. So it's something of wireless access points. Is something similar going on in crypto today? Absolutely. Yeah, I think the difficulty with those efforts has often been just the problem of density and the problem of incentives. So how do you get enough people to offer up hardware
Starting point is 00:33:24 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 up-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. It's like how do you decentralize even the networking layer,
Starting point is 00:33:51 the communication between different nodes, and to not have it depend on centralized internet infrastructure. 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. 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
Starting point is 00:34:20 that otherwise, and that essentially makes the networking layer 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 the, one of these problem areas that's, that's fairly far out because it kind of depends on the other two building blocks. And it has its unique challenges because now we're talking about bringing hardware into the picture.
Starting point is 00:34:49 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 there's the, that's one angle to it. It's decentralized networking, and then the other angle is making networking itself, which is more performant for the use cases of decentralization. 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
Starting point is 00:35:30 protocols and sort of Darwinian fashion have competed and a couple winners have emerged and these things look more like solved problems. 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?
Starting point is 00:35:55 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.
Starting point is 00:36:29 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
Starting point is 00:36:44 and will accelerate more quickly than it has in previous, for previous waves of computing and previous waves of technology. If we do have this kind of decentralized world computer that is a kind of computational fabric on top of which
Starting point is 00:36:59 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
Starting point is 00:37:15 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. 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
Starting point is 00:37:36 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, 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
Starting point is 00:37:57 began with Bitcoin, it's attempting to be money, and the only way 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 of any one entity or any one individual.
Starting point is 00:38:20 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 have been financial in nature,
Starting point is 00:38:41 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 we've also started to see other applications that benefit from this feature. I think gaming is an interesting one where
Starting point is 00:39:01 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.
Starting point is 00:39:25 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. 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.
Starting point is 00:39:44 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 invested in owning this digital, this digital collectible, which is this something that is fundamentally new. Never before would you be able to directly own something that's digital. Is 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 to be super high-level.
Starting point is 00:40:31 And now I'm kind of stuck in World Warcraft, which is great if I want to play more World of World Warcraft, but, like, 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... 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 item in the game.
Starting point is 00:40:58 There it is. That made him like so infuri. So mad, right? This is the problem with centralization, right? Which is you have a company operating a game, they can do whatever they want with the game, right? One change to the terms of service, and all of a sudden your proof of work is basically, it's invalid.
Starting point is 00:41:13 Exactly. Yeah, that would make you mad. Well, if you think about sort of trust being the key feature, I mean, there's so many sort of, you know, 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 are at sea is sort of the trusted place where you sort of send money and expect stuff, right? there's Airbnb and Lyft. And so trust seems like a super powerful primitive just for creating killer apps.
Starting point is 00:41:50 Yeah, definitely. And I think the Web 2.0 world has figured out how to boostrap 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. or things like reviews on or stars on Uber or number of likes on Twitter
Starting point is 00:42:17 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 different people.
Starting point is 00:42:38 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
Starting point is 00:42:59 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. There's sort of financial capital and financial incentives as a way of bootstrapping trust, and then there's social
Starting point is 00:43:18 capital as a way of bootchraping 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. So that's something to kind of look out for.
Starting point is 00:43:36 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, or sort of bridge them. Yep. 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,
Starting point is 00:44:10 to a public key in a way that is trustworthy and in a way that you can rely on. So a keybase 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
Starting point is 00:44:30 and your website and point them all 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 Twitter and so on and your public key. You can take that further, though.
Starting point is 00:44:55 I think once you do have identity in the crypto world, and I think it is an unsolved problem, key business 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 satisfy, sacrifice privacy. So it's worth noting there's a big trade-off there. Like if you have strong identities, then you have less privacy. And it's kind of difficult to come to the right balance
Starting point is 00:45:19 between the two, and it'll vary per application. But once you have a good system for that, then you can start building 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
Starting point is 00:45:47 emerges from financial incentives with social capital and with reputation. Yeah, it's very powerful. You see some of this, even in like things like the Facebook marketplace today, right? 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
Starting point is 00:46:03 of trust to that transaction that would another exist. Exactly. 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'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 dilemma style games, which are far easier to solve. You have the long view of relationships.
Starting point is 00:46:38 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 lever to play with. That's super interesting. Right. So every prisoner dilemma type game is sort of assume perfect strangers go in, and now we have to
Starting point is 00:47:02 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? 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.
Starting point is 00:47:18 It's like if we cooperate now, then we'll build rapport, and then it'll be easier for us to cooperate 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 rules of engagement or the winners and losers in that environment are dramatically different. In Crypto land, the idea would be 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
Starting point is 00:48:12 come about? 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 the space, which is that, like, 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 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 enormous number of experiments that people are running, like different
Starting point is 00:48:56 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. And in this case, that would be that all miners, all of the people who are running the code to mine Bitcoin have to modify their software. And this is a human-level process. You have to call them up. Or you have those sort of issue an announcement saying that the 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 use the tokens that constitute that stake to vote in favor or against proposals that may be made by the
Starting point is 00:49:55 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? Those problems end up. How do we prevent dead people from voting? Exactly. These problems are has become replicated in crypto as well. And they are, therefore, like, fundamentally difficult problems that have been unsolved for
Starting point is 00:50:32 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 while striking a balance between sort of evolvability and decentralization. And actually, we did two podcasts specifically on this question, the question of governance in crypto that will go much, much deeper and talk about all the challenges.
Starting point is 00:51:03 So if you're interested in that topic, I recommend checking those up. Perfect. We'll throw the links into the YouTube video so you can follow them easily. Well, Ali, this has been super interesting. 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.
Starting point is 00:51:28 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,
Starting point is 00:51:55 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
Starting point is 00:52:05 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.
Starting point is 00:52:20 to the list. 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.