Category Archives: Freenet

The Guardian writes about Freenet

A few weeks ago I spoke to Andy Beckett of The Guardian in the UK, he was writing an article about “the darknet”, and wanted to talk to me about Freenet.  I was quite pleased about this because when I’m in the UK the Guardian is by far my favorite newspaper.

We had a good conversation, I talked about the original motivation behind Freenet (read about it here), our challenges, like balancing the very theoretical issues we face with the need to write software that non-techies can use, and other things.

At one point he mentioned the dangers of “bad” uses of Freenet, but he did so in a very coy almost apologetic way.  I immediately assumed he was thinking of child pornography, and made it pretty clear that I was more than happy to discuss that, indeed of the hundreds of conversations I’ve had with journalists about Freenet over the past 10 years, I can’t think of one where I didn’t discuss the CP issue!

I told him what I tell everyone, which is that like most people I wish CP didn’t exist, but there are many ways to get it other than Freenet, and I don’t think people should be denied the freedom to communicate just because a small minority might use it for something we don’t agree with.

My impression at the time was that he really wanted to get off the subject, which I thought was a bit surprising since journalists love controversy, and there are few things as controversial as child porn.

Anyway, Google Alerts just told me that the article has appeared on the Guardian’s website (skip to the bottom for the link).

Overall I think it was quite a good article, I was particularly excited to read:

Installing the software takes barely a couple of minutes and requires minimal computer skills

I think Andy may be the first mainstream journalist in the history of Freenet to actually install and use the software before writing about it!

I was a little surprised that it did focus almost exclusively on the negatives implications of an absolutist “free communication” philosophy.  For example the subtitle is:

In the ‘deep web’, Freenet software allows users complete anonymity as they share viruses, criminal contacts and child pornography

I was neither surprised nor annoyed that a journalist would want to talk about computer viruses, criminals, and child porn, after all – controversy attracts clicks and lets face it, our newspapers need all the help they can get attracting revenue these days.  Further, it is perfectly legitimate to talk about the fact that freedom of communication implies freedom for people to communicate data and ideas we don’t like.

I was a little surprised, however, that Andy didn’t seem terribly interested in discussing these issues when we spoke by phone – even though I made it very clear that I was happy to and I even tried to steer the conversation in that direction.

Regardless of this slight surprise, I haven’t yet noticed any major errors in it, at least no errors on Andy’s part (although the [sic] after the American spelling of “pedophile” is not exactly in the spirit of cross-Atlantic harmony).  I am curious about how he knew I was a pasty teenager (although he was quite right)!  Not so much now that I’ve been living in Texas for a few years.

I did find this interesting though:

According to the police, for criminal users of services such as Freenet, the end is coming anyway. The PCeU spokesman says, “The anonymity things, there are ways to get round them, and we do get round them.

If, by “the anonymity things” they are referring to stuff like simple referrers, or even just using your browser in “incognito” mode, then they are correct.  But if they are referring to technologies like Freenet and Tor – then either they are mistaken, lying, or they know something about Freenet and Tor that neither I, nor anyone I’ve ever met or heard from, has discovered.  This is extremely unlikely, I know many of the best security people in the world, and none of them work for the British police.

This isn’t to say that identifying a user of software like Freenet or Tor is impossible, but it would require either an impractical expenditure of resources (bugging computers, etc), or for the user to do something like accidentally disclosing their identity on Freenet.  We can guard against many things, but we can’t guard against stupidity 🙂

Anyway, as I said its a pretty good article, and despite its focus on the negative – it will hopefully bring some new users to Freenet.  Read it here: The dark side of the internet

“Next generation routing” was fundamentally sound

Several years ago, in an attempt to improve Freenet’s performance, I came up with a new idea for how to route requests in Freenet.   Previously, Freenet would simply forward a request to a node that contains information similar to what was being sought.

This “next generation routing” algorithm was much smarter.  It would maintain detailed statistics about response times for different neighboring nodes, and forward a given request to whichever neighbor was most likely to provide the fastest response, based on their past performance.  The algorithm is described in-detail on the Freenet website.

We implemented this, in fact, we implemented a much more sophisticated version of this.  It would take into account the latency, throughput, reliability, and other relevant qualities of neighboring nodes, before making its prediction about the response time for each.

Unfortunately, we were never able to get it to work satisfactorily.  At the time, we did not know whether this was due to a fundamental flaw in the concept, or some bug or bugs in the implementation.  As has happened in the past, Freenet’s inherent complexity made diagnosing the problem akin to finding a needle in a haystack.  Isolating problems in P2P networks is especially hard because often the problem doesn’t manifest itself at the level of individual peers, but only at the level of the entire network. This means that the most common debugging technique, isolating the bug through a process of elimination, isn’t effective.

Anyway, this ambitious approach eventually gave way to a much simpler and better understood routing algorithm in Freenet 0.7, which we began in 2005, but we never did figure out whether the fundamental idea for NG routing was sound.

Well, it turns out that it was.  Last year my friend and occasional collaborator Oskar Sandberg (now employed by Google) wrote a paper called Decentralized Search with Random Costs which investigated this, and found that this technique was effective for efficiently routing in a small world network.

Perhaps some day we can revisit this in Freenet, although this time we’ll have to take a much more cautious approach to ensure we don’t wind up in the same “needle in a haystack” situation that we did last time.

Freenet nominated for Sourceforge award

According to Slashdot, Freenet has been nominated for the Sourceforge 2008 community awards as the project ‘Most Likely to be Shutdown By Government Agency’ (along with Tor, Truecrypt, and some others).

