Co je to peer-to-peer (P2P)?
V informatice se síť peer-to-peer (P2P) skládá ze skupiny zařízení, která společně ukládají a sdílejí soubory. Každý účastník (uzel) vystupuje jako individuální peer. Obvykle mají všechny uzly stejný výkon a provádějí stejné úkoly.
Ve finančních technologiích pojem peer-to-peer obvykle označuje výměnu kryptoměn nebo digitálních aktiv prostřednictvím distribuované sítě. Platforma P2P umožňuje kupujícím a prodávajícím provádět obchody bez potřeby zprostředkovatelů. V některých případech mohou webové stránky poskytovat také prostředí P2P, které spojuje věřitele a dlužníky.
Architektura P2P může být vhodná pro různé případy použití, ale stala se obzvláště populární v 90. letech, kdy byly vytvořeny první programy pro sdílení souborů. Dnes jsou P2P sítě jádrem většiny kryptoměn a tvoří velkou část blockchainového průmyslu. Jsou však také využívány v jiných distribuovaných počítačových aplikacích, včetně webových vyhledávačů, platforem pro streamování, online tržišť a webového protokolu IPFS (InterPlanetary File System).
Jak P2P funguje?
V podstatě je P2P systém udržován distribuovanou sítí uživatelů. Obvykle nemají žádného centrálního správce nebo server, protože každý uzel uchovává kopii souborů – funguje jako klient i jako server pro ostatní uzly. Každý uzel tak může stahovat soubory z jiných uzlů nebo do nich nahrávat soubory. To je to, co odlišuje P2P sítě od tradičnějších systémů klient-server, ve kterých klientská zařízení stahují soubory z centralizovaného serveru.
V sítích P2P sdílí připojená zařízení soubory, které jsou uloženy na jejich pevných discích. Pomocí softwarových aplikací určených ke zprostředkování sdílení dat mohou uživatelé vyhledávat a stahovat soubory dotazem na jiná zařízení v síti. Jakmile si uživatel stáhne daný soubor, může se chovat jako zdroj tohoto souboru.
Jinými slovy, když uzel funguje jako klient, stahuje soubory z jiných síťových uzlů. Ale když pracují jako server, jsou zdrojem, ze kterého mohou ostatní uzly stahovat soubory. V praxi však lze obě funkce provádět současně (např. stažení souboru A a nahrání souboru B).
Vzhledem k tomu, že každý uzel ukládá, vysílá a přijímá soubory, bývají P2P sítě rychlejší a efektivnější, protože jejich uživatelská základna roste. Také jejich distribuovaná architektura dělá P2P systémy velmi 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 kategorizovat podle jejich architektury. Tyto tři hlavní typy se nazývají nestrukturované, strukturované a hybridní P2P sítě.
Nestrukturované P2P sítě
Nestrukturované P2P sítě nepředstavují žádnou konkrétní organizaci uzlů. Účastníci spolu náhodně komunikují. Tyto systémy jsou považovány za odolné vůči vysoké aktivitě churn (tj. několik uzlů se často připojuje k síti a opouští ji).
I když se nestrukturované sítě P2P snáze sestavují, mohou vyžadovat vyšší využití procesoru a paměti, protože vyhledávací dotazy jsou zasílány co největšímu počtu partnerů. To má tendenci zahltit síť dotazy, zvláště pokud malý počet uzlů nabízí požadovaný obsah.
Strukturované P2P sítě
Naproti tomu strukturované P2P sítě představují organizovanou architekturu, která umožňuje uzlům efektivně vyhledávat soubory, i když obsah není široce dostupný. Ve většině případů je toho dosaženo pomocí hašovacích funkcí, které usnadňují vyhledávání v databázi.
Zatímco strukturované sítě mohou být efektivnější, mají tendenci představovat vyšší úroveň centralizace a obvykle vyžadují vyšší náklady na nastavení a údržbu. Kromě toho jsou strukturované sítě méně robustní, když čelí vysoké míře odchodu.
Hybridní P2P sítě
Hybridní P2P sítě kombinují konvenční model klient-server s některými aspekty architektury peer-to-peer. Jeho design může například obsahovat centrální server, který usnadňuje spojení mezi peery.
Ve srovnání s ostatními dvěma typy mají hybridní modely tendenci vykazovat lepší celkový výkon. Obvykle kombinují některé z hlavních výhod každého přístupu a současně dosahují významných stupňů efektivity a decentralizace.
Distribuované vs. decentralizované
Přestože je architektura P2P ze své podstaty distribuována, je důležité si uvědomit, že existují různé stupně decentralizace. Ne všechny P2P sítě jsou tedy decentralizované.
Ve skutečnosti mnoho systémů spoléhá na centrální autoritu, která řídí síťovou aktivitu, což je činí poněkud centralizovanými. Například některé systémy pro sdílení souborů P2P umožňují uživatelům vyhledávat a stahovat soubory od jiných uživatelů, ale nemohou se účastnit jiných procesů, jako je správa vyhledávacích dotazů.
Kromě toho lze říci, že malé sítě řízené omezenou uživatelskou základnou se sdílenými cíli mají vyšší stupeň centralizace, a to i přes chybějící centralizovanou síťovou infrastrukturu.
Role P2P v blockchainech
V raných fázích bitcoinu ho Satoshi Nakamoto definoval jako „Peer-to-Peer Electronic Cash System“. Bitcoin byl vytvořen jako digitální forma peněz. Lze jej přenášet z jednoho uživatele na druhého prostřednictvím sítě P2P, která spravuje distribuovanou účetní knihu zvanou blockchain.
V tomto kontextu je P2P architektura, která je vlastní technologii blockchain, to, co umožňuje bitcoiny a další kryptoměny přenášet po celém světě, aniž by bylo potřeba zprostředkovatelů nebo jakéhokoli centrálního serveru. Každý si také může zřídit bitcoinový uzel, pokud se chce zúčastnit procesu ověřování a ověřování bloků.
V bitcoinové síti tedy žádné banky nezpracovávají nebo zaznamenávají transakce. Místo toho blockchain funguje jako digitální účetní kniha, která veřejně zaznamenává veškerou aktivitu. V podstatě každý uzel drží kopii blockchainu a porovnává ji s jinými uzly, aby se zajistilo, že data jsou přesná. Síť rychle odmítne jakoukoli škodlivou aktivitu nebo nepřesnost.
V kontextu kryptoměnových blockchainů mohou uzly převzít řadu různých rolí. Plné uzly jsou například ty, které poskytují zabezpečení sítě ověřováním transakcí podle konsenzuálních pravidel systému.
Každý úplný uzel udržuje kompletní, aktualizovanou kopii blockchainu, což jim umožňuje podílet se na společné práci na ověřování skutečného stavu distribuované účetní knihy. Je však třeba poznamenat, že ne všechny úplné ověřovací uzly jsou těžaři.
Výhody
Peer-to-peer architektura blockchainů poskytuje mnoho výhod. Mezi nejdůležitější patří fakt, že P2P sítě nabízejí vyšší bezpečnost než tradiční uspořádání klient-server. Distribuce blockchainů přes velký počet uzlů je činí prakticky imunními vůči útokům Denial-of-Service (DoS), které sužují četné systémy.
Podobně, protože většina uzlů musí před přidáním dat do blockchainu dosáhnout konsensu, je pro útočníka téměř nemožné data pozměnit. To platí zejména pro velké sítě, jako je bitcoin. Menší blockchainy jsou náchylnější k útokům, protože jedna osoba nebo skupina by nakonec mohla získat kontrolu nad většinou uzlů (toto je známé jako 51procentní útok).
Výsledkem je, že distribuovaná síť peer-to-peer, spárovaná s požadavkem většinového konsenzu, poskytuje blockchainům relativně vysoký stupeň odolnosti vůči škodlivé činnosti. P2P model je jedním z důvodů, proč Bitcoin (a další blockchainy) dokázal dosáhnout tzv. byzantské odolnosti proti chybám.
Kromě zabezpečení je použití P2P architektury v blockchainech kryptoměn také odolné vůči cenzuře ze strany ústředních orgánů. Na rozdíl od standardních bankovních účtů nelze peněženky s kryptoměnami zmrazit nebo vyčerpat vlády. Tento odpor se také rozšiřuje na snahy o cenzuru soukromých platforem pro zpracování plateb a obsahu. Někteří tvůrci obsahu a online obchodníci přijali platby kryptoměnami jako způsob, jak se vyhnout blokování jejich plateb třetími stranami.
Omezení
Navzdory jejich mnoha výhodám má použití P2P sítí na blockchainech také určitá omezení.
Protože distribuované účetní knihy musí být aktualizovány na každém jednotlivém uzlu místo na centrálním serveru, přidávání transakcí do blockchainu vyžaduje obrovské množství výpočetního výkonu. I když to poskytuje zvýšenou bezpečnost, výrazně to snižuje efektivitu a je jednou z hlavních překážek, pokud jde o škálovatelnost a široké přijetí. Nicméně kryptografové a vývojáři blockchainu zkoumají alternativy, které lze použít jako škálovací řešení. Mezi prominentní příklady patří Lightning Network, Ethereum Plasma a protokol Mimblewimble.
Další potenciální omezení se týká útoků, které mohou nastat během hard fork událostí. Protože většina blockchainů je decentralizovaná a má otevřený zdroj, skupiny uzlů mohou volně kopírovat a upravovat kód a oddělit se od hlavního řetězce, aby vytvořily novou paralelní síť. Hard forky jsou zcela normální a samy o sobě nepředstavují hrozbu. Pokud však některé bezpečnostní metody nejsou správně přijaty, oba řetězce se mohou stát zranitelnými vůči útokům opakovaného přehrávání.
Distribuovaná povaha P2P sítí navíc ztěžuje jejich ovládání a regulaci, a to nejen v oblasti blockchainu. Několik P2P aplikací a společností se zapojilo do nelegálních aktivit a porušování autorských práv.
Závěrečné myšlenky
Architektura peer-to-peer může být vyvinuta a používána mnoha různými způsoby a je jádrem blockchainů, které umožňují kryptoměny. Díky distribuci účetních knih transakcí mezi velké sítě uzlů nabízí architektura P2P bezpečnost, decentralizaci a odolnost proti cenzuře.
Kromě své užitečnosti v technologii blockchain mohou P2P systémy sloužit také dalším distribuovaným výpočetním aplikacím, od sítí pro sdílení souborů až po platformy pro obchodování s energií.