a16z Podcast - a16z Podcast: Five Open Problems Toward Building a Blockchain Computer
Episode Date: May 13, 2019Do 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)
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
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.
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.
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,
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.
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
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.
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
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
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
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
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. 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
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.
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
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,
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,
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.
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
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
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.
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.
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.
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,
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.
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.
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.
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.
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,
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.
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
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.
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?
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
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
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.
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,
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?
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
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
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
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 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
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.
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
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.
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.
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?
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
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?
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.
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
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.
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
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.
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.
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,
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.
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
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,
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.
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
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.
Dan Bonnet'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.
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, 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?
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,
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.
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
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
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.
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.
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.
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.
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,
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,
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
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.
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
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
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,
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?
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
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
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
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.
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.
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.
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
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.
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.
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
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.
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
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
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?
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
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.
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
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.
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
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.
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.
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.