Let’s say that I’m a large government or corporation, and I happen to notice that there’s content on Freenet that I want to suppress. Freenet is designed so that I can’t delete the content…or can I? What if I insert a bunch of garbage data, and then create lots of requests for that data? The requests could come from many sites all over the network, and don’t have to be sufficient to disable the network itself; they just have to be enough so that the “bad” content drops out of everyone’s cache, because – as we all know by now – Freenet does nothing to prevent that. What could Freenet do about it?

  • It could start banning my nodes. Besides the fact that this is, in itself, a form of censorship, it might be difficult to achieve. Unless everyone is banning my node, I can just reconnect elsewhere and Freenet’s own anonymity would hide my requests’ origin after the first hop. Getting everyone to ban me at once requires that they all agree on who deserves banning, and achieving such agreement in a decentralized anonymous network might be just a teensy bit difficult.
  • Another alternative would be to refuse to accept my “garbage” based on its content. This is another form of (internal censorship), and good luck finding heuristics that will reliably distinguish “garbage” from “legitimate” content.
  • The last, and most obvious, answer would be to provide a data-availability guarantee. Once inserted, content will not “disappear” just because it’s not popular. If you can’t find room for new data because the system’s full of old data, insertion of the new data will fail, so that the person attempting insertion knows about it and can possibly do something about it.

I’m sure that some of the Freenetistas would try to find some rationalization for why censorship by the people who write the Freenet code is more acceptable than censorship from anywhere else, but it doesn’t matter. Even if the ethical quandaries of the first two approaches can be explained away, they’re very far from being implemented today and might not be implementable at all. The only way to make Freenet truly censorship-proof would be to provide a data-availability guarantee. Have fun, guys. Too bad your system was designed to drop data.