Hyphanet
| Formerly | Freenet (until mid-2023) |
|---|---|
| Company type | Open-source software project |
| Industry | Peer-to-peer network, Internet privacy, Anonymity network |
| Founded | 1999 |
| Founder | Ian Clarke |
Area served | Worldwide |
Key people | Ian Clarke |
| Products | Decentralized distributed data store, anonymous communication tools, plugins for microblogging, media sharing, blogging, version control, spam prevention |
Hyphanet—formerly known as Freenet until mid-2023—is a peer-to-peer network designed to facilitate anonymous communication that resists censorship. It utilizes a decentralized distributed data store to securely save and distribute data, complemented by open-source software tools that enable publishing and interaction without the threat of censorship. Initially created by Ian Clarke, the platform's primary objective is to safeguard freedom of speech online while ensuring strong anonymity protections.
The distributed data store underlying Freenet supports numerous third-party plugins and applications such as microblogging, media sharing, anonymous decentralized version control, blogging, a general web of trust framework for decentralized spam prevention, and Shoeshop, which allows Freenet access via sneakernet. These extensions broaden Freenet’s capabilities in secure communication and private content dissemination.
History
Freenet began as a student project by Ian Clarke at the University of Edinburgh, completed in 1999 as part of his degree requirements. Clarke’s unpublished thesis titled "A distributed decentralized information storage and retrieval system" (1999) formed the foundation for the influential paper "Freenet: A Distributed Anonymous Information Storage and Retrieval System" (2001), co-written with colleagues. This publication became one of the most frequently cited works in computer science during 2002.
The platform achieves Internet anonymity by distributing encrypted fragments of data across participating users’ devices and routing requests through intermediary nodes that forward information without accessing entire files. Unlike conventional routers, Freenet integrates caching mechanisms, robust encryption, and operates independently of centralized servers. This design enables anonymous publishing and retrieval of a wide range of content types.
Release history
Development of Freenet has been ongoing since 2000.
The release of Freenet 0.7 on 8 May 2008 marked a significant overhaul, introducing support for darknet mode. Users could choose between connecting solely to trusted peers (darknet) or an opennet mode linking to any Freenet participant; both modes could run concurrently. Operating exclusively in darknet mode greatly improves resistance to detection. The updated transport protocol accommodates communication over restricted paths typical in mesh networking, following a small-world topology. Moreover, the protocol transitioned from using TCP to UDP, facilitating quicker message delivery and enabling UDP hole punching for peer connections.
Freenet 0.7.5, launched on 12 June 2009, brought enhancements including reduced memory consumption, faster content insertion and retrieval speeds, an improved FProxy web interface for browsing freesites, numerous bug fixes, usability improvements, and a new installer tailored for Windows systems.
Build 1226, released on 30 July 2009, incorporated critical security upgrades aimed at defending against network-level attacks and physical seizure of devices.
Build 1468, issued on 11 July 2015, removed reliance on the db4o database and introduced an optimized interface for the Web of Trust plugin, which enhances spam resistance.
While initially dependent on Java, by 2011 Freenet became compatible with OpenJDK, a free and open-source Java implementation.
On 11 February 2015, Freenet was honored with the SUMA-Award for its "protection against total surveillance," acknowledging its dedication to privacy and secure digital communication.
Features and user interface
Japanese peer-to-peer file-sharing applications such as Winny, Share, and Perfect Dark were influenced by Freenet, distinguishing themselves from platforms like Bittorrent and emule. Freenet separates its network architecture and communication protocol from the way users interact with it, offering several methods of access. The most straightforward approach is FProxy, which is built into the node software and provides a web-based interface for exploring freesites—websites hosted within Freenet rather than on conventional servers. Besides browsing, FProxy manages configuration settings and node operation. Additional tools or plugins allow for alternative interaction styles, including forum-like environments or classic P2P file-sharing formats.
Freenet’s HTTP interface permits access solely to content uploaded into its own network, making it more comparable to Tor's onion services than to proxy systems such as Tor's proxy.
Emphasizing free speech and user anonymity, Freenet safeguards both those who upload and those who download data. Uploaded files are divided into smaller segments distributed across multiple nodes; download requests locate these fragments and reassemble the original content. Each participating node contributes storage capacity and bandwidth to route these requests, reinforcing the decentralized nature of the network.
To preserve anonymity, requests for content pass through multiple intermediary nodes, preventing direct links between the requester and the data holder. This routing method increases bandwidth consumption overall and may reduce transfer speeds, particularly for content that is infrequently accessed.
Since version 0.7, Freenet offers two security configurations: opennet, which connects users with random peers, and darknet, which links only trusted contacts through exchanged public keys. Users can operate both modes concurrently.
Content
The creators of Freenet contend that genuine freedom of expression necessitates absolute anonymity and that the platform’s positive applications surpass any misuse. They argue that free speech does not conflict with other societal concerns because information itself is not criminal. Freenet ensures no entity can impose restrictions or judgments on data, guaranteeing that no authority determines what content is permissible. In contrast to many governments that censor communications, Freenet strives to remove centralized control over information dissemination.
Due to its focus on anonymity, monitoring Freenet’s usage within authoritarian regimes is challenging. The group Freenet China promoted the software in China starting in 2001 by distributing it via email and physical media after their website was blocked. By 2002, they reportedly had several thousand committed users. Nevertheless, around the 2010s, access to Freenet’s opennet traffic was blocked in China.
Technical design
Freenet stores documents accessible through unique keys, resembling HTTP but engineered for high resilience without relying on centralized servers or control by any single person or organization—including its developers. The software comprises over 192,000 lines of code. Data is encrypted and dispersed across numerous nodes, making it difficult to trace content originators, requesters, or storage points—thereby protecting user anonymity and complicating censorship efforts.
Encryption of stored content also means node operators cannot ascertain what data they host, providing plausible deniability. When combined with relayed requests, this mechanism may offer node operators legal protection under safe harbor provisions. Freenet’s developers cite the Electronic Frontier Foundation’s view that an inability to filter content constitutes a stronger legal defense.
Distributed data caching and storage
Similar to Winny, Share, and Perfect Dark, Freenet not only facilitates data transmission but also acts as an extensive distributed cache by storing information. Each participating node dedicates a configurable amount of disk space—commonly several gigabytes or more—for this purpose.
Files are divided into smaller segments with redundant copies created through Forward error correction to ensure fault tolerance. These segments are managed independently, allowing fragments of a single file to be distributed across multiple nodes.
Freenet distinguishes itself from platforms like eMule or BitTorrent through the following characteristics:
- Users "insert" files or updates into the network.
- After insertion, the originating node may disconnect; the content remains accessible since it is replicated on numerous nodes.
This architecture provides robust reliability and anonymity because data persists even when the initial uploader is offline, stored as encrypted blocks dispersed anonymously among various hosts.
A notable constraint is that no individual node permanently retains any specific data segment. If certain data is seldom requested, nodes will eventually remove older blocks to reclaim storage capacity, causing the network to effectively "forget" rarely accessed content. Due to Freenet’s anonymous framework, data cannot be deleted by any owner; removal happens solely when users cease requesting the content.
Network
Every participant runs Freenet software that operates as a node, linking with others to create a large-scale, dynamically sized peer network. Some nodes fulfill end-user requests for documents, while others primarily route data traffic. All nodes interact identically—there are no designated clients or servers—and their value is measured exclusively by their ability to insert and retrieve data, unlike P2P systems that rely on sharing ratios.
Freenet functions as a small world network over complex underlying infrastructures such as the Internet (Internet Protocol). Each node maintains knowledge of only a subset of its neighbors, yet any node can connect to any other without hierarchical structure. Messages are forwarded from neighbor to neighbor until they reach their destination; importantly, each node does not know whether its neighbor is the final recipient or merely an intermediary, thereby enhancing user anonymity.
Nodes keep a datastore containing documents indexed by keys for retrieval and maintain routing tables that record other nodes’ effectiveness in locating keys.
Protocol
The Freenet protocol utilizes a key-based routing approach similar to distributed hash tables but extensively redesigned in version 0.7. Earlier iterations employed heuristic routing, where requests were directed based on prior successful key lookups or estimated response speeds. Successful queries could establish new downstream links while outdated ones were discarded in a process called "path folding," which was essential for routing efficiency.
Version 0.7 introduced two operational modes: "opennet," which resembles but simplifies earlier methods, and "darknet," where connections are manually formed among trusted peers. The darknet mode enhances security against external threats at the cost of reduced convenience.
In this revised system, each node occupies a position between 0 and 1 on a conceptual scale. When requesting a key, a node first searches its local store; if missing, it forwards the request toward the node whose location is closest to the hashed key value. This forwarding continues until the data is located, no further nodes remain available, or a predefined hop limit is reached. Retrieved data is cached along the path, eliminating reliance on a single source and improving resistance to censorship. Document insertion follows an analogous routing procedure, storing data unless an identical key already exists.
Freenet’s darknet forms a small-world topology with nodes adjusting their positions via the Metropolis–Hastings algorithm to optimize proximity to neighbors. This structure targets efficient data retrieval within roughly <math>O\big([\log(n)]^2\big)</math> hops but does not guarantee success.
Once data is found or the hop count limit is exceeded, responses travel back along the recorded request path. Intermediate nodes may cache the document during this return journey, reducing bandwidth consumption and strengthening censorship resistance by distributing stored content across multiple locations.
Effect
At the outset, darknet node locations are assigned without a specific pattern, resulting in essentially random routing of requests. In contrast, opennet connections are established through join requests that enhance the network's efficiency if it is already well-structured. Consequently, data distribution in a newly launched Freenet begins in a somewhat arbitrary manner.
Over time, as darknet location exchanges and opennet path folding occur, nodes that are physically near one another tend to acquire nearby locations. This causes data with similar keys to be stored on the same or closely related nodes. The outcome is a self-organizing, distributed cluster formation where nodes become specialized in handling related segments of the key space. Numerous such clusters coexist, with documents replicated based on how frequently they are accessed.
The interplay between clustering forces (arising from shared proximity data) and cluster-dispersing forces (due to local caching) reaches an equilibrium influenced by data demand: infrequently accessed content becomes concentrated on dedicated nodes, while popular items are widely replicated. This automatic duplication aids in alleviating traffic congestion. In a fully developed network of size n, intelligent routing allows document retrieval to occur on average within roughly log(n) steps.
Keys
Freenet employs keys derived from hashes without any notion of semantic closeness, which helps avoid bottlenecks caused by highly popular subjects.
The system primarily uses two key varieties: Content Hash Keys (CHK) and Signed Subspace Keys (SSK). A specialized form of SSKs called Updatable Subspace Keys (USK) incorporates version control for secure content updates.
A CHK is generated by applying the SHA-256 hash function to an encrypted document, enabling nodes to verify the integrity of data by matching hashes. CHKs contain the essential binary content for delivery and guarantee tamper resistance; any modification is immediately detectable. Additionally, CHKs minimize redundancy since identical content shares the same CHK, allowing multiple sites to efficiently reference large files.
SSKs utilize public-key cryptography, currently based on the DSA. Documents signed with SSKs can be authenticated by nodes to prevent unauthorized alterations. SSKs facilitate verifiable pseudonymous identities and permit secure insertion of multiple documents by a single user. Files under SSKs are effectively immutable because duplicate names cause collisions. USKs resolve this limitation by including version numbers, which enable update notifications for keys that have been bookmarked.
Another SSK variant, the Keyword Signed Key (KSK), derives key pairs from human-readable strings. KSKs allow document retrieval and decryption only if the requester knows the corresponding string, providing more user-friendly but comparatively less secure URIs.
Scalability
A network is considered scalable if its performance remains consistent as it expands. Freenet’s scalability is still under assessment; similar network designs have demonstrated logarithmic scaling behavior. Research suggests that Freenet can locate data within <math>O(\log^2 n)</math> hops on a small-world network model encompassing both opennet and darknet configurations, though this excludes caching advantages for popular items. Nevertheless, evaluating scalability demands an extremely large network size, and Freenet’s security mechanisms complicate precise performance measurement. At present, Freenet’s scalability has yet to be conclusively validated.
Darknet versus opennet
Starting with version 0.7, Freenet incorporates support for both "darknet" and "opennet" connection types. Opennet connections are established automatically for activated nodes, whereas darknet connections require manual setup between trusted parties—users who are considered reliable and unlikely to compromise their Freenet node. While opennet prioritizes user convenience, darknet connections enhance protection against adversaries targeting the network and help conceal user involvement from entities such as authoritarian regimes.
The principal breakthrough in Freenet 0.7 lies in its ability to facilitate a darknet of global scale, potentially accommodating millions of participants. This contrasts with earlier darknet implementations like WASTE, which were confined to small, isolated clusters. This expansion exploits the small-world phenomenon inherent in human social networks to discover short communication paths between users—a concept introduced by Ian Clarke alongside mathematician Oskar Sandberg at DEF CON 13. The routing protocol is capable of functioning over a hybrid of opennet and darknet links, enabling users with limited trusted connections to maintain adequate network access while enjoying some benefits of darknet security. As a result, smaller darknets that include some members connected via opennet become fully integrated within Freenet, granting universal content accessibility regardless of connection mode, except for isolated darknet segments connected solely through a single hybrid node.
Tools and applications
Unlike many peer-to-peer platforms, Freenet is designed with modularity and provides an API known as the Freenet Client Protocol (FCP). This API allows external developers to build services such as message boards, file distribution systems, or online chat applications.
Communication
Freenet Messaging System (FMS)
- FMS was created to overcome challenges found in Frost, including issues like denial of service and spam, by implementing trust lists where users only retrieve messages from verified identities. Developed anonymously, FMS is accessible through its dedicated freesite within Freenet but does not maintain an official presence on the Internet. It incorporates features such as randomized posting delays, supports multiple user identities, and differentiates trust levels between posts and trust lists themselves. Written in C++, FMS operates independently from Freenet's core yet communicates via FCP.
Frost
- Frost facilitates straightforward file sharing but remains susceptible to spam and denial-of-service attacks. It can be found on SourceForge and its associated freesite; however, it lacks formal endorsement from Freenet's development team. Developed in Java, Frost runs as a separate application interfacing through FCP.
Sone
- Sone provides a more user-friendly interface inspired by Facebook's design, featuring public anonymous discussions and image galleries. It offers an API that enables integration with other software and supports comment functionality for static websites on the conventional Internet. Sone broadens Freenet’s social networking tools by delivering accessible features.
Utilities
jSite
- jSite functions as a tool for uploading websites while managing key handling and file transfers.
Infocalypse
- Infocalypse is an add-on for the distributed version control system Mercurial. It streamlines data requests to improve efficiency and supports secure repository operations by re-uploading most data without necessitating access to the repository owner's private keys.
Libraries
FCPLib
- FCPLib, standing for Freenet Client Protocol Library, is a compiled C++ library designed for cross-platform use, enabling data storage and retrieval within Freenet. It is compatible with Windows NT/2000/XP, Debian, BSD, Solaris, and macOS environments.
lib-pyFreenet
- lib-pyFreenet offers Freenet capabilities to applications developed in Python. This library is employed by Infocalypse.
Vulnerabilities
Authorities have asserted that they have penetrated Freenet's opennet to unmask user identities; however, no technical proof has been publicly presented. Law enforcement investigations into illicit content have reportedly tracked Freenet activity, with certain arrests attributed to flawed methodologies such as the BlackICE project, which faced criticism due to unreliable data and high false positive rates.
In the 2017 Canadian legal case R. v. Owen, it was established that law enforcement operates nodes running modified versions of Freenet software aimed at detecting users who access illegal materials. This confirms an active policing presence within the network.
- Routing Table Insertion (RTI) Attack
- This attack targets the routing table framework of Freenet, posing risks to the network’s structural integrity.
Notability
Freenet has attracted widespread attention from major media outlets including The New York Times, CNN, 60 Minutes II, the BBC, and The Guardian. It was honored with the SUMA-Award in 2014 for its role in "protection against total surveillance".
Freesite
A "freesite" refers to a static website hosted on the Freenet platform, constructed using HTML without dynamic features such as server-side scripting or databases. The Freenet client may remove code snippets that could compromise user anonymity, including components that attempt to access external internet resources.
See also
- Peer-to-peer web hosting
- Rendezvous protocol
- Anonymous P2P
- Crypto-anarchism
- Cypherpunk
- Distributed file system
- Freedom of information
- Friend-to-friend
Comparable software
- GNUnet
- I2P
- InterPlanetary File System
- Java Anon Proxy (JonDonym)
- Osiris
- Perfect Dark – the successor to Share and Winny, establishing a decentralized anonymous data repository
- Tahoe-LAFS
- ZeroNet
Further reading
External links
- Free file transfer software
- Free file sharing software
- Distributed file systems
- Anonymous file sharing networks
- Anonymity networks
- Application layer protocols
- Distributed data storage systems
- Distributed data storage
- Distributed data structures
- File sharing
- Free software programmed in Java (programming language)
- Cross-platform software
- Beta software
- Internet properties established in 2000
- 2000 software
- Key-based routing
- Overlay networks