Vysvětlení peer-to-peer sítí
Domů
Články
Vysvětlení peer-to-peer sítí

Vysvětlení peer-to-peer sítí

Pokročilí
Zveřejněno Sep 30, 2019Aktualizováno Nov 16, 2022
7m

Co je peer-to-peer (P2P)?

V informatice se peer-to-peer (P2P) síť skládá ze skupiny zařízení, která společně ukládají a sdílí soubory. Každý účastník (uzel) vystupuje jako samostatný člen (peer) sítě. Všechny uzly mají obvykle stejné pravomoci a plní stejné úkoly.

Ve finančnictví termín peer-to-peer obvykle označuje směnu kryptoměn nebo digitálních aktiv prostřednictvím distribuované sítě. P2P platforma umožňuje kupujícím a prodávajícím realizovat obchody bez potřeby zprostředkovatelů. V některých případech mohou weby také zprostředkovávat P2P prostředí, které spojuje věřitele a dlužníky.

P2P architektura má řadu různých možností využití, ale prosadila se především v 90. letech minulého století, kdy vznikly první programy ke sdílení souborů. P2P sítě jsou dnes základem většiny kryptoměn a tvoří velkou část blockchainového odvětví. Využívají se ale i v dalších aplikacích pro distribuované výpočty, včetně webových vyhledávačů, streamovacích platforem, online tržišť a webového protokolu IPFS (meziplanetární souborový systém).


Jak P2P funguje?

P2P systém je v podstatě spravován distribuovanou sítí uživatelů. Ta obvykle nemá centrálního správce ani server, protože kopii souborů drží každý uzel – pro ostatní uzly funguje jako klient i jako server. Každý uzel tak může z jiných uzlů stahovat soubory nebo jim je nahrávat. Tím se P2P sítě liší od tradičnějších systémů klient-server, kdy klientská zařízení stahují soubory z centralizovaného serveru.

Připojená zařízení sdílí na P2P sítích soubory, které jsou uložené v jejich úložišti. Uživatelé mohou pomocí softwarových aplikací určených ke zprostředkování sdílení dat vyhledávat a stahovat soubory z jiných zařízení v síti. Jakmile uživatel daný soubor stáhne, může fungovat jako zdroj tohoto souboru.

Jinými slovy, když uzel funguje jako klient, stahuje soubory z jiných síťových uzlů. Když ale funguje jako server, je zdrojem, ze kterého mohou ostatní uzly stahovat soubory. V praxi je ale možné provádět obojí současně (např. stahování souboru A a nahrávání souboru B).

Vzhledem k tomu, že každý uzel ukládá, přenáší a přijímá soubory, stávají se P2P sítě s rostoucí uživatelskou základnou zpravidla rychlejší a efektivnější. Díky distribuované architektuře jsou navíc P2P systémy velmi dobře odolné vůči kybernetickým útokům. Na rozdíl od tradičních modelů nemají P2P sítě jediný bod selhání.

Peer-to-peer systémy můžeme dělit podle jejich architektury. Třemi hlavními typy jsou nestrukturované, strukturované a hybridní P2P sítě.


Nestrukturované P2P sítě

Nestrukturované P2P sítě své uzly nijak specificky neorganizují. Účastníci mezi sebou komunikují náhodně. Tyto systémy jsou považovány za odolné proti vysoké fluktuaci (tj. častému připojování a odpojování síťových uzlů).

Přestože se nestrukturované P2P sítě budují snadněji, mohou mít vyšší nároky na procesor a paměť, protože vyhledávací dotazy se rozesílají co největšímu počtu účastníků sítě. To má tendenci zaplavovat síť dotazy, obzvlášť pokud požadovaný obsah sdílí jen malý počet uzlů.


Strukturované P2P sítě

Strukturované P2P sítě naopak mají organizovanou architekturu, která uzlům umožňuje efektivně vyhledávat soubory, i když daný obsah není široce dostupný. Ve většině případů k tomu používají hashovací funkce, které usnadňují vyhledávání v databázi.

Strukturované sítě sice mohou být efektivnější, ale mívají vyšší míru centralizace a obvykle vyžadují vyšší náklady na zřízení a údržbu. Kromě toho jsou strukturované sítě méně odolné proti vysoké fluktuaci.


Hybridní P2P sítě

Hybridní P2P sítě kombinují obvyklý model klient-server s některými aspekty peer-to-peer architektury. Příkladem může být centrální server, který zprostředkovává spojení mezi účastníky sítě.

Ve srovnání s ostatními dvěma typy mají hybridní modely lepší celkový výkon. Obvykle kombinují některé z hlavních výhod každého z těchto přístupů a zároveň dosahují značného stupně efektivity a decentralizace.


Distribuovanost vs. decentralizovanost

Přestože je P2P architektura ze své podstaty distribuovaná, je důležité si uvědomit, že existují různé stupně decentralizace, takže ne všechny P2P sítě jsou decentralizované. 

Mnoho systémů se ve skutečnosti spoléhá s řízením činnosti sítě na centrální autoritu, a jsou tedy do jisté míry centralizované. Například některé P2P systémy určené ke sdílení souborů umožňují uživatelům vyhledávat a stahovat soubory od jiných uživatelů, ale dalších procesů, jako je správa vyhledávacích dotazů, se už účastnit nemohou.

Navíc se dá také říct, že malé sítě ovládané omezenou základnou uživatelů se společnými cíli mají vyšší stupeň centralizace, a to i přes absenci centralizované síťové infrastruktury.


