Mnoho lidí si myslí, že decentralizace blockchainu je založena pouze na výrobě bloků. Pod vrstvou Proof-of-Stake (nebo jiného konsensu) se nachází peer-to-peer síť (nebo síť drbů), která se používá k propojení uzlů. Jedná se o fyzickou infrastrukturu, kterou si můžete představit jako uzly propojené síťovým kabelem. Nad těmito vrstvami se nachází vrstva správy, která slouží k řízení projektu. Decentralizace by nebylo možné dosáhnout bez existence distribuované sítě. Bezpečnost závisí na obou těchto vrstvách. Je důležité uvažovat o bezpečnosti a decentralizaci komplexně a zahrnout všechny tři vrstvy. Útok na blockchain se může zaměřit na kteroukoli vrstvu. Pokud je úspěšně napadena síťová vrstva, může být ohrožena i vrstva konsensu. S novou verzí uzlu Cardano 1.35.6 mohou účastníci sítě začít používat automatizovanou dynamicky aktualizovanou konfiguraci P2P bez nutnosti ruční údržby. Síťová vrstva Cardano se stává bezpečnější a výkonnější.
TLDR
- Se starší verzí uzlu Cardano museli SPO ručně udržovat zbytečně velký počet spojení s peery.
- Dynamické P2P umožňuje automatizovaný proces, který pomocí vlastního zjišťování a optimalizace vyhledává nejvhodnější peery.
- Síť je odolnější vůči útokům DoS.
- Uzel Cardano automaticky překonfiguruje spojení s peer uzly tak, aby se rychlost distribuce dat v síti P2P blížila optimálnímu stavu.
Síť peer-to-Peer
Síť Peer-to-Peer, nazývaná také drbací síť, slouží k efektivnímu šíření informací v celé síti. V síti blockchain musí být uzly informovány o nových transakcích, blocích a dalších důležitých informacích, aby byla zachována integrita sítě. Každý uzel musí navázat několik příchozích a odchozích spojení s vybranými peery. Tím je zajištěn příjem informací a jejich distribuce.
Když uzel obdrží nové informace, sdílí je s podmnožinou náhodně vybraných uzlů v síti. Tyto uzly zase sdílejí informaci se svou vlastní náhodně vybranou podmnožinou uzlů a tento proces pokračuje, dokud se o nové informaci nedozvědí všechny uzly v síti. Díky tomu se informace z jednoho uzlu (např. nově vytěžený blok) dostane ke všem uzlům v celé síti.
Tento způsob sdílení informací je vysoce odolný vůči výpadkům uzlů nebo rozdělení sítě, protože uzly budou nadále sdílet informace s ostatními uzly, se kterými jsou schopny komunikovat, i když některé uzly jsou nedostupné. Potenciálně se však může stát, že uzel má spojení s malým počtem peer uzlů a všechny mohou být offline kvůli nějaké chybě nebo útoku. Proto je důležité aktivně sledovat dostupnost vrstevníků.
Ke komu se má nový uzel připojit při prvním spuštění? Většina blockchainů včetně Bitcoinů a Etherea vyžaduje takzvané bootstrap uzly, které nový uzel uvedou do sítě a pomohou mu inicializovat seznam peerů. Zaváděcí uzel je často vstupním bodem do sítě P2P, z něhož pak každý nový uzel může organicky vyhledávat nové peery. Ve většině případů se tak děje náhodně, nebo může uživatel ručně nastavit spojení se spolehlivými peery (k tomu lze použít různé nástroje). Jakmile má uzel tabulku peerů, může začít vyměňovat informace (nejprve je třeba synchronizovat blockchain).
Nově připojený uzel nemusí náhodně kontaktovat uzly v síti a hledat někoho, kdo by mu poskytl informace potřebné k připojení. Nebezpečí bootstrap uzlu spočívá v tom, že pokud není ověřen, může být škodlivý a provést útok typu man-in-the-middle nebo eclipse.
Je důležité vědět, že na úrovni sítě obvykle existuje několik důvěryhodných zaváděcích uzlů (obvykle provozovaných týmem), ke kterým se připojují nové uzly. Všimněte si, že funkce dynamického připojení P2P v nové verzi uzlu Cardano neřeší bootstrapping.
Od Shelleyho éry uzly produkující bloky odesílají a přijímají komunikaci prostřednictvím důvěryhodných relayů. K nastavení statického seznamu peerů v konfiguračním souboru by SPO mohly používat ručně vyvíjený a spravovaný komunitní nástroj zvaný Topology updater.
Dodejme, že v Cardano síti jsou kvůli vyšší bezpečnosti block-producing nodes schované za relay nodes.
Vrstva konsensu je závislá na síti P2P, protože potřebuje informace, na jejichž základě může dosáhnout nového konsensu (přidat nový blok). Vedoucí slotu musí být schopen včas distribuovat nově vytvořený blok. Pokud se mu to nepodaří, může blok osiřet, protože jiný uzel vyrazí jiný blok, který se šíří rychleji. Tento stav (rozvětvení blockchainu) je nežádoucí. V ideálním případě je třeba zajistit, aby všechny uzly v síti měly všechny informace k dispozici včas. To znamená, že spojení na peers by mělo být nakonfigurované tak aby bylo co nejoptimálněji a nejspolehlivější.
Dynamická P2P konektivita
Před aktualizací uzlů Cardano se používal tzv. hybridní režim. Každý uzel musí mít v konfiguraci nastavena příchozí a odchozí spojení s vybranými peery. Nástroj pro aktualizaci topologie pomáhal SPO konfigurovat uzel a získávat informace o změnách. SPO musí vynaložit čas a úsilí na ruční spuštění nástroje (i to lze do jisté míry automatizovat).
Uzel Cardano verze 1.35.6 automatizuje připojení k peerům. Dynamické P2P umožňuje automatizovaný proces, který prostřednictvím vlastního zjišťování a optimalizace najde nejvhodnější peery pro daný uzel v daném čase. Odstraňuje nutnost ručně udržovat statickou konfiguraci, jak to vyžaduje hybridní nastavení.
Díky aktualizaci je síť výkonnější a odolnější vůči změnám. Uzel automaticky reaguje na změny, jako je selhání peera nebo zhoršení kvality distribuce dat, a mění statickou konfiguraci nejvhodnějším možným způsobem. Zefektivňuje tok informací mezi tisíci distribuovanými uzly.
Ve starší verzi uzlu Cardano museli SPO ručně konfigurovat připojení k více peerům, např. k 50 peerům. To je zbytečně velký počet, ale opodstatněný, protože SPO chtěli mít jistotu, že pokud bude velký počet uzlů offline, alespoň několik z nich zůstane dostupných. 20 je dostatečně velký počet peerů za předpokladu, že uzel je schopen automaticky reagovat na změny v síti.
Uzel rozlišuje 3 typy peerů. Studení peeři jsou uzlu známi, ale v současné době s nimi není navázáno žádné spojení. Teplí peeři jsou uzly, se kterými je navázáno spojení, ale pouze za účelem měření sítě (sledování výkonu). Horké peery jsou aktivně využívány pro konsensus.
V dynamickém nastavení P2P se mohou uzly SPO zaměřit na konfiguraci 20 spojení s peery (horkými peery), které mohou být vybrány z tisíců SPO relay (studených peerů), nikoliv pouze z 50 uzlů. A pokud některý z nich přestane fungovat, uzel automaticky vybere nové, aby splnil nastavený cíl. Konfigurace tedy již není omezena na statickou sadu 50 peerů.
Výhodou dynamického nastavení P2P je, že optimalizuje výběr peerů tak, aby se minimalizovalo šíření bloku po celé síti. To se děje průběžně na základě změn v síti.
Výzkum provedený týmem IOG ukázal, že optimalizací konfigurace uzlů na lokální úrovni lze dosáhnout téměř ideálního nastavení v kontextu celé sítě. Měří se četnost, s jakou peeři jako první poskytnou hlavičku bloku, který později skončí v blockchainu. Peeři, které jsou podle této metriky nejméně užitečné (pomalejší), jsou pravidelně “vyřazovány” a nahrazovány jinými náhodně vybranými peery. Simulace ukázaly, že tato jednoduchá metoda vede k optimálnímu nastavení sítě, jehož výsledkem je vysoký výkon, pokud jde o distribuci dat.
Díky automatizované dynamické optimalizaci je síť odolnější vůči případným zpožděním nebo výpadkům komunikace. Navíc posiluje bezpečnost tím, že zabraňuje útokům typu DoS (denial of service). Pokud je nějaký node napadený útokem, ostatní nody si výpadku automaticky všimnou a změní své nastavení na jiné peers.
Závěr
Automatická dynamická konfigurace spojení s peery usnadní práci SPO a především zvýší rychlost distribuce informací. Ruční nastavení může být stejně účinné nebo účinnější, ale vyžaduje znalosti. Automatický proces má tu výhodu, že může pružně reagovat na změny v dynamicky se vyvíjející síti. Pokud se některý z peer uzlů dostane do offline režimu, konfigurace se automaticky změní a najde se nejlepší možné spojení. Pokud se provozovatelé plných uzlů spoléhají na náhodně vybraný seznam peerů, nemusí to být optimální. Uzel Cardano může měřit rychlost připojení k peerům a automaticky měnit nastavení tak, aby se celkový výkon sítě blížil optimálnímu. Dodejme, že SPOs mohou zůstat u svého ručně nastaveného seznamu peerů a nemusí využívat této nové možnosti.
Článek připravili Cardanians s podporou Cexplorer.
Přečtěte si celý článek: https://cexplorer.io/article/cardano-has-dynamic-p2p-networking