Sieci Peer-to-Peer
Strona G艂贸wna
Artyku艂y
Sieci Peer-to-Peer

Sieci Peer-to-Peer

艢rednio zaawansowany
Opublikowane Sep 30, 2019Zaktualizowane Nov 16, 2022
7m

Czym s膮 sieci Peer-to-Peer?

W informatyce sieci膮 peer-to-peer (P2P) okre艣la si臋 grup臋 powi膮zanych urz膮dze艅, wsp贸lnie przechowuj膮cych i udost臋pniaj膮cych mi臋dzy sob膮 dane. Ka偶dy uczestnik sieci dzia艂a jako indywidualny w臋ze艂. Zazwyczaj wszystkie w臋z艂y posiadaj膮 tak膮 sam膮 moc oraz wykonuj膮 te same zadania.

W terminologii technologii finansowej termin peer-to-peer odnosi si臋, zazwyczaj, do wymiany kryptowalut lub zasob贸w cyfrowych za po艣rednictwem rozproszonej sieci. Platforma operuj膮ca w stylu P2P umo偶liwia nabywcom i sprzedawcom wykonywanie transakcji bez potrzeby korzystania z po艣rednik贸w. W niekt贸rych przypadkach strony internetowe mog膮 r贸wnie偶 zapewnia膰 otoczenie P2P 艂膮cz膮ce po偶yczkodawc贸w i kredytobiorc贸w.

Architektura P2P znajduje swoje zastosowanie w wielu przypadkach, jednak czasy jej faktycznej 艣wietno艣ci przypadaj膮 g艂贸wnie na lata 90 zesz艂ego stulecia, kiedy to na popularno艣ci zyska艂y programy wymiany plik贸w. Dzi艣 sieci P2P prze偶ywaj膮 sw贸j ponowny rozkwit wraz z zastosowaniem ich u podstaw wszystkich kryptowalut. Stosuje si臋 je r贸wnie偶 w aplikacjach rozproszonego przetwarzania danych, wyszukiwarkach internetowych, strumieniowaniu danych, serwisach handlowych oraz w protokole IPFS.


Jak dok艂adnie dzia艂aj膮 sieci P2P?

Zasadniczo systemy P2P utrzymywane s膮 przez rozproszon膮 sie膰 korzystaj膮cych z nich u偶ytkownik贸w. Zazwyczaj programy te nie posiadaj膮 偶adnego centralnego administratora, ani jednego serwera, poniewa偶 ka偶dy pojedynczy w臋ze艂 (z ang. node) posiada kopi臋 przesy艂anych plik贸w - dzia艂a zar贸wno jako u偶ytkownik jak i serwer dla innych w臋z艂贸w. Powoduje to, 偶e ka偶dy node jest w stanie pobiera膰 pliki z innych w臋z艂贸w oraz przesy艂a膰 do nich pliki. W tym w艂a艣nie zawiera si臋 esencja funkcjonowania sieci Peer-to-Peer.

W sieciach P2P pod艂膮czone urz膮dzenia dziel膮 pliki, przechowywane na ich dyskach twardych. Korzystaj膮c ze specjalnie przygotowanych aplikacji do udost臋pniania danych, u偶ytkownicy, poprzez w艂asny w臋ze艂, mog膮 wysy艂a膰 zapytania do innych node'贸w w celu pobrania lub wys艂ania konkretnych plik贸w. Gdy dany w臋ze艂 ju偶 raz pobierze okre艣lony plik, mo偶e go p贸藕niej przekazywa膰 dalej.

Kiedy w臋ze艂 dzia艂a jako klient - pobiera pliki od innych uczestnik贸w sieci. Lecz, gdy zachowuje si臋 jako serwer, to z jego zasob贸w inny mog膮 pobiera膰 dost臋pne dane. W praktyce, obie z tych funkcji mog膮 by膰 wykonywane w tym samym czasie (na przyk艂ad pobieranie pliku A z jednego w臋z艂a i przesy艂anie pliku B do drugiego).

Z uwagi na to, 偶e ka偶dy w臋ze艂 przechowuje, przesy艂a oraz odbiera pliki, sieci P2P zwykle staj膮 si臋 szybsze i wydajniejsze wraz z rosn膮c膮 baz膮 u偶ytkownik贸w. Dodatkowo, ich rozproszona architektura sprawia, 偶e systemy P2P s膮 niezwykle odporne na ataki cybernetyczne. Dzieje si臋 tak, gdy偶 fizycznie nie istnieje jeden konkretny serwer, kt贸ry mo偶na zaatakowa膰.