I guess its an honor, all publicity is good publicity as they say.  However, I don’t really consider getting shut-down by the US government to be a likely possibility unless there is a serious deterioration in the US political system, and fortunately I think the worst is behind us in terms of the abuses inspired by 9/11/01.

FMS: Spam-proof anonymous message boards on Freenet

The FMS websiteA few weeks ago I started hearing quite a bit of buzz about a new tool called the Freenet Messaging System or FMS.  I went to its website within Freenet (we call them “freesites”), and downloaded it.  Normally downloading and running code from an anonymous system isn’t a good idea, but Freenet makes it easy to digitally sign content, and the author, while anonymous, seems pretty honorable.

If you are familiar with Usenet, feel free to skip the rest of this paragraph.  Usenet is a discussion system that was very popular in the early days of the Internet.  To use Usenet you need a NNTP client, which are a bit like email clients,  and then you can post to newsgroups, forums on particular topics.  NNTP is the protocol used to access Usenet, just as HTTP is the protocol used to access the web, and SMTP is the protocol used to send emails.  Newsgroups have names like alt.humor.puns.  These days the easiest way to use Usenet is probably through Google Groups, which, among other things, provides a web-based interface to Usenet.  A number of dedicated NNTP clients still exist, one of the better ones is Thunderbird, which is primarily an email client created by the Mozilla Foundation, the creators of the Firefox web browser.

FMS evokes some nostalgia because it’s pretty-much Usenet over Freenet, allowing users to read messages posted to online forums, and also to post their own messages. The major difference is that because it is Freenet, everyone can remain anonymous.   Currently FMS  has about 30 boards on topics ranging from science, to religion, to discussion of Freenet and FMS itself. Here is what it looks like in Thunderbird:

freenet on
Uploaded with plasq‘s Skitch!

FMS is not the first such messaging system in Freenet, another popular one is called Frost. Unfortunately, over the past few months Frost has been plagued by a familiar problem on the Internet, spamming. Unlike the Internet, Frost’s spammers are not motivated by financial gain, rather their goal seems to be pure mischief. Whatever their motivation, they’ve rendered Frost next to useless. Freenet’s anonymity makes it next to impossible to prevent spam using the same techniques that are conventionally employed on the Internet.


So how does FMS address this problem?  It’s pretty cool, but first I need to give a quick crash course in how Freenet works.

Freenet is basically a globally distributed “Map” or “Dictionary”.  You can insert data under “keys”, and then someone else, given the appropriate key, can retrieve that data.  Freenet keys are somewhat analogous to URLs on the world wide web, except unlike URLs, they don’t point to the physical location of the data.

Freenet has a few different types of keys, which impose various constraints on the data that can be inserted under them.  The type of key used by FMS is called a “Subspace-Signed Key” or SSK.  The SSK itself contains a cryptographic public key, and any data inserted under a SSK must be signed by the corresponding private key.  An SSK is used much like a file-system directory from which anyone can read, but only the “owner” of the SSK can write.  Websites in Freenet are typically inserted under an SSK so only the author can update them.

Typically, email is “push” – senders push email to your email inbox.  FMS takes the opposite approach, to receive messages from people you must “pull” it from their outbox.  Because user’s outboxes are SSKs, all of a user’s messages are automatically signed and their integrity is checked by Freenet.  With FMS, receiving messages from a particular person is a voluntary act – and the only result of spamming is to flood your own outbox.

So how do users decide whom they should pull from?  FMS creates a “web of trust” between users, where each user indicates how much they trust other users they’ve communicated with. If person A trusts person B, and person B trusts person C, then person A can trust person C – and so on. Here is a representation of the current web of trust in FMS:

messagetrustgraph.png (PNG Image, 9476x11408 pixels) - Scaled (4%)

If a user proves to be untrustworthy, by spamming for example, then users can change their trust rating for that user, and this will propagate through the trust web, so that others quickly stop pulling messages from the spammer’s outbox.

Ok, so how do you join the web of trust in the first place? FMS employs a clever mechanism based on the concept of “thinkcash” or CAPTCHAs. Every FMS user inserts these CAPTCHA tests, which can then be solved by a new user in order of that person to become minimally trusted by the existing user. Basically, you need to prove you are human. This is what this looks like in FMS:

Freenet Message System
Uploaded with plasq‘s Skitch!

FMS is not without its shortcomings.  It is likely that the necessity to pull from the outbox of every user will only scale to a limited point, however FMS is being actively developed, and it is likely that these problems can be overcome in due course.


If you would like to try FMS, go and install Freenet, then click on the link to the Freenet Message System that will appear on the front page, you can download it from there.  Pre-built versions of FMS are provided for Windows and Linux, however if you use a Mac you’ll need to compile it yourself (although this was pretty painless once I discovered I needed to add a -D USE_BUNDLED_SQLITE=ON to the cmake command).

Google donates $18k to Freenet!

You just gotta love Google, we’ve just announced a $18k donation by Google to Freenet. Its hard to believe that its been over 8 years since I started the Freenet project, and almost as hard to believe that we’ve managed to raise enough money in donations to maintain a full-time developer for most of that time (see here if you aren’t familiar with Freenet).

Freenet has also done some favors for Google over the years, for example Freenet was indirectly involved in Google’s hiring of my good friend, and former Freenet contributor, Adam Langley. Also, another Freenetter recently accepted a job with Google, but as he hasn’t started yet I won’t reveal his name.

In other Freenet-related news, on Monday we announced the first release-candidate for Freenet 0.7, the first major release of Freenet to include “darknet” functionality. Now, not only is it extremely difficult for someone (eg. your government) to watch what you are doing with Freenet, but it will be hard for them even to know that you are running Freenet at all.