Vitalik: Ethereum, Part 1
All right, welcome everybody back to the podcast. We have with us Haseeb Qureshi, who's our partner at Dragonfly. Haseeb and I used to work together back when I was more active in crypto land. Vitalik is, of course, a polymath ingenue, although he may bristle at that description, who created Ethereum, which is the first smart contract blockchain to gain any volume and change the face of blockchain computing as we know it.
Let's see if you want to give us a quick one-paragraph background yourself.
Haseeb: So I'm a software engineer by background. I'm now an investor. I run Dragonfly Capital, which is a global crypto fund. We only invest into crypto, and I've been doing this for a little bit over four years now. It's funny because when I first got into crypto, I remember I was actually at IC3, this academic crypto conference. I just left my job at Airbnb as a software engineer, and I met Vitalik for the first time. I asked you, "What do you think is the most important problem to solve in crypto?" At the time, your answer was something about wallets. So you were like, "I think it's important to build more wallets." At that time, I had a vague understanding of what that meant to build wallets, but that was what triggered my dive down the rabbit hole of Ethereum. I remember in the very early days when I was first really diving deep into crypto, I came away with a very strong feeling after that IC3 conference that Bitcoin was going to die. The reason why I thought Bitcoin was going to die is I was like, "Look at the obvious massive Delta in the intellectual energy and character of what's going on in the Ethereum world," which just everything that I saw at IC3 versus what I saw in the Bitcoin world, which was a whole lot of religious anger and fervor and not a whole lot of innovation. I turned out to have a very simplistic understanding of that time, but that was how I first got into crypto full-time through that small interaction that you and I had back then.
You also have a background as a poker player if I remember correctly?
Haseeb: That is also correct. It's a former life. Before I got into the technology world, I used to be a professional poker player for about five years. There's a strangely large number of us who were either in Magic the Gathering or in poker before we got into crypto, or World of Warcraft. Maybe it's just Geeks and Gamers. Everything is bigger than that. I had this theory that you and I have talked about before. Every generation, there is some hustle that if you're really smart, very aggressive, and looking for edges, and not afraid of looking weird, there are ways to get ahead early or to make a lot of money in a way that's not obvious to most people. And it's maybe even slightly subversive. It's the kind of thing your parents would raise their eyebrows if you were spending a lot of time on. In my day, that was poker. There's a time when it became fantasy sports, and then it became crypto. Then it became DeFi and liquidity mining. Then it became NFT trading. Two years from now, there will be something else when NFTs are very professionalized and there's not that much Alpha to be made trading NFTs. There'll be something else that young, really hungry people who are not afraid of looking dumb are going to be doing to make a lot of money.
Vitalik, you want to give us a quick background?
Vitalik: Born in Russia, moved to Canada when I was six. At the time, I had already been doing a lot of math, a lot of programming, and I had been halfway through high school when I came upon this interesting Bitcoin thing. It fascinated me immediately because of how it combines together all of my interests. At the time, Bitcoin had the mathematical aspects, it has the cryptography, it has the computer science, the code—it's all open-source software. I had been very into open-source software at the time, and then also there's these economic and political aspects. I had been following Austrian economics a little already, and then Bitcoin just hit all of those buttons. I started trying my best to join the Bitcoin community. I started scouring through the Bitcoin forums looking for jobs that would pay me in Bitcoin because I figured the point of Bitcoin is that you were supposed to earn it. I found someone willing to pay me five Bitcoins, which back then was four dollars per article, to write articles for his blog. I did this for a few months, then eventually a poker player, if I remember any AD names, Abhelisa reached out to me and said the key was starting a Bitcoin magazine and wanted me to be the first writer. I immediately agreed and I became the first writer for Bitcoin magazine.
I kept doing that for about two weeks, started doing more and more Bitcoin-related writing, learning about Bitcoin, eventually more programming related projects. I did some work for a covered coins library called Bitcoin X and started getting deeper and deeper into the space. Then in mid-2013, I decided that I would go on this Bitcoin trip, take half a year off of university, and go around the world visiting all of the Bitcoin communities I could, understand the community, and see what everyone was up to. Eventually, after a few months of this, I came upon these people that were trying to take the blockchain and extend it to do things other than cryptocurrency.
So if there was this project called covered coins that existed for a long time which was trying to use the blockchain as this database layer to issue other kinds of assets on top. So you could issue shares on the blockchain, you could issue digital dollars on the blockchain. Now, there is a project called Mastercoin that was trying to extend that even further to create a full financial system, do what we call DeFi today, but this very early version of that. After I spent enough time in these circles, I eventually had my own idea for how to create a more general-purpose version of all of these ideas: instead of a blockchain for one application, a blockchain that you can build any application on top of. And that's where Ethereum came from.
So Ethereum is a blockchain on which you can build any application, and Bitcoin is obviously limited to trying to be new money or a new reserve currency, or nowadays some people say digital gold. So you were the original creator along with a team who coded it up, and you released it.
How old were you when you did that?
Vitalik: 19.
And how long had you been on computers at that point? When did you first start programming?
Vitalik: I think I started programming when I was around 10 or so.
And were you mostly self-taught or did you go to school for this? What's the secret here besides the obvious genetics?
Vitalik: I just grew up programming video games for myself to play, so I would make a video game, play it until I got tired, then make another video game and then play it until I got tired. And that's pretty much how I learned all the way up until high school.
Did your parents do anything or did the environment do anything uniquely to foster your development and programming?
Vitalik: My parents did buy me a lot of programming books. They did find some programming classes for me and some math classes as well, so they were definitely very supportive.
And were you in the gifted program, or just the normal public school system or private school?
Vitalik: I was in the gifted program or the public school up until grade 8, and then for high school, my parents moved me over to a private school, and I found the private school to be a much better experience.
Were most of your collaboration colleagues met online, or was there a physical place that you were at where they were all hanging out and you stumbled into them?
Vitalik: Pretty much entirely online. The Bitcoin world lived on a forum unless you were in one of the major cities like New York or San Francisco or that had a community which started almost from the beginning. So Bitcoin Magazine was a fully remote company from day one. Bitcoin Weekly, the blog before Bitcoin Magazine, also fully remote from day one. And to this day, most of your collaborators you're pretty much spread out all over the world?
Vitalik: Pretty much, yeah.
So Ethereum came out to the world in 2014. I think if I remember correctly, you'd been developing it for a few years before that. There was a public sale. A lot of people got involved. Then in 2017, there was a boom around people building assets on top of Ethereum—different kinds of coins. And then of course gaming and NFTs and DeFi and all of those things came along.
Let's just go through the evolution of Ethereum. What does Ethereum do at a core level? What does it do well, and today what does it do poorly? What does it need to get better at?
Vitalik: I think of Ethereum as a general-purpose blockchain. So instead of being a blockchain for one application, it's a data blockchain that you can build any application on top of. The way that you do this on Ethereum is you write a piece of code and you create a digital transaction that contains that piece of code and publish it. And when you publish this transaction and that transaction gets included into a block on the blockchain, this creates an object called a contract.
This is a virtual object that the blockchain keeps track of. A contract is an object that contains a piece of code. Now the blockchain has an object that has a piece of code, and that is a little application that the Ethereum blockchain maintains from that point forward. So then anyone after that point can send another transaction that says, "I want to talk to this object."
So step one: I created a transaction that creates this object. We'll call that object X. Then step two: you want to use my application, so you send a transaction, and in your transaction, you say, "I want to talk to smart contract apps," and here's a little piece of data that says, "Here's what I want to do with that application." When that transaction gets included in a block, the piece of code that I first published runs taking as input the data from your transaction and interprets it in whatever way it wants.
So we can make this more concrete with an example, right? So let's say if I have a company and I want to issue shares on the blockchain, I am going to create a transaction that contains a program. The rules of that program are going to say, well, what can you do with shares? We'll just say you can transfer your shares to someone else and you can vote, right? So the program is going to interpret any data that it sees either as an introduction to transfer your shares to someone else or as an instruction to make a vote.
I publish this transaction that initializes the whole thing, and as part of that transaction, I might say the file has 50 shares. Haseeb has 100 shares and I have 25 shares. So now there is this thing on the blockchain, and it has a piece of code, and it has its own little memory that says I have 25, I see it has 100, and Naval has 50.
So then Naval is feeling generous and wants to give half his shares to me, so Naval is going to create a transaction, and that transaction is going to have some data. It's going to encode this idea that Naval wants to send 25 of my shares to Vitalik. So you create a transaction that encodes this, sends it to the network, it gets included into a block, and then once it gets included, the piece of code runs.
In the piece of code, it sees the transaction and it sees, okay, clearly, I have to transfer 25 shares from Naval to Vitalik. Before Naval had 50, I'm going to subtract 25. Now Naval has 25, and now Vitalik has 50. So I'm going to write down that Vitalik has 50 now, and that's it. The transaction got processed.
Why do all this in the cloud in this very convoluted way, this very complicated blockchain, when I could just use a normal computer, when I just send an email? This creates this very transparent public record of what the rules are and this guarantee that all of the interactions with this application that I created followed the rules. There is no actor that has a backdoor key; it's a trusted computer in the cloud that each of us can verify all of the activity. We can audit all of it, and we know that nobody cheated. Nobody else moved my funds; I was the one who moved the funds and everyone can authenticate that the code was exactly the code that was supposed to be run.
And there are obviously sacrifices for this, right? This is not free. Even I, as the creator of the contract in this example, do not have the ability to later go in and say, "Oh, I changed my mind, I'm going to give myself 400 shares." Once I created it, once I publish it, I have no more privileges than anyone else. The application doesn't even have an owner. So that's powerful, right? Completely huge role, completely transparent, visible, treats everyone equally according to what the rules are.
Now, what do you sacrifice for this? One big thing that you sacrifice is efficiency. The way that all of these blockchains, including Bitcoin and Ethereum work is to that you have this network of tens of thousands of computers, each of which helped to verify the transaction. So when I broadcast this transaction, that transaction goes out to every single computer on the network and every single computer on the network runs that piece of code. Every single executor on the network verifies it, and every single computer on the network processes it.
Parallel computing was I take my code and I split it across a thousand computers and each one runs one thousand. Now, I send it to a thousand computers and all thousand computers run my code exactly. Yeah, it's a very different kind of computing.
The way to intuitively think about why it makes sense is to compare text to audio and video. Right now we're recording a podcast, and the podcast has some audio, the podcast has some video, and to see each other on video, there's hundreds of thousands of bytes that are flowing around between us every second. But technically, those hundreds of thousands of bytes, they're not necessary. If you wanted to, we could just do the whole thing over a text conversation. But there are some benefits from us being able to hear each other's voices, to see each other's expressions.
So there's already lots of very high overhead computation that people do with their computers. Video is a great example. Audio is a great example. The things that happen in the blockchain are more similar to text—like Naval -25, Vitalik +25. It's this extremely simple, extremely efficient stuff.
So it is perfectly viable to have many thousands of users and even millions of users' activity all get verified by one single computer because the blockchain doesn't do everything. The blockchain just does this core business logic, and that core business logic is not actually that complex. This is because of the constraints of blockchains. It's a function of the constraints of all the redundancy you have to have when you're on blockchains that we can only afford to put the Naval -25, Vitalik +25 on the blockchain.
The goal in the long run is that we want to make it so more and more kinds of low-value computations can also be happening on the blockchain, but right now out of necessity, only high-value transactions can afford to pay the cost.
So to back up for a second, what you've done is you've built a computer in the cloud, a virtual computer that's stitched out of thousands or tens of thousands of real computers. And that computer is very inefficient, it's very slow, it's going to move at a very slow speed. So comparing it and throughput to your home computer or to a supercomputer's nonsense is besides the point.
But any piece of code running on this is very trustworthy, and you know it hasn't been hacked. And now you no longer need a government or you no longer need a single actor in the middle, like a Mark Zuckerberg running Facebook, to tell you which transactions are valid, which contracts are valid, which programs are valid, and which ones aren't. You've done away with the need for trusted third parties, and you've replaced it with a trusted computer that is being audited, verified, and checked by thousands or tens of thousands of computers.
The technological complexity comes in scaling this, making this computer faster, keeping it secure, creating incentives, both economic and technological and gaming theoretic, to prevent people from hacking it and breaking it, and having an incentive mechanism in there so that people want to add computers to this network and also having a disincentive mechanism to use the network. You have to pay for it, otherwise you can easily overwhelm it. This giant contraption is Ethereum.
People have of course come along and created other smart contract blockchains. But even though we call it a smart contract blockchain, it's really a trusted computer in the cloud that can in theory run any application, but it trades off performance in exchange for security. And that security can be measured through decentralization. In other words, no single entity can control the computer; it can be measured in terms of how secure the code can it be hacked or not, etc. etc.
And there's a lot of subtle and beautiful elements that come out of it that are non-obvious because we're used to thinking of computers as, "Okay, Facebook runs some computers, these are central computers run by Mark Zuckerberg and crew, and the code is not open." Of course, I'm not entitled to see the code; I'm just a user. I don't own my data; they own the data. It's sitting in that database, and I don't have access to the database to read or write from it. I have to go to Facebook and ask them to read or write from the database.
But now you've created a computer where the code is all open. In fact, even the data is open, but some of it's encrypted, some of it's not. Some data anyone has access to see; some data you actually need to have your encryption decryption key to get access to. And anyone can read or write from it if they have the proper permissions.
This is a mind-blowingly crazy concept. It is a truly shared database with no owner, and permissions at a very granular user level where the users actually own the data. And in fact, the users own the network that's now run by this database.
So if someone built the next Facebook application on top of Ethereum, they could engineer it in such a way that the users actually own that application. This is the remarkable achievement underlying Ethereum, and it's hard to encapsulate in a few words. But one way that I tried to do it was I said smart contracts are castles made of math freely trading with each other. Castles, these are impregnable. Encryption is very strong and creates a strong defense, but they're made out of mathematics. Very much like the video games that you were programming in your youth, these are constructs put together by anyone anonymously or pseudonymously around the world, and they're engaging in free trade with each other.
We're the owner of each castle deciding what trade happens with somebody else. Now, there are obviously substantial limitations to this, so let's talk about the limitations. We've already talked about how this computer network is going to move at the speed of roughly one computer at least until we get into some of the ways to scale it and to grow it, but what are other limitations of this network? Can you give us some concrete applications of what's good for and where you wouldn't use it?
Vitalik: Aside from scaling, the other big performance limit on it is the latency. So when I send a transaction, I have to wait maybe about half a minute for the transaction to get included and to get a confirmation back. Now, in the future, this is going to get somewhat more efficient; maybe like 10 or 12 seconds is going to be realistic soon. But this isn't a real-time thing that you would stick real-time video game logic onto, for example. You could use it for payments, but you probably don't want to use it for things that are more real-time than payments need to be. That's one limitation.
Another limitation is the transparency properties. This probably is one of those places where we might have to get into some of the cryptography weeds, but basically the blockchain by itself is fully transparent, right? Everyone can see everything that's going on. If we go back to the example and we issue the shares of this company on the blockchain, then when Naval sends me his 25 shares, everyone in the world is going to be able to see that.
Now, there might be some cases where that's totally really fine, but there might be some cases where you'll want some privacy. And this is one of those areas where you often can get privacy and security at the same time. There's this extra cryptographic math; you don't need to get into it in depth, but it's worth saying the name: it's zero-knowledge proofs. The way that I describe zero-knowledge proofs are that it's a way of proving something about a piece of information without revealing that piece of information.
Let's say we're going to have the same application, the shares of my company on the blockchain, except instead of the blockchain recording the numbers 25, 50, and 100, the blockchain is going to record an encrypted version of 25, an encrypted version of 50, and an encrypted version of 100. And then when Naval sends me his 25 shares, he's gonna say, "Here is the encryption of the number of shares I have right now; here is the encryption of the new number of shares I'm going to have; here is the encryption of the number of shares I'm giving this Outlook," and then here is this magic cryptographic proof that says that the numbers line up. It says X + Y = Z, and I'm not trying to give away more than I actually have.
You could verify that everything's following the rules without verifying which specific thing a particular transaction is doing and with what parameters. So there are ways to get back your security and privacy at the same time. There are still some limits to how much privacy you can get. For example, even in this case, people can see when people are interacting with this particular application at all. If you just use a blockchain, you lose a lot of privacy. If you use a blockchain plus zero-knowledge proofs and other kinds of cryptography, you can often get back a lot of privacy, and you can potentially get even more privacy than in the centralized case.
Because in a traditional centralized system, there is the Facebook that runs everything and then sees everything, but with these kinds of systems, there is no one at the center. All the reasons has this mathematical castle in this guy verifying the proofs. So in theory, we could get digital cash which is anonymous one step further; we could even get anonymous smart contracts where maybe you and I interacted with a smart contract, with the details beyond that are lost. Not even in theory, this is something that's existed; this e-cash has been around for more than five years now. Zcash is a blockchain that is built around zero-knowledge proofs for all the transactions; the recipients and the senders can be anonymous, truly moon math, as they say.
So let's fast forward a bit: 10 years from now, 20 years from now. I know that's really long out in blockchain land because Bitcoin only came around in 2009 and ETH only came around in the early teens. But let's say 10 or 20 years from now, we've done all the hard engineering that we need, we've built as much technology as we can imagine. What are the limits of blockchain scalability and privacy? Where do we end up? Do we end up with every transaction we want to have private is private or do you think a lot of them stay public? Do you think that we're using blockchains for almost all cloud computing or is it still limited into the financial and high-value domain?
Vitalik: One of the things of its importance to mention is that the scalability of blockchains is improving, and it's going to improve pretty rapidly. The way the blockchains work today is I send a transaction, the transaction gets on the network, and every single computer on the network has to verify that transaction. There are scaling techniques, once again we don't have to get into the weeds, but things like rollups, sharding, these are technologies that allow you to use blockchains in a more clever way where you still have a lot of very redundant computation happening but it's much more efficient.
So what are the different techniques? Let's just go through those. So centralized systems, steady transaction, you send it to Facebook. Facebook has one computer; one computer verifies it. A blockchain, you have 100,000 computers; you send your transaction, all 100,000 computers verify it. Sharding: set your transaction; the system randomly chooses 1,000 computers out of 100,000 computers. Those 1,000 computers verify it, and the transaction gets accepted.
So instead of all 100,000 computers, we are fine only 1,000 computers verifying. When you have lots of transactions being accepted into the system, every single computer in the network on average is only going to have to verify like maybe one percent of all the activity. You can actually crank up the efficiency even higher; eventually, you could say every computer doesn't even have to verify one percent—every key verifier maybe only has to verify 0.1 percent.
Think of how BitTorrent works, right? BitTorrent is also like a highly distributed network. If you want to download the really popular movies, you generally can, but on BitTorrent you don't literally have every computer download every movie because that's totally crazy. On average, the movies we're going to have a few hundred theaters, maybe a few thousand theaters, so that number is big enough that you have the redundancy and you can generally get the content that you want, but it's not so redundant that it just becomes crazy inefficient.
The question is, can you create a network that works the way BitTorrent works from the point of view of data distribution and efficiency but create something that still has the same verification properties that blockchains do? That is what sharding does. One of the weaknesses of sharding is that it is more technically complicated. You have to actually do the work to figure out what exactly are the rules by which these transactions get split apart between the nodes. How do you make them all talk to each other? How do you do this distributed verification? The approach that is simpler from a protocol perspective is to just say we're going to require every node in this network to be really powerful.
So instead of a laptop being able to be a node, we would require every node to be almost a supercomputer. If you do that, then you can make blockchains that still work the way that they work today, but they could process more transactions. Maybe instead of being able to process 50 a second, they might be able to process a thousand a second or five thousand a second.
The weakness of this approach, and the reason why Ethereum is not taking this approach, is that it leads to more centralization. The number of people who can actually verify what's going on decreases. The number of people who need to collude to try to push through some change to the protocol that the users might not want becomes much smaller. It's still much more decentralized than Facebook, but it becomes much less decentralized than it could be.
And maybe in some cases, that's the right approach. If you want to make a decentralized video game, you want it to be decentralized, but it's not the sort of thing where if it gets captured people lose hundreds of millions of dollars, then maybe this more centralized approach is actually totally fine.
There is this whole spectrum of applications in the middle where it's fine. But if you want something that's high assurance, then you do want to break the decentralization up closer to the maximum. And the current Ethereum does provide that; it does provide this very high level of decentralization and high level of verifiability, but at the expense of scaling.
So what we're trying to do with sharding is we're trying to say, can you provide this high level of decentralization and high level of verifiability and still have a higher level of scaling at the same time?
I want to probe a little bit further on this decentralization question. A lot of folks who are coming into crypto, especially if they don't have a lot of experience, notice that decentralization is important. It's hard to end up in crypto without believing that decentralization matters to some degree, but the question is why? Here you show up and there's a cultural slider about how much decentralization is the right amount. Ethereum is like you have to be able to verify Ethereum on a laptop. And the question is why a laptop?
The larger the number of users that are verifying by default, the more secure a blockchain is. Because in the extreme, if nobody verifies by default except 10 different staking pools, then all that you need to try to force a change to the rules that the users might not like is 10 staking pools to come together and agree on it. But if, on the other hand, you have 10,000 users where the way that those users interact with the chain by default is they verify it locally and we accept blocks if they see those blocks as being valid, if someone wants to try to push some change to the rules, they actually have someone go to the user.
So they have to convince the entire set of users to go along with that. That's a much higher bar. Let's say that I'm Solana. Solana is a super high throughput blockchain, has much higher hardware requirements than what Ethereum has. If I were a Solana proponent, I might say, look, Ethereum has 5,000 some odd nodes, something in that ballpark. Solana might have, let's say for a second argument, one-tenth the number of nodes.
To actually get everybody in Solana to somehow fail to notice that there's been some fundamental failure or safety violation within Solana would be very difficult. Yes, it's one-tenth the number of nodes in Ethereum, but Ethereum just has some number of nodes; Solana has some number of nodes. They're all pretty large and they're all large enough communities that they would notice if something were to go wrong.
What is your counterargument to the Solana advocate who says, "Look, it's consumer hardware. It's expensive consumer hardware, but it's still consumer hardware."
Vitalik: I think about this is it's not just about what is the level of technical capability of running a node. Once it gets to the point where running a node is so easy that people are comfortable doing it by default, right? If running a node is hard but possible, there just is this constant pressure to try to save time and point yourself to another node. Potentially even some of the people participating in the upper-scale instance are going to start pointing to the same node.
I think that actually happens in EOS a couple of years back, right? Now doesn't the Solana Foundation even have to explicitly do a whole bunch of work to actively encourage people to run nodes? All these newer ones have a lot of subsidies that go out to most of the node providers, right?
So the question is, when the subsidies disappear, is the network still going to work that way?
There's actually two aspects here. That's one aspect is the technical feasibility, and technical feasibility is: is running a node easy enough that people are going to keep doing it as a hobby? Even with Ethereum, there's a lot that we could do to make running a node even easier than it is today, and a lot of the scaling things that we're doing and a lot of the protocol changes that we're doing over the next couple of years aren't trying to be in that direction.
For example, there's this feature called stateless clients. The goal of stateless clients is that it becomes possible to verify the chain without having more than a very tiny amount of information on your hard drive right now. In Ethereum, a node takes up half my hard drive. After stateless clients, it's not going to take up any of my hard drive.
Bitcoin is in a very good place already from a node running point of view. Bitcoin is in a better place than Ethereum, but Bitcoin does obviously sacrifice by having significantly lower throughput than Ethereum does.
So technical feasibility is one aspect, another important aspect is culture. People need to feel like it is this very ingrained responsibility that there's lots of this very independent verification going on, and that's something that is difficult to cultivate. It is one of those things where if you lose it, it is fairly difficult to try to get it back.
And I do think Bitcoin has that. I do think that in Ethereum, with the staking culture, it's actually been improving recently, and I wanted it to keep improving, but it is the sort of thing that needs to be highly valued. The two things play into each other. If you have a culture that values running nodes, then you have a culture that's going to value making protocol changes to make it easier to run a node. And if it's possible to run a node, just technically speaking, then it's more likely that you're going to have that kind of culture.
People sometimes ask us, "Hey, why not crank up the parameters by a factor of five and why not require people to have 10 terabyte hard drives?" A lot of people in Ethereum core development are actively resisting this. I think it's only Ethereum and Bitcoin almost that have cultures that are willing to actively make sacrifices for decentralization to that same extent.
I've always taken the point of view that the most decentralized coins will win in the end because the whole point of blockchain is decentralization. Otherwise, you wouldn't need them in the first place. That said, it does seem that every wave that happens in crypto, where new users come in and there's a boom in a bull market, the new users tend to go for minimum viable decentralization.
They don't care about decentralization until the bogeyman shows up and starts stomping them out of existence. Even decentralized finance, a lot of these are decentralized in name only. They're running centralized front ends. The teams are in well-known locations. They're probably feeling the how we test on some level or another, and we're going to find out just how far governments are going to go to test the decentralization metric.
But privacy is the same. People don't value privacy until somebody goes to jail over it, and then they're like, "Oh wait, I want privacy." Or someone gets deplatformed. Right now we're in a bull market phase, and when the risks aren't as high, people sort of ignore decentralization and privacy. But after a couple of incidents, you will see people start paying attention to decentralization and privacy.
At some level, the OGs know this because the most money is still locked up in Bitcoin and ETH, and some of that is momentum, but some of that is also security. You can put money into Bitcoin and ETH and forget about it for a long time. I'm not convinced you can do that in a lot of the other protocols that are not completely decentralized.
Privacy, everyone just seems to be ignoring for now. Well, Tornado Cash exists. Do you see Tornado Cash in Ethereum staying at a separate layer or separate application, or do you ever see it being folded into Ethereum at a core level?
Vitalik: The realistic way it'll stay at a separate layer because if the ETH philosophy in general is to try to be simple at the base and for a lot of the extra features to be something that gets built on top, there are a lot of other blockchains that take different philosophies. Once again, in EOS, their default wallet type has social recovery in it or something like that.
You've got to update your references. I feel like I feel dirty just talking about that chain.
We should get into social recovery. Social recovery is a really interesting concept. The basic idea is that your wallet, because now you have to be your own bank if you really want to be a crypto head, it's scary. So some of us have to trust third-party custodians, but then you're back into normal banking.
So if you want to maintain it yourself, then social recovery wallets are where you can share your wallet with your friends or family or other trusted people so that when you need to recover it, it takes two out of three, or three out of five, or whatever keys, and Bitcoin has native support for this. ETH now has products like Gnosis Safe and others that lend support to this.
So the wallets are getting better; security is getting better. We didn't talk about the whole ecosystem, which is interesting. We were talking about scalability. The point I got was that ETH is a decentralization culture; it's going to go for decentralization first which actually makes it attractive for high-value applications like decentralized finance.
If you're trading a ten thousand dollar trade, you'll pay the fifty dollars in fees for the security. By the way, one thing that we didn't talk about is that a blockchain runs a market for block space. There's limited block space because there's limited computing power, so you're always participating in an auction, and you're paying to get your execution of your application included in the current run of the blockchain. And to do that, you're buying block space.
Ethereum block space has gotten quite expensive, so things like sharding and adding these things called rollups on layer two, which we haven't talked about, are ways of creating more block space and bringing down the cost of blocks. But even if Ethereum stays very expensive, then the high-value applications will stay on Ethereum; those people will just pay more. If you're building Wall Street, you want rule of law, you want equal protection under the law, you want property rights, so you pay for that.
Whereas if you're just building a game and you're trading magic axes and swords and they're worth a couple of dollars each, maybe you just go to a blockchain that doesn't value decentralization as much. So perhaps the applications break down that way, but one of the things we haven't talked about is this incredible ecosystem of all these people building on it and around it.
My personal view is that if you got saved, if you look at Bitcoin, there's not been a lot of innovation in Bitcoin. Sure, the core developers have done some good work, but now the meme in Bitcoin is, "No, no, we don't change anything because we're trying to be the reserve currency here, we're trying to be digital gold, so we don't want to change anything." Everything is fixed. Immaculate conception—it was mostly right at the beginning; we made a few tweaks; it's good to go.
We'll fix a few little things, but you can rely on this because it doesn't need to change; it already does a job, and it does it well. And I kind of buy that argument, but I don't buy the maximus argument that that is the end goal of all blockchains. There are other blockchain things you can do, and in ETH we're doing a lot more than just that.
But even there, I noticed that there's an incentive mechanism around coins. When you create a blockchain, you create these coins to regulate access to the network. Now, in theory, you reward the people who are doing the hard work around the blockchain, so you reward the miners who are securing the blockchain or the stakers who are securing the blockchain.
And it's been hard to reward the developers. I know Zcash had a founder's reward, which was controversial. Satoshi has five percent of the Bitcoin blockchain; the Zcash founders' award is like 10 percent of the blockchain. Some of the modern blockchains, 70, 80, 90, 99 percent is going to the initial teams and investors, and these are the VC chains.
So how do you incentivize people to build on somebody else's blockchain? Because the incentive is becoming, "Well, that's a great blockchain you got there; it's open source. Let me fork it. Let me make a copy of it and run it myself." Or I've seen game developers who are saying, "I don't need Solana level security; I'll just fork an existing blockchain and just make it my own." And my own users who are running the game will also run the blockchain. So the incentives aren't there for developers to build on somebody else's blockchain.
I got in trouble for saying this in 2017, but I still stand by it. There's a free rider effect on blockchains; there's a strong incentive to fork a chain and build your own rather than to build on the existing chain.
There are a couple of brilliant things that maybe by accident, maybe deliberately happened on ETH that have been allowed an ecosystem of innovation on ETH. There's ERC20, which is people are building their own tokens. And then there's these rollups and layers where people are building on top of ETH, and in theory, they're going to issue their own token.
So I would argue that the one place where the ETH innovation has been the slowest, and maybe because it's technically the hardest, has been at your own layer. It's been at Layer 1 where the Ethereum Foundation is working, where the sharding is supposed to take place, and where ETH2 is supposed to get built. That's where the schedule has been the furthest behind.
Whereas on rollups, on Layer 2, things are moving very, very fast. On ERC20, other assets built on top of ETH, things are moving very, very fast. And I wonder if it's just as simple as incentives. Have you thought about how do I incent the people working at Layer 1 to move fast?
Vitalik: Maybe if they got their own token somehow.
The Ethereum Foundation does have a bunch of ETH, and it uses ETH to pay people working on Layer 1. A few months ago we announced a client developer reward, where basically everyone of the teams that's building a piece of software that understands and talks to the Ethereum protocol can run a node. They're getting some amounts of ETH that was in the form of ETH that's locked up in the proof-of-stake system that is not fully connected to the rest of Ethereum yet.
So that kind of incentive exists. It's not even so much about incentives; the application Layer and the Layer 2 has been faster because building at those layers is permissionless. You don't have to coordinate with anyone to build a Layer 2; you don't have to coordinate with anyone to build an application.
Whereas if you want to change the Ethereum protocol, that's one of the most permission things out there. You have to just get lots of people to agree; you have to get an entire community to buy into a protocol change for the Ethereum Layer 1.
Here's an interesting question: imagine we've frozen Layer 1 today. You could make some small changes like the Bitcoin folks do, but you couldn't make big changes. But the Layer 2 people continue innovating permissionlessly; they keep building all their rollups and all associated analogies. But you're still on proof-of-work, you're still not sharded at Layer 1.
Could ETH still work? Could Layer 2 carry it along for a while?
Vitalik: It could. I don't think people would be happy about it because people in Ethereum do a lot of proof of stake and want to get over to it quickly. Just to give some concrete numbers, today Ethereum is on average doing about 15 to 20 transactions a second. But if we just move to Layer 2, then we could go up to about 5,000 transactions a second.
You keep the same blockchain, but instead of using the blockchain directly, you use these extra protocols that package up the information and use the blockchain in different ways, so that you're still doing the same stuff, you're still getting the same security guarantees, but you're using the blockchain more efficiently.
There's more compression, and more of the computation is being done off-chain through other protocols. So there is 100x improvements that can't happen with Layer 2 done well that has not happened yet. Now Layer 2 as they exist today, they're very far from perfect. Instead of 100x gain, they might only be 10x gain or even a bit less at the moment, but the rollup technology is improving. All of these things are improving.
So if Layer 1 did not change, if all we could do was just the more earlier 2s, we could get up to 5,000 transactions a second. That would definitely be a pretty good Ethereum already, that Layer 2 execution is code.
What about the data? Does the data still all have to stay on the Layer 1 blockchain?
Vitalik: The way that rollups work is that they do the code execution off-chain. So there are these cryptographic protocols where the execution gets done off-chain and then verified on-chain, and the verifying is much faster than the original computation, and then the data has to be on-chain. But the data can be on-chain in a very compressed form. Instead of putting transactions on-chain, you put like a zip file of the transactions on-chain.
It's like doing a data-for-computation trade-off. You have less data, but then you have to do more computation. But we're okay with doing more computation because we could do more computation really efficiently off-chain. If you do a rollup super efficiently, then you only need to put about 16 bytes on-chain per transaction.
Today, on average, transactions are like 100 to 200 bytes. So 16 bytes on-chain, and then decompression verification computation happens off-chain. Everything happens off-chain except for this tiny amount of data. That's where the efficiency comes from.
Haseeb: And your team recently did an analysis where you try to look at the actual throughput on these different smart contract chains, but you didn't do the decentralization part yet.
Vitalik: So obviously it looks the worst because it's the most decentralized. Let's also talk about how much of that is because of this legacy and how much of it is because it just chose to be the most decentralized.
Vitalik: Usually, when people benchmark blockchains, they tend to choose benchmarks that make them look good. That produce big numbers. And the most obvious way to do that is to just benchmark transfers. Especially with a lot of these newer blockchains, they tend to benchmark transfers that are done in a test net or done in a devnet environment where you can always get crazy, gigantic numbers that aren't reflective of reality. It seems so many ridiculous claims being thrown around about what kinds of throughput blockchains could do.
Then we thought, okay, why don't we develop a clearly objective benchmark as a way to verify what can these blockchains do when you compare them apples to apples in terms of a common type of transaction that all blockchains do?
And the most common one, which is how almost all trading happens today in blockchains, is a Uniswap-style AM trade, Automated Market Maker. It's a very simple mathematical way to trade two assets. Most of these you can just simulate by looking at the gas limit and looking at the block time, and don't need to do a whole lot. Others of them you have to verify empirically because the way the gas computer doesn't tell you enough to verify whether the blockchain could actually hit in production.
So what we found is that Ethereum can do about 10 trades per second, Celo can do about 25, Avalanche can do about 30, but it has a much higher ceiling. Polygon can do about 50 and Binance Smart Chain can do about 200, and then Solana, which famously claims that it can do in the thousands to tens of thousands of transactions per second, can do about 280.
But part of the reason why Ethereum performance is where it is is to Vitalik's point earlier that Ethereum has enshrined a certain level of decentralization. This is important as a norm, as an institution that we make sure that Ethereum is accessible to anybody on a laptop.
And most of these newer blockchains haven't chosen that. They choose different points on the decentralization performance spectrum. And my view is that it's totally sensible to have blockchains that choose a different point on that trade-off curve. It's really important to have Ethereum and to have Bitcoin which go all the way to the left, but it's sensible that some people should have blockchains that are tuned for different trade-offs.
But within tuning to a different trailer, you better get really high performance if you're going to be not very decentralized. My point is if you're going to make that big trade-off, you'd better be getting a lot of bang for the buck when you're doing it. Not only that, but I think the high-value applications are going to end up on Bitcoin and Ethereum in that case. And the highest value application is just money.
I'm curious, Vitalik, if you think longer-term: Is money a use case of ETH? Is ETH the token and ETH the coin price a byproduct of something you need to run the network, or is it itself a core value that ETH should be a store of value? Should it be a place where people can put their money in and forget about it for 10 years?
Vitalik: Ultimately, that's a question for the community to decide. And I think over time, the community is more and more deciding yes, ETH is an important asset. And you can use ETH as a store of value. You can use ETH as money. You can use ETH to make transactions because ultimately, it is a cryptocurrency.
It's a cryptocurrency whose value is in some ways supported and backed by all of the activity that's happening on the Ethereum chain with EIP-1559, like up the big portion of the transaction fee from every transaction which is paid and ETH has to get burned. Once we have proof of stake, it's projected that we'll even have negative issuance.
So ETH is sort of positioned to be fairly unique in that way. But to me, it's not an either-or. The asset and Ethereum, the application layer, and your ecosystem are synergistic with each other. The stronger the application layer in your ecosystem is, the stronger ETH is. And the stronger ETH is as an asset, the stronger the application layer and your ecosystem.
People often compare Bitcoin to gold or to the dollar as a store of value, but the biggest stores of value in the world are not Bitcoin and gold. They're factories, stocks, houses, real estate, actual productive assets, oil is another one, commodities, etc. People store value in all kinds of weird places—art, NFTs.
So it's absolutely possible that there will be multiple stores of value. If anything, what's more decentralized than having dozens of viable coins that you can store in? Running thousands or tens of thousands or millions of assets that you can store—that's true decentralization.
So you don't have a point of view on it—you’re just like, whatever the community wants that makes the network run. But isn't there a tension between trying to be welcoming to newcomers and new applications and highly scalable and letting everyone use your network, and constantly innovating and changing and trying new things versus preserving the value for the people who are already there and preserving the value that's already been built? There's an inherent tension there.
Vitalik: There's definitely some tension. One of the big benefits of the Ethereum ecosystem, the SoYee aspects to it, the pluralist aspects, the way in which the ecosystem has many sub-ecosystems, is that it is in many cases able to satisfy both.
But if all you want to do is have your ETH and you want to hold your ETH, you can do that. And there's even some Ethereum applications that value stability almost as much as Ethereum itself does. MakerDAO might be one good example there; Aave might be another good example there. There are some of the algorithmic stablecoins, but then if you want to go and do wild crazy stuff, then Ethereum lets you do wild crazy stuff too.
And if you need more scalability to do wild crazy stuff, then you can go do the wild crazy stuff on a rollup. So Ethereum as an ecosystem does try hard to have a place for many different kinds of participants in that way, which is definitely something that's hard to accomplish. A lot of the other blockchains either you adjust to the digital rock or you're just a platform.
But there is that the digital rock that keeps the whole thing solid. In Ethereum, we do value solving the problem of both having the ecosystem that can do a lot of stuff and having the digital rock in the middle to keep it solid. Whether or not we'll succeed is, of course, up to the next decade of world history to decide.