Mo偶liwe jest kategoryzowanie sieci peer-to-peer z uwagi na ich budow臋. Trzy g艂贸wne typy to: niezorganizowana, zorganizowana i hybrydowa.


Niezorganizowana sie膰 P2P

Niezorganizowane sieci P2P nie posiadaj膮 偶adnej konkretnej struktury w臋z艂贸w. Komunikacja mi臋dzy u偶ytkownikami odbywa si臋 w spos贸b losowy. Ten typ system贸w P2P uznaje si臋 za odporny na wysoki "churn rate" (tj. kilka w臋z艂贸w cz臋sto 艂膮cz膮cych si臋 z sieci膮, po czym opuszczaj膮cych ni膮).

Chocia偶 艂atwiej jest budowa膰, niezorganizowane sieci P2P mog膮 wymaga膰 wi臋kszego u偶ycia procesora i pami臋ci, poniewa偶 zapytania o pliki s膮 wysy艂ane do jak najwi臋kszej liczby w臋z艂贸w. Takie dzia艂anie cz臋sto powoduje zapychanie si臋 sieci, zw艂aszcza w sytuacji, gdy tylko niewielka liczba node'贸w posiada okre艣lony plik.


Zorganizowana sie膰 P2P

Dla kontrastu, jak sama nazwa m贸wi, zorganizowane sieci P2P posiadaj膮 jasno ustrukturyzowan膮 architektur臋, pozwalaj膮c膮 w臋z艂om na skuteczne wyszukiwanie plik贸w, nawet je艣li nie s膮 one powszechnie dost臋pne. Najcz臋艣ciej dokonuje si臋 tego poprzez zastosowanie聽funkcji haszuj膮cej, u艂atwiaj膮cej przeszukiwanie baz danych.

O ile zorganizowane sieci mog膮 by膰 bardziej efektywne, o tyle charakteryzuj膮 si臋 wy偶szym poziomem centralizacji, a z korzystaniem z nich wi膮偶膮 si臋 wi臋ksze koszty. Poza tym zorganizowane sieci s膮 mniej odporne w obliczu rosn膮cego "churn rate".


Hybrydowe sieci P2P

Hybrydowe sieci P2P 艂膮cz膮 tradycyjny model serwer-klient z niekt贸rymi aspektami architektury peer-to-peer. Na przyk艂ad mo偶liwe jest zaprojektowanie centralnego serwera u艂atwiaj膮cego nawi膮zywanie po艂膮cze艅 mi臋dzy innymi r贸wnorz臋dnymi serwerami.

Por贸wnuj膮c model hybrydowy z dwoma poprzednimi, zazwyczaj wykazuje si臋 on wi臋ksz膮 wydajno艣ci膮. Mieszane P2P 艂膮cz膮 niekt贸re z g艂贸wnych zalet zorganizowanych i niezorganizowanych sieci P2P, osi膮gaj膮c jednocze艣nie znaczn膮 decentralizacj臋 przy wysokiej wydajno艣ci.


Rozproszona a zdecentralizowana

Cho膰 architektura P2P pozostaje z natury rozproszona, nale偶y zauwa偶y膰, 偶e mo偶emy mie膰 do czynienia z r贸偶nymi stopniami decentralizacji. Nie wszystkie sieci P2P s膮 wi臋c zdecentralizowane.聽

W rzeczywisto艣ci wiele system贸w P2P opiera si臋 na centralnym organie kieruj膮cym dzia艂alno艣ci膮 sieciow膮, dzi臋ki czemu s膮 one w pewnym stopniu scentralizowane. Dla przyk艂adu, niekt贸re systemy udost臋pniania plik贸w P2P umo偶liwiaj膮 u偶ytkownikom samo wyszukiwanie i pobieranie plik贸w z w臋z艂贸w, ale nie mog膮 oni uczestniczy膰 w innych procesach, takich jak zarz膮dzanie zapytaniami wyszukiwa艅.

Ponadto, niewielkie sieci kontrolowane przez ograniczon膮 baz臋 u偶ytkownik贸w o wsp贸lnych celach i interesach tak偶e charakteryzuj膮 si臋 wysokim stopniem centralizacji na poziomie "ludzkim", pomimo braku scentralizowanej infrastruktury sieciowej.


