Freenet jest to całkowicie zdecentralizowana, nieposiadająca jakiegokolwiek serwera sterującego ruchem lub przechowującego rejestr adresów globalna sieć wymiany plików. Opiera się na architekturze peer-to-peer (P2P), której głównymi cechami jest równorzędność uczestników (poszczególnych węzłów sieci) oraz fakt, że każdy z uczestników jest zarówno dostawcą (treści, przepustowości, mocy obliczeniowej lub powierzchni dyskowej), jak i jej konsumentem. Jest to sieć skalowalna, odporna na duże obciążenia i dużą liczbę użytkowników. Freenet nie podlega kontroli żadnej osoby, organizacji, w tym samych programistów i dostawców oprogramowania. Napisany został w języku Java, a więc może funkcjonować na komputerach z dowolnym systemem operacyjnym. Pomysłodawcą i autorem jest Ian Clarke, który stworzył koncepcję Freenetu w 1999 roku jako pracę promocyjną studiując na Uniwersytecie w Edynburgu. Projekt rozwijany jest od marca 2000 roku.

Ideologiczną przesłankę stworzenia sieci Freenet był pogląd, że prawdziwa, nieograniczona wolność słowa może być realizowana wyłącznie w warunkach anonimowości oraz, że informacja nie może być nielegalna. 

Działanie sieci jest następujące: połączone w sieć komputery są równorzędne i każdy z nich jest jednocześnie serwerem danych (węzłem komunikacyjnym); jest to topologia siatki (full mesh), każdy z użytkowników, instalując Freenet, udostępnia część przestrzeni swojego dysku twardego na potrzeby działania całości sieci. Przestrzeń ta jest ściśle odizolowana od reszty zasobów znajdujących się na komputerze. Służy ona do przechowywania wprowadzonych do sieci danych oraz do ich transferu. Użytkownik nie ma możliwości sprawdzenia co jest zdeponowane, a także przesyłane przez jego komputer. Freenet posiada tą przewagę nad sieciami peer-to-peer (P2P), że użytkownik wprowadziwszy do sieci plik traci kontrolę nad jego lokalizacją; plik znaleźć się może w dowolnych miejscach, najczęściej więcej niż jednym. Dane, w losowych interwałach są automatycznie i losowo przenoszone z jednego komputera na inny, zaś pobieranie danych nigdy nie odbywa się bezpośrednio, lecz przez inne węzły sieci.

Do zasadniczych zalet Freenetu należą: prywatność (można dowiedzieć się kim jesteś, lecz nie co robisz); odporność na cenzurę (usuwanie i filtrowanie treści); autooptymalizacja (im częściej zasób jest pobierany, tym więcej jest tworzonych jego kopii); odporność na ataki typu odmowa dostępu usługi (DDoS); skalowalność (możliwe częste odłączanie i znikanie poszczególnych węzłów, wydajność również przy znacznej liczbie węzłów). Z kolei do wad Freenetu zaliczymy: powolne działanie; brak wyszukiwarek (istniejące wyszukiwarki nie dają relewantnych wyników); ubogie graficznie treści; coraz mniejsze zainteresowanie; możność skanowania adresów komputerów biorących udział w sieci Freenet; konieczność samodzielnego i na ogół pozainternetowego poszukiwania kluczy do zasobów.

We Freenecie brak jest klasycznie rozumianych adresów, funkcjonują natomiast tak zwane klucze, które identyfikują nie tyle miejsca (bo te są zmienne i rozproszone), co wskazują na określone zasoby.

Istnieją cztery odmiany takich kluczy:

1. CHK (Content Hash Key) – klucz wykorzystywany we Freenecie najpowszechniej, służy jako podstawa dla pozostałych kluczy. Przeznaczony dla danych, które nie będą podlegały zmianom (aktualizacjom).

2. SSK (Signed Subspace Key) – klucz przeznaczony dla danych aktualizowanych (zmiennych w czasie). Implementuje mechanizm pseudonimity umożliwiający anonimowe aktualizowanie strony z jednoczesną możliwością, że zmiana została dokonana przez określonego użytkownika, a nie innego, podszywającego się.

3. KSK (Keyword Signed Key) – klucz ten generowany jest z klucza SSK, jest to adres składający się ze znaków (rodzaj, liczba) łatwych do zapamiętania dla człowieka.

4. USK (Updateable Subspace Key) – klucz wykorzystywany w sytuacji, gdy interesuje nas nie tylko możliwość aktualizacji danych (jak powyżej), lecz również odczytywanie kolejnych wersji zasobów oraz ewentualnie ich subskrybowanie.

 

[D. Mider]