Úloha P2P v oblasti blockchainů

V raných fázích vývoje Bitcoinu ho Satoshi Nakamoto definoval jako „elektronický peer-to-peer hotovostní systém“. Bitcoin byl vytvořen jako digitální forma peněz. Bitcoiny je možné prostřednictvím P2P sítě, která spravuje distribuovanou účetní knihu zvanou blockchain, převádět z jednoho uživatele na druhého.

V této souvislosti umožňuje P2P architektura, která je jádrem blockchainové technologie, převody bitcoinů a dalších kryptoměn po celém světě, a to bez potřeby zprostředkovatelů nebo centrálního serveru. Navíc každý, kdo se chce podílet na procesu ověřování a schvalování bloků, si může založit bitcoinový uzel.

Bitcoinová síť nemá žádné banky, které by zpracovávaly nebo zaznamenávaly transakce. Místo toho blockchain funguje jako digitální účetní kniha, která veřejně zaznamenává veškerou aktivitu. Každý uzel v podstatě drží kopii blockchainu a srovnává ji s ostatními uzly, aby měl jistotu, že data jsou správná. Jakoukoli škodlivou činnost nebo nepřesnost proto síť rychle odmítne.

V kontextu kryptoměnových blockchainů mohou uzly zastávat různé role. Například plné uzly zajišťují bezpečnost sítě tím, že ověřují transakce podle pravidel konsensu daného systému.

Každý plnohodnotný uzel udržuje úplnou a aktualizovanou kopii blockchainu, což mu umožňuje podílet se na společném ověřování skutečného stavu distribuované účetní knihy. Upozorňujeme ale, že ne všechny plné ověřující uzly jsou těžaři.


Výhody

Peer-to-peer architektura blockchainů s sebou přináší mnoho výhod. Mezi nejdůležitější z nich patří skutečnost, že P2P sítě jsou bezpečnější než tradiční uspořádání klient-server. Blockchainy distribuované mezi velkým množstvím uzlů jsou prakticky imunní vůči útokům typu DoS (Denial-of-Service), které sužují řadu systémů.

A protože před přidáním dat na blockchain musí většina uzlů dosáhnout konsenzu, je pro útočníka téměř nemožné data změnit. Obzvlášť u velkých sítí, jako je Bitcoin. Menší blockchainy jsou náchylnější k útokům, protože jedna osoba nebo skupina by mohla získat kontrolu nad většinou uzlů (jedná se o tzv. 51% útok).

Distribuovaná peer-to-peer síť spolu s požadavkem většinového konsenzu tak dává blockchainům poměrně vysokou odolnost proti škodlivému jednání. P2P model je jedním z důvodů, proč se Bitcoinu (a dalším blockchainům) podařilo dosáhnout tzv. byzantské odolnosti proti chybám.

Kromě útoků je P2P architektura kryptoměnových blockchainů odolná také vůči cenzuře ze strany centrálních orgánů. Na rozdíl od standardních bankovních účtů nemohou vlády kryptoměnové peněženky zablokovat ani vyprázdnit. Tato odolnost se vztahuje i na cenzurní snahy soukromých platforem, které zpracovávají platby a obsah. Někteří tvůrci obsahu a online obchodníci začali kryptoměnové platby používat jako způsob, jak předejít blokování plateb třetími stranami.


Omezení

Navzdory mnoha výhodám má použití P2P sítí v rámci blockchainů i určitá omezení.

Vzhledem k tomu, že aktualizace distribuovaných účetních knih musí místo na jednom centrálním serveru proběhnout na každém jednotlivém uzlu, vyžaduje přidávání transakcí na blockchain obrovský výpočetní výkon. S tím sice souvisí vyšší bezpečnost, ale výrazně se tak snižuje efektivita, což vytváří jednu z hlavních překážek škálovatelnosti a přijetí kryptoměn širokou veřejností. Kryptografové a blockchainoví vývojáři ale zkoumají alternativy, které by bylo možné použít jako řešení pro škálování. Mezi nejznámější příklady patří Lightning Network, Ethereum Plasma a protokol Mimblewimble.

Další potenciální omezení se týká útoků, ke kterým může dojít při hard forku. Vzhledem k tomu, že většina blockchainů je decentralizovaná a má otevřený zdrojový kód, skupiny uzlů mohou volně kopírovat a upravovat kód, oddělit se od hlavního chainu a vytvořit novou, paralelní síť. Hard forky jsou zcela normální a samy o sobě nepředstavují hrozbu. Pokud ale nejsou správně přijata určitá bezpečnostní opatření, mohou se oba blockchainy stát zranitelnými vůči útokům přehráním (replay attack).

Distribuovaná povaha P2P sítí navíc způsobuje, že je poměrně obtížné je řídit a regulovat, a to nejen v oblasti blockchainu. Řada P2P aplikací a společností se zapojila do nelegálních aktivit a porušování autorských práv.


Závěrem

Peer-to-peer architekturu je možné rozvíjet a používat mnoha různými způsoby. Tvoří například základ blockchainů, díky kterým existují kryptoměny. Účetní knihy s transakcemi distribuované mezi velkou síť uzlů přináší P2P architektuře bezpečnost, decentralizaci a odolnost vůči cenzuře.

Kromě toho, že P2P systémy jsou užitečné v oblasti blockchainů, mohou sloužit i v dalších aplikacích distribuovaných výpočtů – od sítí sdílejících soubory až po platformy obchodující s energií.