Rola P2P w blockchainach

Satoshi Nakamoto zdefiniowa艂 Bitcoina jako鈥淓lektroniczn膮 Got贸wk臋 Peer-to-Peer鈥. Bitcoin powsta艂 jako cyfrowa forma pieni膮dza. Mo偶e by膰 przesy艂any od u偶ytkownika do u偶ytkownika przy pomocy sieci P2P, zarz膮dzaj膮c膮 rozproszon膮 ksi臋g膮 rozrachunkow膮, zwan膮 jako聽blockchain.
W tym kontek艣cie architektura P2P, b臋d膮ca nieod艂膮czn膮 cz臋艣ci膮 technologii blockchain, pozwala na przekazywanie Bitcoin i innych kryptowalut po ca艂ym 艣wiecie, bez potrzeby korzystania z po艣rednik贸w ani 偶adnego centralnego serwera. Ka偶dy jest w stanie skonfigurowa膰 w臋ze艂 Bitcoin, je艣li chcia艂by uczestniczy膰 w procesie聽weryfikacji blok贸w.

Zatem nie ma w Bitcoinie 偶adnych bank贸w lub instytucji przetwarzaj膮cych i rejestruj膮cych transakcje. Blockchain dzia艂a jak cyfrowa ksi臋ga, w kt贸rej zapisywane s膮 wszystkie aktywno艣ci sieciowe, a wgl膮d do niej posiada ka偶dy ch臋tny. Wszystkie z pe艂nych w臋z艂贸w przechowuj膮 kopi臋 ca艂ego 艂a艅cucha blok贸w i nieustannie por贸wnuj膮 go z kopiami posiadanymi przez inne node'y, aby upewni膰 si臋, 偶e wszystkie zapisy w ksi臋dze (dane) s膮 prawid艂owe. Je艣li pojawi si臋 jakakolwiek nieprawid艂owa transakcja, zostaje ona momentalnie odrzucona przez sie膰.

W臋z艂y w sieciach kryptowalut mog膮 przyjmowa膰 wiele聽r贸偶nych r贸l. W臋z艂y posiadaj膮ce kopi臋 ca艂ego blockchaina (nazywane "pe艂nymi w臋z艂ami" - z ang. full nodes) s膮 stra偶nikami bezpiecze艅stwa ca艂ej sieci, co czyni膮 poprzez weryfikacj臋 transakcji i sprawdzanie czy s膮 zgodne z panuj膮cymi zasadami konsensusu.
Ka偶dy pe艂en w臋ze艂 utrzymuje kompletn膮, na bie偶膮co aktualizowan膮 kopi臋 艂a艅cucha blok贸w - umo偶liwia im to wsp贸ln膮 prac臋 nad weryfikacj膮 prawdziwego stanu rozproszonego ksi臋gi. Warto jednak zaznaczy膰, 偶e nie wszystkie w臋z艂y nale偶膮 do聽g贸rnik贸w kryptowalut.


Zalety

Architektura P2P stoj膮ca u podstaw kryptowalut przynosi wiele korzy艣ci. W艣r贸d najwa偶niejszych mo偶emy wymieni膰 bardzo wysoki poziom bezpiecze艅stwa sieci P2P, w stosunku do tradycyjnych rozwi膮za艅 serwerowych. Ci膮g艂a dystrybucja 艂a艅cucha blok贸w po艣r贸d du偶ej liczby w臋z艂贸w sprawia, 偶e s膮 one praktycznie odporne na klasyczne ataki 聽DoS, b臋d膮ce plag膮 wielu system贸w.
Poniewa偶 wi臋kszo艣膰 w臋z艂贸w musi osi膮gn膮膰 bezwzgl臋dny konsensus przed dodaniem jakichkolwiek danych do blockchaina, jest prawie niemo偶liwe, aby potencjalni atakuj膮cy skutecznie doprowadzili do ich zmiany. Dotyczy to w szczeg贸lno艣ci du偶ych sieci, takich jak sie膰 Bitcoin. Mniejsze 艂a艅cuchy blok贸w s膮 bardziej podatne na ataki, poniewa偶 jedna osoba lub grupa mog膮 ostatecznie uzyska膰 kontrol臋 nad wi臋kszo艣ci膮 w臋z艂贸w i w efekcie przeprowadzi膰 聽atak 51%.
W rezultacie rozproszona sie膰 peer-to-peer, z wymogiem konsensusu wi臋kszo艣ciowego, daje blockchainom stosunkowo wysoki stopie艅 odporno艣ci na z艂o艣liwe aktywno艣ci. Model P2P jest jednym z powod贸w, dla kt贸rych Bitcoin (i inne kryptowaluty) by艂 w stanie osi膮gn膮膰聽Tolerancj臋 bizantyjsk膮.

Poza kwestiami zwi膮zanymi z bezpiecze艅stwem, zastosowanie architektury P2P w sieciach kryptowalut sprawia, 偶e s膮 one wysoce odporne na cenzur臋 ze strony w艂adz centralnych. W przeciwie艅stwie do standardowych kont bankowych, portfele kryptowalutowe nie mog膮 zosta膰 zamro偶one lub "wyczyszczone" przez organy rz膮dowe. Wytrzyma艂o艣膰 ta rozci膮ga si臋 na pr贸by cenzurowania podejmowane przez prywatne firmy p艂atnicze oraz platformy udost臋pniania tre艣ci cyfrowych. Niekt贸re niezale偶ne serwisy, a tak偶e sklepy internetowe, ju偶 dzi艣 dodaj膮 do swoich stron mo偶liwo艣膰 dokonywania p艂atno艣ci za pomoc膮 kryptowalut, w celu unikni臋cia mo偶liwych blokad.


Ograniczenia

Pomimo wielu zalet, wykorzystanie sieci P2P w blockchainach wi膮偶e si臋 z pewnymi ograniczeniami.

Poniewa偶 ka偶dy pojedynczy w臋ze艂 w obr臋bie 艂a艅cucha blok贸w wymaga ci膮g艂ej aktualizacji, dodawanie nowych transakcji wi膮偶e si臋 z potrzeb膮 wykorzystania du偶ej zasob贸w mocy obliczeniowej. Co prawda zwi臋ksza to bezpiecze艅stwo sieci, niemniej znacz膮co redukuje wydajno艣膰, staj膮c si臋 g艂贸wnym problemem in偶ynieryjnym dla programist贸w pracuj膮cych nad skalowaniem sieci kryptowalut. Badane s膮 alternatywy, mog膮ce by膰 w przysz艂o艣ci wykorzystane jako rozwi膮zania problemu skalowalno艣ci. Do takich przyk艂ad贸w zaliczamy聽Lightning Network,聽Ethereum Plasma i protok贸艂聽Mimblewimble.
Innym potencjalnym ograniczeniem s膮 ataki, mog膮ce pojawia膰 si臋 w czasie聽hard fork鈥櫭硍. Wi臋kszo艣膰 blockchain贸w jest otwarto-藕r贸d艂owa i zdecentralizowana, grupy w臋z艂贸w mog膮 swobodnie kopiowa膰 i modyfikowa膰 kod, po czym oddzieli膰 si臋 od 艂a艅cucha g艂贸wnego, w celu utworzenia nowej, r贸wnoleg艂ej sieci. Hard forki s膮 ca艂kowicie normalne i nie stanowi膮 zagro偶enia same w sobie. Je艣li jednak nie zostan膮 zachowane odpowiednie standardy bezpiecze艅stwa, w trakcie hard forka, obydwa 艂a艅cuchy mog膮 sta膰 si臋 podatnymi na聽ataki typu replay.

Ponadto rozproszony charakter sieci P2P sprawia, 偶e s膮 one stosunkowo trudne do kontrolowania i regulacji, nie tylko w niszy blockchain. Kilka aplikacji P2P i przedsi臋biorstw zaanga偶owa艂o si臋 w nielegalne dzia艂ania, naruszaj膮c prawa autorskie tw贸rc贸w.


Wnioski ko艅cowe

Architektura Peer-to-Peer mo偶e by膰 rozwijana i stosowana na liczne sposoby. Sieci P2P kryj膮 si臋 u podstaw ka偶dej kryptowaluty. Poprzez dok艂adne rozproszenie ksi膮g transakcyjnych na wiele w臋z艂贸w, architektura P2P zapewnia bezpiecze艅stwo, decentralizacj臋 i odporno艣膰 na cenzur臋.

Opr贸cz ich u偶yteczno艣ci w technologii blockchain, systemy P2P mog膮 r贸wnie偶 s艂u偶y膰 innym rozproszonym aplikacjom komputerowym: od sieci udost臋pniania plik贸w po, na przyk艂ad, platformy handlu nadwy偶kami energetycznymi.