什麼是 Freenet?

I worry about my child and the Internet all the time, even though she's too young to have logged on yet. Here's what I worry about. I worry that 10 or 15 years from now, she will come to me and say 'Daddy, where were you when they took freedom of the press away from the Internet?

--Mike Godwin, Electronic Frontier Foundation

Freenet 是一個免費軟件,您可以通過它匿名的分享文件、瀏覽和發布「Freesite」(只能在 Freenet 網絡中訪問的網站)、在論壇中發帖,不用擔心被審查。Freenet 是去中心化的,很難被攻擊。如果使用它的「暗網(Darknet)」模式,用戶僅會連接到他們的好友,他人很難偵測到這個用戶。

Freenet 節點之間的通訊是加密的,並通過其他節點路由。因此要了解誰在請求某些信息、請求的內容是什麼,是極其困難的。

用戶通過貢獻自己的互聯網帶寬和他們的一部分硬槃空間(稱為「數據存儲(Data Store)”)來儲存文件。根據文件的流行程度,文件會自動被保留或刪除。不流行的文件被刪除,可以騰出更多的空間給流行的文件。文件是加密的,因此用戶無法輕易得知它的「數據存儲”內儲存了什么內容,因此也不會因其被追究責任。聊天論壇、網站和搜索功能,都是基於該分布式「數據存儲”搆建。

