Skip to content

Instantly share code, notes, and snippets.

@hsribei
Last active January 18, 2017 22:08
Show Gist options
  • Select an option

  • Save hsribei/addb26214a8c159f84a8 to your computer and use it in GitHub Desktop.

Select an option

Save hsribei/addb26214a8c159f84a8 to your computer and use it in GitHub Desktop.
Putting the "Tor" back in Torrent

Putting the "Tor" back in Torrent

How a Popcorn Time fork could incentivize people to run thousands of new Tor relays

Thinking about NAT traversal as Tor's killer feature lead to this discussion: https://news.ycombinator.com/item?id=8018213

If torrents are P2P's killer application, and NAT traversal/"static IP" are Tor's (via hidden services), putting them together could prove to be the best incentivization scheme for growing the Tor network other than cold crypto cash.

You're stupid

Everybody knows you're not supposed to use torrents with tor, right?

But the problem there is using existing bittorent clients and how they leak IPs to trackers, etc. Drop those stones for a second and hear me out.

Onion Popcorn

Say we do the following:

  1. Make a DHT that serves out peer onion addresses (OAs?) instead of IP addresses;
  2. Fork Popcorn Time, make it create a hidden service for the user and connect to the OA DHT;
  3. Make the Popcorn Time fork also be a relay by default*. If you're going to add a lot of load to the network, you have to give back.

This "Onion Popcorn" could also soft-enforce some download limit based on the amount of traffic the user has relayed. Sane defaults and interface nudges can go a long way. (Popcorn Time itself doesn't even expose network/bandwidth adjustments to the user and, for the mainstream, we can count on hiding some options as an easier alternative to coming up with a proof-of-correctness anti-leeching scheme.)

Bandwidth at first probably wouldn't be enough to stream anything, but otherwise should work for downloading and watching.

The end result is that you're incentivizing Tor "miners" by giving them something they want (so bad that it takes up most internet traffic).

There's an issue with running a relay and a hiddens service on the same machine. Discussion here: https://lists.torproject.org/pipermail/tor-talk/2014-July/033819.html

@zenware
Copy link

zenware commented Dec 11, 2014

I just had an idea like this except a bit different... I want a torrent tracker & search mechanism that can not be shut down without shutting down literally every participant. And because of that I want it to be impossible (read: very difficult) to determine who the participants are.

If only Tor supported UDP traffic... I'll have to figure out a different way.
But my current concept is to mesh net everything(and somehow securely and privately transfer all data), and everything should be "Torrent Tracker, Some sort of search and filtering mechanism"

@TWhitesnow
Copy link

Its better if you use this with I2P tor exit nodes may have so so bandwidth but not all middle, gaurd nodes have good speeds. I2P has a larger selection of nodes and also supports UDP.

@llbranco
Copy link

sounds amazing
UP!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment