Czym jest peer-to-peer (P2P)?

W informatyce sieć peer-to-peer (P2P) składa się z grupy urządzeń, które wspólnie przechowują i dzielą się plikami. Każdy uczestnik (węzeł) działa jako indywidualny peer. Zazwyczaj każdy węzeł ma równą moc i wykonuje te same zadania.

W dziedzinie technologii finansowych termin peer-to-peer zazwyczaj odnosi się do wymiany walut lub aktywów cyfrowych za pośrednictwem rozproszonej sieci. Platformy P2P pozwalają kupującym i sprzedającym na bezpośrednie przeprowadzanie transakcji bez potrzeby pośredników. W niektórych przypadkach witryny internetowe mogą również oferować środowisko P2P łączące pożyczkodawców i pożyczkobiorców.

Architektura P2P może być odpowiednia dla wielu różnych przypadków użycia, ale stała się szczególnie popularna w latach dziewięćdziesiątych, kiedy powstały pierwsze programy do udostępniania plików. Dziś sieci P2P są rdzeniem większości kryptowalut, które stanowią dużą część branży blockchain. Obecnie są również wspierane w innych aplikacjach rozproszonego przetwarzania, w tym wyszukiwarkach internetowych, platformach strumieniowych, rynkach elektronicznych i protokole InterPlanetary File System (IPFS).


Jak działa P2P?

W zasadzie systemy P2P są utrzymywane przez rozproszoną sieć użytkowników, która zazwyczaj nie ma centralnego administratora lub serwera, ponieważ każdy węzeł ma kopię plików i działa jako klient oraz serwer dla innych węzłów. W związku z tym każdy węzeł może pobierać pliki z innych węzłów lub przesyłać pliki do innych węzłów. To, co odróżnia sieci P2P od tradycyjnych systemów serwerowych, w których urządzenia pobierają pliki z centralnego serwera.

Urządzenia podłączone do sieci P2P udostępniają pliki przechowywane na swoich dyskach twardych za pomocą aplikacji zaprojektowanych do pośredniczenia w udostępnianiu danych i plików. Użytkownicy mogą również przeszukiwać inne urządzenia podłączone do sieci, aby znaleźć pliki i je pobrać, a gdy jeden z użytkowników pobierze określony plik, może on działać jako źródło tego pliku.

Innymi słowy, gdy węzeł działa jako klient, pobiera pliki z innych węzłów sieci. Ale gdy działa jako serwer, staje się źródłem, z którego inne węzły mogą pobierać pliki. Niemniej jednak w praktyce można wykonywać obie funkcje jednocześnie (na przykład pobierać plik A i przesyłać plik B).

Sieci P2P mają tendencję do bycia szybszymi i bardziej efektywnymi w miarę wzrostu ich bazy użytkowników, ponieważ każdy węzeł przechowuje, przesyła i odbiera pliki. Ponadto ich rozproszona architektura sprawia, że systemy P2P są bardzo odporne na ataki hakerskie, ponieważ sieci P2P nie mają jednego punktu awarii, w przeciwieństwie do tradycyjnych modeli.

Możemy klasyfikować systemy peer-to-peer według ich architektury. Trzy główne typy sieci P2P to: nieuporządkowane, uporządkowane i hybrydowe.


Nieuporządkowane sieci P2P

Nieuporządkowane sieci P2P nie oferują żadnej określonej organizacji węzłów. Uczestnicy komunikują się ze sobą losowo. Te systemy są skuteczne, gdy występuje wysoki poziom aktywności (na przykład wiele węzłów dołącza do sieci i często ją opuszcza).

Mimo że budowa nieuporządkowanych sieci P2P jest łatwa, mogą one wymagać większego zużycia CPU i pamięci, ponieważ zapytania wyszukiwania są wysyłane do jak największej liczby węzłów. Może to prowadzić do zalania sieci zapytaniami, zwłaszcza jeśli istnieje niewiele węzłów oferujących pożądane treści.


Uporządkowane sieci P2P

W przeciwieństwie do tego, uporządkowane sieci P2P oferują zorganizowaną strukturę, jak sugeruje sama nazwa. Dzięki temu węzły mogą efektywnie wyszukiwać pliki, nawet jeśli treści nie są szeroko dostępne. W większości przypadków osiąga się to poprzez wykorzystanie funkcji skrótu (hash functions), które ułatwiają wyszukiwanie w bazie danych.

Mimo że sieci uporządkowane mogą być bardziej efektywne, mają tendencję do oferowania wyższych poziomów centralizacji i zwykle wymagają wyższych kosztów ustawienia i utrzymania. Ponadto sieci uporządkowane są również mniej odporne na wysokie wskaźniki zakłóceń.


Hybrydowe sieci P2P

Hybrydowe sieci P2P łączą tradycyjny model klient-serwer z niektórymi aspektami architektury peer-to-peer. Na przykład projektują centralny serwer, który ułatwia komunikację między peerami.

W porównaniu z dwoma innymi typami sieci peer-to-peer, typ hybrydowy ma tendencję do oferowania ulepszonej ogólnej wydajności. Zazwyczaj łączy kilka kluczowych zalet każdego typu, osiągając jednocześnie wysokie stopnie efektywności i decentralizacji.


Rozproszona i decentralizowana

Mimo że środowisko P2P jest z natury rozproszone, ważne jest, aby zauważyć, że istnieją różne stopnie decentralizacji. Dlatego nie wszystkie sieci P2P są zdecentralizowane.

W rzeczywistości wiele systemów polega na centralnej władzy w celu kierowania aktywnością sieci, co czyni je w pewnym stopniu scentralizowanymi. Na przykład niektóre specjalne systemy P2P do udostępniania plików pozwalają użytkownikom wyszukiwać pliki i pobierać je od innych użytkowników, ale nie są w stanie uczestniczyć w innych operacjach, takich jak zarządzanie wyszukiwaniami.

Ponadto można powiedzieć, że małe sieci kontrolowane przez ograniczoną bazę użytkowników o wspólnych celach mają wyższy stopień centralizacji, mimo że nie ma centralnej infrastruktury sieci.


Rola P2P w blockchainie

Na wczesnych etapach bitcoin, Satoshi Nakamoto zdefiniował go jako „system gotówki elektronicznej peer-to-peer”. Bitcoin został stworzony jako cyfrowa forma pieniądza. Może być przesyłany od użytkownika do użytkownika poprzez sieć P2P, która zarządza rozproszonym rejestrem zwanym blockchainem.

W tym kontekście architektura P2P zakorzeniona w technologii blockchain umożliwia łatwe przesyłanie/transferowanie bitcoinów i innych kryptowalut na całym świecie bez potrzeby pośredników lub centralnego serwera. Każdy może również uruchomić węzeł w blockchainie bitcoin, jeśli chce uczestniczyć w procesie weryfikacji i zatwierdzania bloków.

Dlatego nie ma banków przetwarzających lub rejestrujących transakcje w sieci bitcoin. Zamiast tego blockchain działa jako rozproszony cyfrowy rejestr, który publicznie rejestruje wszystkie działania, aby inni uczestnicy mogli je zobaczyć. W zasadzie każdy węzeł przechowuje kopię blockchaina i porównuje ją z innymi węzłami, aby zapewnić dokładność danych. Sieć szybko odrzuca wszelkie szkodliwe lub nieprawidłowe działania.

W dziedzinie blockchaina kryptowalut, węzły mogą pełnić różnorodne role. Na przykład pełne węzły to te, które zapewniają bezpieczeństwo sieci poprzez weryfikację transakcji zgodnie z zasadami konsensusu systemu.

Każdy pełny węzeł przechowuje kompletną i aktualną kopię blockchaina, co pozwala mu uczestniczyć w wspólnej pracy weryfikacji aktualnego stanu rozproszonego rejestru. Należy jednak zauważyć, że nie wszystkie pełne węzły są reprezentowane przez górników.


Zalety

Architektura peer-to-peer blockchaina oferuje wiele korzyści. Najważniejszą z tych korzyści jest fakt, że sieci P2P zapewniają większe bezpieczeństwo niż tradycyjne aranżacje klient-serwer. Rozproszenie blockchaina na dużą liczbę węzłów czyni go zasadniczo odpornym na ataki typu denial-of-service (DoS), które dotykają wiele systemów.

Ponadto, ponieważ większość węzłów musi osiągnąć stan konsensusu przed dodaniem danych do blockchaina, prawie niemożliwe jest, aby napastnik zmienił dane. Dotyczy to w szczególności dużych sieci, takich jak sieć bitcoin. Mniejsze sieci blockchainowe są bardziej podatne na ataki, ponieważ jedna osoba lub grupa mogą ostatecznie kontrolować większość węzłów (znane jako atak 51% lub atak większości).

W rezultacie rozproszona sieć peer-to-peer w połączeniu z wymaganiami konsensusu większości zapewnia sieciom blockchain stosunkowo wysoką odporność na szkodliwe działania. Model P2P jest jednym z powodów, dla których bitcoin (i inne sieci blockchain) były w stanie osiągnąć to, co nazywa się tolerancją błędu bizantyjskiego.

Oprócz ochrony, jaką zapewnia, użycie architektury P2P w blockchainie kryptowalut sprawia, że jest ona również odporna na cenzurę ze strony władz centralnych. W przeciwieństwie do tradycyjnych kont bankowych, portfele kryptowalutowe nie mogą być zamrożone ani zablokowane przez rządy. Ta odporność rozciąga się również na wysiłki cenzury dokonywane przez prywatne systemy płatności i platformy treści. Niektórzy twórcy treści i sprzedawcy internetowi przyjęli płatności kryptowalutowe jako sposób na uniknięcie zakazów swoich płatności przez zewnętrzne podmioty.


Ograniczenia

Pomimo wielu zalet, korzystanie z sieci P2P w blockchainie ma również pewne potwierdzone ograniczenia.

Ponieważ rozproszony rejestr musi być aktualizowany na każdym węźle uczestniczącym, zamiast aktualizować go na centralnym serwerze, dodawanie transakcji do blockchaina wymaga ogromnych zasobów obliczeniowych. Choć ta procedura zapewnia zwiększone bezpieczeństwo, znacznie obniża wydajność i stanowi jedną z głównych przeszkód w zakresie skalowania i szerokiego przyjęcia. Obecnie entuzjaści kryptografii i deweloperzy blockchain poszukują alternatyw, które mogą być używane jako rozwiązania do skalowania. Przykładami są: Lightning Network, Ethereum Plasma i protokół Mimblewimble.

Jednym z innych potencjalnych ograniczeń są ataki, które mogą wystąpić podczas wydarzeń Hard Fork. Z uwagi na to, że większość sieci blockchain jest zdecentralizowanych i otwartoźródłowych, grupy węzłów mają swobodę kopiowania i modyfikowania kodu oraz oddzielania się od łańcucha głównego, tworząc nową równoległą sieć. Hard Fork jest całkowicie naturalny i nie stanowi zagrożenia sam w sobie, ale jeśli nie zostaną prawidłowo zastosowane określone metody bezpieczeństwa, obie sieci mogą stać się podatne na ataki ponownego przesyłania.

Dodatkowo, rozproszona natura sieci P2P sprawia, że trudno jest je kontrolować i uczynić legalnymi, nie tylko w dziedzinie blockchain. Wiele aplikacji P2P i firm było zaangażowanych w nielegalne działalności i naruszenia praw autorskich.


Zakończenie

Architektura peer-to-peer może być rozwijana i wykorzystywana na wiele różnych sposobów. Jest rdzeniem blockchaina, który uczynił kryptowaluty możliwymi. Architektura P2P zapewnia bezpieczeństwo, decentralizację i odporność na cenzurę poprzez rozproszenie ksiąg transakcji w dużych sieciach węzłów.

Oprócz swojej użyteczności w dziedzinie technologii blockchain, systemy P2P mogą być również wykorzystywane w innych aplikacjach rozproszonego przetwarzania, od sieci wymiany plików po platformy handlu energią.