Test test one, two, three.
Great. Hello everybody. Welcome to the next installment of the Vitalik and Roger show where this time we're talking about privacy and the Ethereum ecosystem. Would you like to start this or how should we begin?
Sure. I think maybe some background, right? I think we've talked a lot about privacy this whole week. Privacy has been a core value of the crypto space. I actually think all the way back since the real beginning of the cryptocurrency space, which is David Chaum's ecash in 1982, which was actually private but not decentralized. So originally privacy came first, right? And then of course Bitcoin was famously decentralized but not private, and we have the technology now to really have both at the same time, and so we're going full circle. Privacy is a human right. Privacy is a basic expectation that people, even in many cases people who were not able to enjoy many human rights, nevertheless had for thousands of years just because in the offline world there are inherent limits to how much information you're able to collect and process. But in the digital world these things are very quickly changing, and we need to make sure that privacy continues being a reality. For us in Ethereum, for the last especially year, I think we've had a big push toward these kinds of goals being first class priorities, not just in a very theoretical way but also in a way that directly touches users. So I guess maybe Roger could just briefly go through Tor and some of the evolution that Tor has had over the past couple of decades and where the project is now.
Yeah. So Tor is a privacy project at the network layer. The goal, from my perspective, I look at privacy from two pieces. The first one is at the application layer. In the Tor world, we think of this as Tor Browser where we try to get the browser layer, cookies, fonts, all sorts of cookie-like things safe. But underneath that is the network layer where when you're using Tor, somebody watching you locally can't learn what destinations you're going to, and somebody at the destination end can't figure out what IP address you're coming from, and no single point in the middle is able to match up which users are going to which destinations. So from my perspective, every time I see a new application situation like the Ethereum one, I think, okay, great. You need to think about application layer privacy. You need to think about whether the bytes you're sending back and forth are revealing what you want to reveal and don't accidentally put things you don't want. And then underneath that, at the network layer, by default, it should all be private, anonymous, secure. You should not be revealing your IP address to the people that you're talking to, and that lets you choose at the application layer how much you want to reveal. Maybe it makes sense to use Tor to get to Facebook and then log into Facebook if you choose to. Or maybe it makes sense to use Tor to get to Facebook and not log into Facebook if you choose to. So the goal of Tor in that context is to give you, the user, the choice about how much information you want to reveal to whoever you're talking to. And you shouldn't by default reveal everything to people watching you, to large telephone companies or intelligence agencies in the middle, or to the websites you talk to.
Yeah. Maybe when I first saw Tor 20 years ago, to me my mental motto of Tor is this is a private browser, right? Tor is a browser, and I open Tor and through Tor I can either access regular websites in an anonymized way or I can access hidden services. And one of the shifts that I think has been interesting is viewing Tor not just as that kind of full stack thing that contains a browser, but as a general purpose infrastructure that protocols more generally can plug into, and that Tor is about making everything that happens over the internet be able to happen in a much more privacy preserving way. So can you maybe talk a bit about that journey?
Yeah, absolutely. Back at the beginning, we were in the peer-to-peer community. Now, peer-to-peer means something else. And then we were decentralized, and maybe decentralized will mean something else soon. But part of the point of this was we're building an overlay network over the internet that gives you various security properties. And yes, you can use it for web browsing, but you can also use it for anonymized messaging where each side is a Tor user. You don't have to know who is what which. So, one of the other fun things in the Tor world is the variety of types of people who care about it. Over time, we've had interest and use by militaries, by governments and law enforcement, by individual people who read newspaper articles about NSA spying on them or companies losing data. We've had use by folks in the Middle East in the Arab Spring situation. So having all those types of users blending together on the same privacy system is part of how the journey has come to this. So it'd be great to have even more varieties of users such as the Ethereum folks.
So what are some of the most interesting and surprising application users of Tor that you've had so far?
Yeah. So at the beginning it was just the Tor proxy. It was the one, and we said maybe you want to hook up a web browser to this. Good luck getting that right. And that turned out to nobody got it right. So we realized we had to include the browser in what we were developing. Some of the cooler use cases came from onion services where originally onion services were so basically once you've got the building block of I can go somewhere safely over Tor, glue two of those building blocks together so the client can reach the onion service and the onion service doesn't have to know where the client is, the client doesn't have to know where the onion service is, and nobody in the middle can know either of them. And that started off with people running websites that governments would get upset about. But then we started having more interesting use cases. There's one called OnionShare where imagine you're a journalist and you want to share the Snowden documents with another journalist. You run OnionShare locally. It spins up a web server on your computer. Spins up a single-use onion address. You send that address to your friend who puts that into Tor Browser and downloads it. And then your web server goes away and there's nothing left on the internet, there's no evidence that any transfer happened. So this is how file sharing should be done on the internet, and it's something that you can build once you have building blocks like onion services.
Yeah. And one of the other things that surprised me is that Bitcoin nodes are started connecting through Tor now.
Yeah. That was also so I met the Ethereum Foundation people at FOSS Asia in Hanoi a few years ago and I had just found this graph on bitnodes.io which was the portion of Bitcoin nodes that are reachable over IPv4 or IPv6 or onion services, and at this point something like 3/4 of the Bitcoin nodes are only reachable as their onion addresses. So the Tor network is the critical infrastructure underneath the Bitcoin network, which is quite a world to live in.
Yeah. So now I think this is a good time to get into what we're doing with Ethereum. And I think here the big new thing that we wanted to talk about is that we now have an effort in the Ethereum Foundation to put Tor and onion hidden services into the Ethereum ecosystem across the stack pretty much everywhere where we're doing that is possible. So this is something that we started thinking about a few months ago. Basically, I think we've had a big conceptual shift from thinking about privacy purely as zk-ing your transactions and publishing a proof that you have a coin instead of directly publishing the index of your coin and linking all your money together, to this much more holistic vision where if you've seen me present about this before, you've probably seen the graph where you have privacy of rights and privacy of reads, and this includes things like being able to read data from the Ethereum blockchain without having to give up your entire access patterns to an RPC node. And one of the other big components here is broadcasting transactions, right? Because if someone is spying on the network, then they can see the transactions that you're sending as soon as they leave your machine. And so we're looking at that layer. We're looking at applications across the Ethereum network. We're looking at other kinds of user-level applications, and basically really pushing up the standard of privacy for Ethereum both at the low levels and the high levels and across the stack.
Yeah. One of the ways that I look at this and I've been talking to the anonymous single-show credential people for decades now, and I keep running across the application layer credential people saying I've got all this flexibility in my protocol. I can go from totally identified to totally anonymous and you can choose anywhere in the spectrum. And I always look at them and say that's great but this 97% of your spectrum you're sharing your IP address with the server. So, it's awesome that you've got your anonymized single-show whatever, but I get to know who you are when you're doing it. So, remembering both sides of this is key, and it's awesome that Ethereum is now aiming to be more holistic in this. So, I guess one question for you. I don't know enough about the various pieces and layers of the Ethereum architecture. We've got users sending their transactions. We've got users trying to read from the blockchain. We've also got validators and those have to talk really quickly. So, we talked a couple of days ago about the traditional finance people of the world wanting to drive down the blockchain frequency down to 200 milliseconds. How do you balance the wanting privacy at that layer versus wanting everything the finance people want at that layer?
I think it's there to some at some point, I mean even for reasons that go beyond privacy, we do have to put our foot down and say Ethereum is not going to be the fastest. Ethereum is not going to be able to compete with chains that have 30 or 300 nodes on things like latency, and the Ethereum L1 will not deliver literal blink of an eye UX where you're not seeing delays at all. And I think we just have to be open and honest about that because Ethereum's primary goal is to be the world ledger, to be the network that is decentralized, that is censorship resistant, and that it is like the Phial of Galadriel in Lord of the Rings, it's the light that remains when all the other lights go out. And that kind of goal needs to be primary for Ethereum in order for Ethereum to be the home of applications that last in the long term, like finance where the upside is plus 1% and the downside is minus 100%, where you really depend on that level of reliability. And aside from privacy, the other reason is geographic decentralization. We do not need a network where because of incentive pressures, nodes would naturally all concentrate in London and New York. We need a network where it's not just possible but also economically viable to participate from places like Buenos Aires and Southeast Asia and Zambia. But improving privacy at the same time is important, and I think we've started by identifying the places where privacy is the most important. The really key one actually is privacy for denial of service resistance, because even though the network has a lot of nodes, there's a very small number of nodes that are responsible at each individual slot. There's one node that is the proposer, and if you can identify the proposer ahead of time and you can do a targeted denial of service attack that lets you basically kill the chain, the possibility of that happening is itself an incentive for people to just rely on centralized actors. So for a few years we've had these proposals in the pipeline. They're called SSLE, single secret leader election, that basically allow proposers to be chosen in a zero-knowledge way, but where only the proposer is aware that they're the proposer right up until the very moment that they actually make their proposal. And actually, if we want, you could even with the newer ZK stuff extend that and say you keep your privacy even after that point. So we've been exploring that. In all of these situations, you have to combine a blockchain layer like data leak minimization with a network layer equivalent, and some form of onion routing and mix nets is going to be very important for that. The core challenge here is making that both work and be fast enough and also be economically viable so that people don't feel the pressure to give up on it and do things like maximizing transaction fees.