Co oznacza peer-to-peer (P2P)?
W informatyce sieć peer-to-peer (P2P) definiuje się jako grupę urządzeń, które wspólnie przechowują i udostępniają pliki. Każdy uczestnik (węzeł) działa jako indywidualny partner. Zazwyczaj wszystkie węzły mają tę samą moc i wykonują te same zadania.
W technologii skupiającej się na finansach termin peer-to-peer zwykle odnosi się do wymiany kryptowalut lub aktywów cyfrowych za pośrednictwem sieci rozproszonej. Platformy P2P umożliwiają kupującym i sprzedającym zawieranie transakcji bez konieczności korzystania z pośredników. W niektórych przypadkach strony internetowe mogą również zapewniać środowisko P2P, które łączy pożyczkodawców i pożyczkobiorców.
Architektura P2P może nadawać się do różnych zastosowań, ale stała się szczególnie popularna w latach 90. XX wieku, kiedy powstały pierwsze programy do wymiany plików. Obecnie sieci P2P stanowią podstawę większości kryptowalut i stanowią dużą część branży blockchain. Są one jednak również wykorzystywane w innych aplikacjach do przetwarzania rozproszonego, w tym w wyszukiwarkach internetowych, platformach przesyłania strumieniowego, platformach handlowych online i protokole sieciowym InterPlanetary File System (IPFS).
Jak działa system P2P?
Zasadniczo systemy P2P są utrzymywane przez rozproszone sieci użytkowników. Zazwyczaj nie mają one centralnego administratora ani serwera, gdyż każdy węzeł posiada kopię plików – pełniąc jednocześnie rolę klienta i serwera dla pozostałych węzłów. W ten sposób każdy węzeł może pobierać pliki z innych węzłów lub przesyłać do nich pliki. To właśnie odróżnia sieci P2P od bardziej tradycyjnych systemów klient-serwer, w których urządzenia klienckie pobierają pliki ze scentralizowanego serwera.
W sieciach P2P podłączone urządzenia udostępniają pliki przechowywane na ich dyskach twardych. Korzystając z aplikacji zaprojektowanych do pośredniczenia w udostępnianiu danych, użytkownicy mogą wysyłać zapytania do innych urządzeń w sieci w celu znalezienia i pobrania plików. Od momentu pobrania przez użytkownika określonego pliku może on stanowić jego źródło.
Innymi słowy, gdy węzeł pełni rolę klienta, będzie pobierał pliki z innych węzłów w sieci. Gdy będzie działać jako serwer, stanie się źródłem, z którego inne węzły będą mogły pobierać pliki. W praktyce jednak obie funkcje mogą być realizowane jednocześnie (np. pobranie pliku A i przesłanie pliku B).
Ponieważ każdy węzeł przechowuje, przesyła i odbiera pliki, sieci P2P stają się szybsze i wydajniejsze w miarę wzrostu ich bazy użytkowników. Co więcej, ich rozproszona architektura sprawia, że systemy P2P są wysoce odporne na cyberataki. W odróżnieniu od tradycyjnych modeli, sieci P2P nie posiadają pojedynczego punktu awarii.
Systemy peer-to-peer możemy kategoryzować według ich architektury. Nazywa się trzy główne typy sieci P2P: niestrukturalne, strukturalne i hybrydowe.
Niestrukturalne sieci P2P
Nieustrukturyzowane sieci P2P nie charakteryzują się żadną konkretną organizacją węzłów. Uczestnicy komunikują się ze sobą losowo. Systemy te są uważane za odporne na wysoką aktywność rezygnacji (tj. gdy wiele węzłów często przyłącza się do sieci lub ją opuszcza).
Chociaż są łatwiejsze w budowie, nieustrukturyzowane sieci P2P mogą wymagać większego użycia procesora i pamięci, ponieważ zapytania wyszukiwania są wysyłane do jak największej liczby równorzędnych urządzeń. Prowadzi to do zalewania sieci zapytaniami, zwłaszcza jeśli tylko niewielka liczba węzłów oferuje żądaną treść.
Strukturalne sieci P2P
Natomiast strukturalne sieci P2P charakteryzują się zorganizowaną architekturą, która umożliwia węzłom efektywne wyszukiwanie plików, nawet jeśli ich treść nie jest szeroko rozpowszechniona. W większości przypadków osiąga się to poprzez zastosowanie funkcji skrótu ułatwiających przeszukiwanie baz danych.
Chociaż sieci strukturalne mogą być bardziej wydajne, zwykle charakteryzują się wyższym poziomem centralizacji i zwykle wyższymi kosztami instalacji i konserwacji. Poza tym sieci strukturalne są mniej odporne na wysokie wskaźniki rezygnacji.
Hybrydowe sieci P2P
Hybrydowe sieci P2P łączą konwencjonalny model klient-serwer z niektórymi aspektami architektury peer-to-peer. Na przykład mogą wyznaczyć centralny serwer, który ułatwia połączenie między równorzędnymi urządzeniami.
W porównaniu do pozostałych dwóch typów, modele hybrydowe charakteryzują się zazwyczaj lepszą ogólną wydajnością. Zazwyczaj łączą w sobie niektóre kluczowe zalety każdego podejścia, umożliwiając im jednoczesne osiągnięcie znacznego stopnia wydajności i decentralizacji.
Rozproszone vs. zdecentralizowany
Chociaż architektura P2P jest z natury rozproszona, należy pamiętać, że istnieją różne stopnie decentralizacji. Dlatego nie wszystkie sieci P2P są zdecentralizowane.
W rzeczywistości wiele z nich zależy od organu centralnego, który kieruje działalnością sieci, co czyni je w pewnym stopniu systemami scentralizowanymi. Na przykład niektóre systemy udostępniania plików P2P umożliwiają użytkownikom wyszukiwanie i pobieranie plików od innych urządzeń równorzędnych, ale nie mogą uczestniczyć w innych procesach, takich jak zarządzanie zapytaniami wyszukiwania.
Ponadto stopień centralizacji małych sieci, kontrolowanych przez ograniczoną bazę użytkowników i mających wspólne cele, można uznać za wyższy, pomimo braku scentralizowanej infrastruktury sieciowej.
Rola P2P w Blockchainach
Na wczesnych etapach rozwoju Bitcoina Satoshi Nakamoto zdefiniował go jako „elektroniczny system kasowy typu peer to peer”. Bitcoin powstał jako cyfrowa forma pieniądza. Można go przesyłać od jednego użytkownika do drugiego za pośrednictwem sieci P2P, która zarządza rozproszoną księgą zwaną łańcuchem bloków.
W tym kontekście architektura P2P, nieodłącznie związana z technologią blockchain, umożliwia transfer Bitcoinów i innych kryptowalut na całym świecie, bez konieczności korzystania z pośredników lub jakichkolwiek serwerów centralnych. Dodatkowo każdy może skonfigurować węzeł Bitcoin, jeśli chce wziąć udział w procesie weryfikacji i walidacji bloku.
Dlatego nie ma banków, które przetwarzają lub rejestrują transakcje w sieci Bitcoin. Zamiast tego blockchain działa jak cyfrowa księga, która publicznie rejestruje całą aktywność. Zasadniczo każdy węzeł zawiera kopię łańcucha bloków i porównuje ją z innymi węzłami, aby upewnić się, że dane są dokładne. Sieć szybko odrzuca wszelkie złośliwe działania lub niedokładności.
W kontekście łańcuchów bloków kryptowalut węzły mogą przyjmować różne role. Na przykład węzły pełne to te, które zapewniają bezpieczeństwo sieci poprzez weryfikację transakcji pod kątem reguł konsensusu systemu.
Każdy pełny węzeł utrzymuje kompletną i aktualną kopię blockchainu, co pozwala mu uczestniczyć w zbiorowej pracy nad weryfikacją prawdziwego stanu rozproszonej księgi głównej. Warto jednak zauważyć, że nie wszystkie węzły pełnej walidacji są górnikami.
Zalety
Architektura blockchainów typu peer-to-peer oferuje wiele korzyści. Do najważniejszych należy fakt, że sieci P2P oferują większe bezpieczeństwo niż tradycyjne układy klient-serwer. Rozmieszczenie łańcuchów bloków na dużej liczbie węzłów czyni je praktycznie odpornymi na ataki typu „odmowa usługi” (DoS), które wpływają na wiele systemów.
Podobnie, ponieważ większość węzłów musi osiągnąć konsensus przed dodaniem danych do łańcucha bloków, zmiana danych przez osobę atakującą jest prawie niemożliwa. Jest to szczególnie prawdziwe w przypadku dużych sieci, takich jak Bitcoin. Mniejsze łańcuchy bloków są bardziej podatne na ataki, ponieważ jedna osoba lub grupa może ostatecznie przejąć kontrolę nad większością węzłów (jest to znane jako atak 51 procent).
W rezultacie rozproszona sieć peer-to-peer w połączeniu z wymogiem konsensusu większości zapewnia łańcuchom bloków stosunkowo wysoki stopień odporności na złośliwe działania. Model P2P jest jednym z powodów, dla których Bitcoin (i inne łańcuchy bloków) były w stanie osiągnąć tak zwaną bizantyjską tolerancję na błędy.
Poza bezpieczeństwem, zastosowanie architektury P2P w blockchainach kryptowalut czyni je również odpornymi na cenzurę ze strony władz centralnych. W przeciwieństwie do standardowych kont bankowych, rządy nie mogą zamrażać ani drenować portfeli kryptowalut. Opór ten rozciąga się również na wysiłki cenzury podejmowane przez prywatne platformy przetwarzania płatności i treści. Niektórzy twórcy treści i sprzedawcy internetowi przyjęli płatności w kryptowalutach, aby uniemożliwić osobom trzecim blokowanie ich płatności.
Ograniczenia
Pomimo wielu zalet, korzystanie z sieci P2P na blockchainach ma również pewne ograniczenia.
Ponieważ rozproszone księgi rachunkowe muszą być aktualizowane w każdym węźle, a nie na serwerze centralnym, dodawanie transakcji do łańcucha bloków wymaga dużej ilości mocy obliczeniowej. Chociaż zapewnia to większe bezpieczeństwo, znacznie zmniejsza wydajność i jest jedną z głównych przeszkód, jeśli chodzi o skalowalność i powszechne przyjęcie. Jednak kryptografowie i twórcy blockchainów badają alternatywy, które można wykorzystać jako rozwiązania skalujące. Godne uwagi przykłady obejmują Lightning Network, Ethereum Plasma i protokół Mimblewimble.
Inne potencjalne ograniczenie dotyczy ataków, które mogą wystąpić podczas zdarzeń typu hard fork. Ponieważ większość łańcuchów bloków jest zdecentralizowana i ma otwarte oprogramowanie, grupy węzłów mogą kopiować i modyfikować kod oraz oddzielać się od głównego łańcucha, tworząc nową sieć równoległą. Hard forki są zjawiskiem całkowicie normalnym i same w sobie nie stanowią zagrożenia. Jeśli jednak pewne metody bezpieczeństwa nie zostaną odpowiednio przyjęte, oba łańcuchy mogą stać się podatne na ataki typu „replay”.
Co więcej, rozproszony charakter sieci P2P sprawia, że stosunkowo trudno je kontrolować i regulować, nie tylko w niszy blockchain. Kilka aplikacji i firm P2P było zaangażowanych w nielegalne działania i naruszenia praw autorskich.
Podsumowując
Architekturę peer-to-peer można rozwijać i wykorzystywać na wiele różnych sposobów i stanowi rdzeń łańcuchów bloków, które umożliwiają kryptowaluty. Dystrybuując księgi transakcji w dużych sieciach węzłów, architektura P2P zapewnia bezpieczeństwo, decentralizację i odporność na cenzurę.
Oprócz ich przydatności w technologii blockchain, systemy P2P mogą również służyć innym rozproszonym aplikacjom obliczeniowym, od sieci wymiany plików po platformy handlu energią.