Freenet 自誕生起已被下載超過 200 萬次,用來在全世界分發敏感受審查的信息,包括中國和中東國家。Freenet 中的先驅思想和概念也深深影響了學朮界。我們在 2000 年的論文《Freenet:一個分布式匿名信息存儲和接收系統》(Freenet: A Distributed Anonymous Information Storage and Retrieval System), 是 2000 年被引用次數最多的計算機科學論文(來源:Citeseer)。Freenet 也給世界法律和哲學論文帶來了靈感。Ian Clarke,Freenet 的創造者和項目協調人,被 2003 年《麻省理工科技評論 》雜志(MIT's Technology Review)評為世界百強革新者。

在最近的開發中,我們引入了一個重要的功能(在其他類似網絡中鮮見),稱為「暗網(Darknet)”:用戶僅與自己信任的人互相連接,這能夠極大的降低他們的風險,同時仍然能夠通過他們朋友的朋友的朋友來連接到整個 Freenet 網絡。這能夠讓那些「使用 Freenet 即違法”的地方的人們使用 Freenet。政府很難封禁它,用戶無需「翻牆隧道”就可以進入「自由的世界”。

Written by Ian Clarke

  1. A Disclaimer
  2. Suggested prior reading
  3. The importance of the Free flow of information
  4. Censorship and freedom
  5. The solution
  6. Isn't censorship sometimes necessary?
  7. But why is anonymity necessary?
  8. And what of copyright?
  9. But how will artists be rewarded for their work without copyright?
  10. Alternatives to Copyright

The Philosophy Behind Freenet

  1. A Disclaimer

    There are many reasons why people get involved in the Freenet Project. Some share the views outlined in this document; some share variations of these views, which are also served by what we are trying to achieve; and some just enjoy the technical challenge. These are the ideas which motivated me to architect the system in the first place, but not necessarily the views that everyone involved in the Freenet Project holds.

  2. Suggested prior reading

    For this document to make sense, you should probably know what Freenet is. You can get a good overview from What is Freenet?.

  3. The importance of the Free flow of information

    Freedom of speech, in most western cultures, is generally considered to be one of the most important rights any individual might have. Why is the freedom to share ideas and opinions so important? There are several ways to answer this question.

    1. Communication is what makes us human

      One of the most obvious differences between mankind and the rest of the animal kingdom is our ability to communicate sophisticated and abstract concepts. While we constantly discover that animal's communication ability is more sophisticated than previously assumed, it is unlikely that any other animal approaches our own level of ability in this area.

    2. Knowledge is good

      Most people, given the option of knowing something and not knowing something, will choose to have more information rather than less. Wars have been won and lost over who was better-informed. This is because being better-informed allows us to make better decisions, and generally improve our ability to survive and be successful.

    3. Democracy assumes a well informed population

      Many people today live under democratic governments, and those who don't, probably want to. Democracy is an answer to the question of how to create leaders, while preventing them from abusing that power. It achieves this by giving the population the power to regulate their government through voting, yet the ability to vote does not necessarily mean that you live in a democratic country. For a population to regulate their government effectively it must know what their government is doing, they must be well informed. It is a feedback loop, but this loop can be broken if the government has the power to control the information the population has access to.

  4. Censorship and freedom

    Everyone values their freedom, in fact, many consider it so important that they will die for it. People like to think that they are free to form and hold whatever opinions they like, particularly in western countries. Consider now that someone had the ability to control the information you have access to. This would give them the ability to manipulate your opinions by hiding some facts from you, by presenting you with lies and censoring anything that contradicted those lies. This is not some Orwellian fiction, it is standard practice for most western governments to lie to their populations, so much so, that people now take it for granted, despite the fact that this undermines the very democratic principles which justify the government's existence in the first place.

  5. The solution

    The only way to ensure that a democracy will remain effective is to ensure that the government cannot control its population's ability to share information, to communicate. So long as everything we see and hear is filtered, we are not truly free. Freenet's aim is to allow two or more people who wish to share information, to do so.

  6. Isn't censorship sometimes necessary?

    Of course no issue is black and white, and there are many who feel that censorship is a good thing in some circumstances. For example, in some European countries propagating information deemed to be racist is illegal. Governments seek to prevent people from advocating ideas which are deemed damaging to society. There are two answers to this however. The first is that you can't allow those in power to impose "good" censorship, without also enabling them to impose "bad" censorship. To impose any form of censorship a government must have the ability to monitor and thus restrict communication. There are already criticisms that the anti-racism censorship in many European countries is hampering legitimate historical analysis of events such as the second world war.

    The second argument is that this "good" censorship is counter-productive even when it does not leak into other areas. For example, it is generally more effective when trying to persuade someone of something to present them with the arguments against it, and then answer those arguments. Unfortunately, preventing people from being aware of the often sophisticated arguments used by racists, makes them vulnerable to those arguments when they do eventually encounter them.

    Of course the first argument is the stronger one, and would still hold-true even if you didn't accept the second. Basically, you either have censorship, or you don't. There is no middle-ground.

  7. But why is anonymity necessary?

    You cannot have freedom of speech without the option to remain anonymous. Most censorship is retrospective, it is generally much easier to curtail free speech by punishing those who exercise it afterward, rather than preventing them from doing it in the first place. The only way to prevent this is to remain anonymous. It is a common misconception that you cannot trust anonymous information. This is not necessarily true, using digital signatures people can create a secure anonymous pseudonym which, in time, people can learn to trust. Freenet incorporates a mechanism called "subspaces" to facilitate this.

  8. Of course much of Freenet's publicity has centered around the issue of copyright, and thus I will speak to it briefly. The core problem with copyright is that enforcement of it requires monitoring of communications, and you cannot be guaranteed free speech if someone is monitoring everything you say. This is important, most people fail to see or address this point when debating the issue of copyright, so let me make it clear:

    You cannot guarantee freedom of speech and enforce copyright law

    It is for this reason that Freenet, a system designed to protect Freedom of Speech, must prevent enforcement of copyright.

  9. Firstly, even if copyright were the only way that artists could be rewarded for their work, then I would contend that freedom is more important than having professional artists (those who claim that we would have no art do not understand creativity: people will always create, it is a compulsion, the only question is whether they can do it for a living).

    Secondly, it could be questioned whether copyright is effective even now. The music industry is one of the most vocally opposed to enhancements in communication technology, yet according to many of the artists who should be rewarded by copyright, it is failing to do so. Rather it has allowed middle-men to gain control over the mechanisms of distribution, to the detriment of both artists and the public.

  10. Fortunately it won't come to this. There are many alternative ways to reward artists. The simplest is voluntary payment. This is an extension of the patronage system which was frequently used to reward artists prior to copyright, where a wealthy person would fund an artist to allow them to create full-time. The Internet permits an interesting extension of this idea, where rather than having just one wealthy patron, you could have hundreds of thousands, contributing small amounts of money over the Internet.

    We actually practice what we preach in this regard too, on the 15th of March 2001 the Freenet Project started taking donations, and within a week we had collected over $1000.

Current Contributors

Ian Clarke

Freenet is based on Ian's paper "A Distributed Decentralised Information Storage and Retrieval System". Ian started the Freenet Project around July of 1999, and continues to coordinate the project. Learn more about Ian on his personal website.

Matthew Toseland

Matthew has been working on Freenet since before the 0.5 release. His work and that of others has resulted in dramatic improvements to the performance and stability of the network.

Oskar Sandberg

Oskar was also one of the earliest contributors to the Freenet Project, and has made some important theoretical breakthroughs that lead to the beginning of Freenet 0.7, see the papers page.

Florent Daignière

Since 2003, Florent has improved various aspects of the software and performed the project's system administration. In his day job, he is the Technical Director of Matta Consulting, a boutique security consultancy firm and currently works on safepass.me, an Active Directory password filter.

Michael Rogers

Michael has mostly contributed detailed simulations as part of the Google Summer of Code. He has been helpful in designing the new transport layer.

Steve Dougherty

The current release manager. He joined in GSoC 2013 and has been a driving force behind tackling long standing issues in Freenet.

xor

The Developer of the Web of Trust and Freetalk. He worked on the Web of Trust in part-time for one year and is now working as volunteer again.

David (Bombe) Roden

The developer of the site insertion tool jSite and of Sone, the Social Network over Freenet.

Ximin Luo

A debian developer who currently works on packaging Freenet.

Bert Massop

Works on the Freenet core and wherever there is need.

TheSeeker

A long term contributor who, among other things, helps keep the contact between the core developers and users in active subgroups.

Tommy[D]

A Gentoo packager who untangled all the dependencies of Freenet and packaged it cleanly in Gentoo.

Arne Babenhauserheide

The current maintainer of pyFreenet and infocalypse. He also writes articles and tutorials for Freenet.

The translators

A dilligent team of people from various backgrounds who make it possible to ship Freenet and this website in many different languages.

Many more great hackers

This list is missing many freesite authors, plugin writers, and a host of other people who contributed in various ways.

Anonymous Contributors

Eleriseth

Works on Freenet core and communicates via FMS.

Somedude

The developer of the Freenet-based Forum system FMS, of FreenetHG and of FLIP, chat over Freenet.

The folks from Frost

A group of users and programmers who use an old spammable Freenet-based forum system which has been abandoned by most of the core developers. They are active, however, and though it takes time for their contributions to reach to core development, they take part in Freenet development.

Previous Contributors

Thomas Markus

A dutch developer and statistic-enthusiast. He now works at Topicus.Education.

Scott Miller

Scott is responsible for the implementation of much of the cryptography elements within Freenet.

Steven Starr

Steven helps with administration of Freenet Project Inc, and is an advisor to the project on business and publicity matters.

Dave Baker

Dave's main contribution has been Freemail, his Summer of Code project to build a working email-over-Freenet system, as well as some debugging and core work in various places.

Robert Hailey

Robert has helped improve the speed and security of Freenet by finding two major bugs, and has recently contributed some code.

David Sowder

David (Zothar) has helped the Freenet Project as time permits and interest directs, including configuration, statistics and peer management via FCP, the FProxy stats page and Node 2 Node Messages (N2NM/N2NTMs).

And hundreds of others, who either haven't asked to be added here, who prefer to remain nameless, or who we just haven't got around to thanking. Not to mention thousands of users, testers, and donors!

論文

Measuring Freenet in the Wild: Censorship-resilience under Observation (PDF) Observations and measurements on the live Freenet network. Includes suggestions for improvement. This was submitted to PETS 2014.

The Dark Freenet (PDF) Detailed paper about the Freenet 0.7.5 network, as opposed to its routing algorithm, which is detailed in the below papers. Includes some new simulations. This has been submitted to PET 2010.

Video of Small World talk, Berlin, December 2005
This is a video of a talk given by Ian Clarke and Oskar Sandberg at the Chaos Computer Congress in Berlin, December 2005, describing the (then) new architecture for Freenet 0.7. You can also download the slideshow, and the source for the Java demo (requires Java 1.5).

Searching in a Small World (PDF) Oskar Sandberg's licentiate thesis describing a simple decentralized mechanism for constructing small world networks that is inspired by Freenet's original design. Part II of the thesis describes the basis for the new Darknet architecture.

Distributed routing in Small World Networks (PDF) A paper by Oskar Sandberg describing the theoretical basis for the new "Darknet" routing mechanism employed by Freenet 0.7.

Chaos Computer Congress Talk (slideshow)
This is a slideshow for a talk given at the Chaos Computer Congress on 30th Dec 2005 in Berlin, Germany by Ian Clarke and Oskar Sandberg. It described the new "darknet" approach to be employed in Freenet 0.7. A Java demonstration to accompany the talk is also available.

Switching for a small world (PDF) A thesis by Vilhelm Verendel exploring ways to optimise the swapping algorithm.

Protecting Freedom of Information Online with Freenet (PDF) An IEEE Internet Computing article describing the Freenet architecture circa 2002 - probably the best introduction to the theory behind Freenet.

FreeNet White Paper (PDF) Original white paper by Ian Clarke, Division of Informatics, University of Edinburgh 1999.


Attack Resistant Network Embeddings for Darknets (PDF)
A proposal for changing the darknet swapping algorithm which we are still considering (we have some doubts about long-term performance).

A Contribution to Analyzing and Enhancing Darknet Routing (PDF)
A proposal for changing the routing algorithm which we are still considering (the worst case performance i.e. when a block has been lost may be unacceptable).

Presentation: Towards "Dark" Social Networking Services (Strufe et al.) (PDF) An interesting presentation by the group responsible for the two above papers.

Pisces: Anonymous Communication Using Social Networks
An algorithm for setting up onion-like tunnels on darknets.

Routing in the Dark: Pitch Black ( citeseer) (PDF)
A paper describing some attacks on Freenet 0.7's location swapping algorithm. We have solutions for this but they are still being tested.


The most up to date reference is of course the source code, but there is also some useful documentation on the wiki (you may have to search a bit), and most implemented ideas have been discussed in detail on the mailing lists at some point, more recently often in-Freenet forums such as FMS, or the bug tracker hosted by MantisHub.