In a recent conversation about piracy and whether it could win, we concluded the primary vulnerability of BitTorrent was its susceptibility to copyright enforcers just connecting to everybody in a swarm, downloading one block, and automatically sending out a takedown notice to the owner of that IP. This in theory could be "scaled up" incredibly easily to effectively monitor and police all the top torrents out there. The only defense Bittorrent has is the "blocklist", which if I understand correctly, is just a list of IPs to block entirely. So my first question:
1) How are these blocklists created? Whatever the method, it seems like it must be pretty manual because a quick search on the topic turns up a bunch of out of date links that seem rarely updated (even though I assume this list would need to update daily). Accordingly, my second question: 2) Would it be possible to create a "big data" automated blocklist service? At the end of the day, CPU, storage, even bandwidth is pretty cheap. Any identity tied to the scarcity of those (eg, a cryptographic "proof of work") is pretty easily forged by a determined attacker. But the one thing that is actually very hard to forge -- or even obtain in mass -- is a large number of IP addresses. Given this, I'm curious if anybody has built an automatic blocklist generator that basically accumulates a list of every "leacher" -- someone that connects to you and downloads, but never uploads. If so, it would seem that at the end of your download you could upload this list of IPs to the tracker, and then it could generate a list of leachers -- and this list would be downloaded and merged with your local list before connecting to any peers. Then when downloading, simply refuse to take connections from any IPs on that list. This list would have a couple effects. First, it'd identify regular leachers and penalize them by refusing to share. But if the assumption that IPs are hard to come by, then any copyright enforcer would quickly get blocked out -- especially because they would probably refuse to pirate any content whose copyright they are enforcing (and thus once on the list, nobody would ever send them data). Admittedly, they could still connect to you, but you wouldn't send them any data and thus they wouldn't have much of a case. Some problems and potential solutions: Q: What if you are leaching merely because there are so many seeders? A: Rather than fully blocking incoming connections from leachers on the list, just require that they share data with you first before sharing any with them. Because they only way you get onto the list in the first place is to have first downloaded some data, you should always have some data to share. Q: What if your IP (or the IP of your NAT) gets added to the list before you get any data; are you screwed forever? A: The trackers/clients might expire any IP that hasn't had a report of it leaching for some period of time. It might also require multiple reports from different IPs before broadcasting that you're a leacher, to avoid blocking capriciously. Q: What's to prevent someone from DoSing the swarm by uploading a list of every participant's IP and claiming it's a leacher? A: This is a tricky one. But I imagine this could be addressed with some combination of limiting the number of leachers any given IP can report -- and how often they can report them. This would require that an attacker have enough distinct IPs to make up a significant fraction of the swarm to wage an effective attack. But if this system were to combine state from across many swarms (eg, all torrents tracked by that tracker), I imagine the number of valid peers would dwarf the number of attacker peers very quickly. Q: What's to prevent this service from being blocked? A: This would be a service built into the tracker itself. Every swarm can have many trackers, and of course there are many swarms. To fully block this service would require blocking all trackers -- which if that were possible, would already be done. Q: Can this be built into the decentralized tracker? A: Probably, though it might become easier to attack -- not only can you attack the blocklist just like before, but now you can *also* attack the DHT. Anybody who takes over the necessary DHT nodes can take over the blocklist itself. But if the DHT is sufficiently hardened (eg, if it prevents people from arbitrarily choosing their hash, and maybe even factors in their IP for good measure), this could be an incredibly powerful anti-leacher deterrent. Anyway, just sorta spitballing here. Thoughts? I imagine this is already a very well studied topic; who else is doing something like this? -david
_______________________________________________ p2p-hackers mailing list [email protected] http://lists.zooko.com/mailman/listinfo/p2p-hackers
