Onion routing, as offered by Tor, is one of the few models available for users to reclaim their privacy as we enter an age of both mass surveillance, but also of fraudsters, advertiser profiling, geoblocking and all kinds of unwanted internet adversaries — ones that seek to fragment and threaten a free and open internet.

However the problems with Tor are two-fold, the user base and the scalability.

We fight for the users

First of all, Tor users can be segmented often by the people providing relays and exit nodes, and people actually using the network. If you’re providing such a Tor node, the chances are you are:

Highly technical

A privacy activist

Paying with your own disposable income or via organisational sponsorship

There is inherently a limited group of people who will provide these services. But now let’s look at the users, this is my personal estimation based on my moderate level of experience with the Tor project, community and its advocates:

Privacy activists

Cybercriminals and fraudsters

Hackers, bots

Bitcoin services

Darknet market users

Finally we have:

‘Normal’ users concerns about their privacy

Users in repressive regimes bypassing surveillance and censorship

Now whilst this is a more diverse group, it is far from representative of general internet users. General use I would estimate is 80% users looking for privacy, 19% users bypassing censorship and less than 1% covering the other categories mentioned.

So why is the Tor community so unrepresentative of normal internet users? Because it’s too damn slow. If Joe Blogs has to switch browsers every time he wants to stream Youtube or Netflix, mainstream by-default adoption has failed. If Jane Doe is locked out of editing Wikipedia because she’s coming from a Tor exit node, similarly mass adoption has failed.

If only someone had worked out how to scale bandwidth

The problems of scaling speed and scaling nodes is however a pretty much solved one for the last 10 years, it’s called BitTorrent. 10 years ago, file sharing was having a similar problem to Tor today. Reliance on centralised infrastructure led to slow speeds, legal attacks and general poor scalability and reliability.

In each case, the asymmetric relationships between the end users leads to scalability issues and centralisation. However BitTorrent mostly changed this to a peer based system.

This is what P2P stands for right?

But what of the free rider problem?!

Now, BitTorrent uses a liberal methodology whereby clients will initially share data with peers for ‘free’, but will cut off those same peers if they have not been seen to go on to share the file in turn. Whilst this methodology has some faults, the network as a whole scales and BitTorrent bandwidth still dominates upstream bandwidth in this post-Netflix era we live in.

However until recently, there wasn’t a secondary market to sell your excess BitTorrent upload bandwidth anywhere, nor buy it in if you were in a hurry. This changed in June 2015 with the launch of JoyStream, a service incentivising users to seed files for as long as possible via Bitcoin micropayments, and allowing users who want bursts of traffic (e.g. for streaming) to purchase traffic up front. Aside from the centralised and commercial nature of the JoyStream operation, they have technically set up a service that will scale BitTorrent even further.

I don’t like shady pirate-profiting companies brokering my bandwidth, the information wants to be free!

This brings me finally to my proposal on how to scale Tor. First of all we rip out JoyStream and replace it with a Blockchain database, either an independent ‘altchain’, or pegged to the main Bitcoin network as a ‘sidechain’ perhaps using colored coins.

Then we create an optional configuration for Tor/The Tor Browser bundle to ‘enable peer exit and relay nodes’. When enabled, every Tor node becomes and exit or relay node. The more traffic it passes, the more ‘Tor credits’ the node accumulates on the ‘Tor credit database’, as verified by consensus between the relevant relays and clients. This would typically be left running on a Raspberry Pi or otherwise 24/7 workstation, small network device or integrated into the browser.

Now when a user wants to actually browse the full fat internet via Tor, including Youtube and sites that would otherwise slow the Tor network, they can ‘spend’ their Tor credits by presenting them to the network in exchange for prioritised quality of service until the credits are depleted. The whole thing would look like so:

Caveats

I am well aware of the significant amount of attacks on user traffic via SSL stripping on Tor exit nodes. I would specify that the special Tor-credits network is SSL-only as a result. It’s the only way to secure it right now.

Asking users to run a dedicated Pi is also a big ask, so native support from a version of the Tor Browser bundle would be essential for mainstream adoption.

Multiple layers of integrity checking against the credits database would be required to prevent it being subverted, but this is a high end architectural approach, not a detailed specification.

This won’t work because reasons

Perhaps it won’t work. Perhaps the idea will be independently reinvented 2 years from now by some start up looking to commercialise the service. But what if it did? What if everyone’s standard web browsing went through Tor and this was the new normal? Going back a few years, https was for ‘banks and ecommerce’ only. Yet today everything from Youtube traffic to blogs are encrypted. (uh, not this one because I am lazy and waiting for Let’s Encrypt support in cPanel )

Just like it was dangerous to be a single individual uploading pirated media, it is dangerous to be one of the few providing an exit node. But if everyone can do it, the game starts to change completely. Tor needs to diversify to more user types and it needs to be as fast as normal internet. This in turn can protect everyone’s privacy.