Freenet

Wstępnie, lokalizacje w Darknecie są rozmieszczone losowo. Oznacza to, że routing żądań jest zasadniczo losowy. W Opennecie połączenia są ustanawiane przez żądanie dołączenia, które zapewnia zoptymalizowaną strukturę sieci, jeśli istniejąca sieć jest już zoptymalizowana. Tak więc dane w nowo uruchomionym Freenecie będą rozmieszczone nieco losowo.

W miarę postępu zamiany lokalizacji (w Darknecie) i składania ścieżek (w Opennecie), węzły, które są blisko siebie będą miały coraz bliższe lokalizacje, a węzły, które są daleko będą miały odległe lokalizacje. Dane o podobnych kluczach będą przechowywane na tym samym węźle.

W rezultacie sieć samoorganizuje się w rozproszoną, zgrupowaną strukturę, w której węzły mają tendencję do przechowywania elementów danych, które są blisko siebie w przestrzeni kluczy. Prawdopodobnie będzie wiele takich klastrów w całej sieci, każdy dany dokument będzie replikowany wiele razy, w zależności od tego, jak często jest używany. Jest to rodzaj „spontanicznego łamania symetrii”, w którym początkowo symetryczny stan (wszystkie węzły są takie same, z losowymi kluczami początkowymi dla siebie nawzajem) prowadzi do wysoce asymetrycznej sytuacji, z węzłami specjalizującymi się w danych, które mają blisko spokrewnione klucze.

Istnieją siły, które mają tendencję do tworzenia klastrów (współdzielone dane o bliskości rozprzestrzeniają się w całej sieci), oraz siły, które mają tendencję do rozbijania klastrów (lokalne buforowanie często używanych danych). Siły te będą różne w zależności od tego, jak często dane są używane, tak więc rzadko używane dane będą miały tendencję do znajdowania się tylko na kilku węzłach, które specjalizują się w dostarczaniu tych danych, a często używane elementy będą szeroko rozprzestrzenione w całej sieci. Ten automatyczny mirroring przeciwdziała okresom, w których ruch sieciowy staje się przeciążony, a ze względu na inteligentny routing w dojrzałej sieci, sieć o rozmiarze n powinna wymagać średnio tylko log(n) czasu na pobranie dokumentu.

KeysEdit

Keys to hashe: nie ma pojęcia bliskości semantycznej, gdy mówimy o bliskości klucza. Dlatego nie będzie korelacji między bliskością klucza a podobną popularnością danych, jak mogłoby być, gdyby klucze wykazywały jakieś semantyczne znaczenie, co pozwoli uniknąć wąskich gardeł spowodowanych przez popularne tematy.

Istnieją dwie główne odmiany kluczy używanych we Freenecie, Content Hash Key (CHK) i Signed Subspace Key (SSK). Podtypem SSK jest Updatable Subspace Key (USK), który dodaje wersjonowanie, aby umożliwić bezpieczną aktualizację treści.

A CHK jest skrótem SHA-256 dokumentu (po zaszyfrowaniu, które samo zależy od skrótów tekstu jawnego) i dlatego węzeł może sprawdzić, czy zwrócony dokument jest poprawny poprzez jego zhashowanie i sprawdzenie skrótu względem klucza. Ten klucz zawiera mięso danych na Freenet. Zawiera on wszystkie bloki danych binarnych, które mają być dostarczone do klienta w celu ponownego złożenia i odszyfrowania. CHK jest z natury unikalny i zapewnia odporność na manipulacje. Wrogie węzły zmieniające dane pod CHK zostaną natychmiast wykryte przez następny węzeł lub klienta. CHK redukują również nadmiarowość danych, ponieważ te same dane będą miały ten sam CHK i kiedy wiele stron odwołuje się do tych samych dużych plików, mogą one odwoływać się do tego samego CHK.

SSK są oparte na kryptografii klucza publicznego. Obecnie Freenet używa algorytmu DSA. Dokumenty wstawiane w ramach SSK są podpisywane przez wstawiającego, a podpis ten może być zweryfikowany przez każdy węzeł, aby zapewnić, że dane nie zostały naruszone. SSK mogą być używane do ustanowienia weryfikowalnej pseudonimowej tożsamości na Freenet i pozwalają na bezpieczne wstawianie wielu dokumentów przez jedną osobę. Pliki wstawione za pomocą SSK są efektywnie niezmienne, ponieważ wstawienie drugiego pliku o tej samej nazwie może spowodować kolizje. USK rozwiązują ten problem poprzez dodanie do kluczy numeru wersji, który jest również wykorzystywany do powiadamiania o aktualizacjach kluczy zarejestrowanych jako zakładki w interfejsie WWW. Innym podtypem SSK jest Keyword Signed Key, czyli KSK, w którym para kluczy jest generowana w standardowy sposób na podstawie prostego, czytelnego dla człowieka ciągu znaków. Wstawienie dokumentu przy użyciu KSK pozwala na odszukanie i odszyfrowanie dokumentu wtedy i tylko wtedy, gdy żądający zna ciąg znaków czytelny dla człowieka; pozwala to na stosowanie wygodniejszych (ale mniej bezpiecznych) identyfikatorów URI, do których użytkownicy mogą się odwoływać.

Leave a Reply