Waiting on Routing

// #Bitcoin

There are some interesting projects which are trying to re-build the network stack with privacy in mind. I think the biggest so far are cjdns (unfortunately involves some sort of token), the more recent yggdrasil (no idea how to pronounce that), and maybe gnunet (feels kinda aimless). The coolest, and maybe most challenging part, of these projects is replacing the IP routing of today. Right now, the internet depends on very top-down, centralized players to run the machines which route packets to their IP destination. This involves a big map which the routers reference for each packet’s destination address. cjdns and yggdrasil are attempting to replace that centralized map with a decentralized version. This allows users to just show up with their address and plug into the system, instead of depending on a centralized hierarchy to divvy out an IP address to them.

It makes sense for these ambitious projects to take some sort of hybrid approach while bootstrapping the network, like embedding data in IP packets and using existing hardware. But the goal would be to have a packet header with no IP data at all. This requires every node in a path to understand the new protocol. I have no idea how this will play out in practice, or if it ever will. But it might look something like the original internet where you first start with small networks using the new protocol and then begin to link them with specialized hardware. This hardware would probably look like the routers of today, but instead it would only understand the new protocol and act on that information close to the bits in the NIC. I don’t think we have seen this yet with any new protocols. But dang would it be cool to just be able to plugin and have an encrypted, private channel with any other machine.

So we are probably stuck with the hierarchical IP routing world of today for quite while. But even if a distributed routing solution replaced it, the goals for bitcoin wouldn’t change much. Maybe just a different priority order. If the distributed routing has encryption and metadata protection built in, that’s great, the encryption would protect older bitcoin clients and the metadata would mean no more tor/mixnet-ing required. But in either case, we want bitcoin nodes to be running everywhere throughout the network. This is probably more important in the IP world, since we don’t want a large concentration of nodes in a single jurisdiction, but it will always be relevant.

More running nodes requires cheaper costs and higher incentives. That incentives part is a little tricky for a bitcoin node. For many users, there might not be an immediate incentive. And that slice of users gets smaller for more recent opt-in features like compact block filters. Luke Dashjr has a site with some stats on compact block filter adoption and as of today it doesn’t look good. Although I have no idea how he is measuring “non-listening” nodes. I want to look into two things.

  1. Measuring opt-in feature adoption with a node crawler.
  2. Are there are any ways to increase incentives for opt-in features to increase adoption.