První generace síťového konsenzu byla sekvenční, protože blockchain má lineární strukturu. Sekvenční zpracování je projevem každé nové technologie. Nízká účinnost obvykle brání masovému přijetí nebo většímu využití technologie. V historii můžete najít mnoho technologií, kde paralelismus vedl k vyšší adopci nebo efektivitě. Ukážeme si pár příkladů. Již dnes můžeme vidět příklady paralelizace v blockchainovém průmyslu. Cardano má také několik trumfů v rukávu.
Charakteristika sekvenčního systému
V počítačové technice je sekvenční systém takový, kde se operace provádějí jedna po druhé v určitém pořadí. Úkoly nebo instrukce jsou prováděny jeden po druhém v pořadí, v jakém byly přijaty nebo naprogramovány.
Sekvenční systémy typicky zahrnují jeden procesor, který vykonává jednu instrukci v čase. Jsou typicky deterministické, což znamená, že při stejném vstupu budou vždy produkovat stejný výstup. Pořadí provádění je totiž pevně dané a nemění se.
Synchronizace je vrozená, protože každá operace musí být dokončena před zahájením další. Není potřeba explicitních synchronizačních mechanismů, jako jsou zámky nebo semafory, které jsou vyžadovány v paralelních systémech, aby se zabránilo boji o zdroje.
Obecně lze říci, že sekvenční systémy jsou jednodušší na pochopení, navrhování a implementaci. Jsou deterministické a nemají problémy se synchronizací. Jejich největší nevýhodou je však nízký výkon, který je limitován rychlostí jediného procesoru vykonávajícího instrukce.
Zlepšení výkonu v sekvenčním systému obvykle zahrnuje zvýšení rychlosti procesoru nebo optimalizaci kódu pro snížení počtu instrukcí. Se zvyšujícím se zatížením nemusí dobře škálovat, protože všechny úkoly musí být zpracovány jeden po druhém. Zdroje mohou být nedostatečně využívány.
Běžná decentralizovaná síť s jednoduchým síťovým konsensem, do které Cardano v současnosti patří, má sekvenční i paralelní aspekty. Projekty se však mohou v několika detailech lišit.
Blockchain má lineární strukturu. Nový blok je vždy připojen za předchozí blok. Současná verze Ouroboros PoS je sekvenční povahy, protože v pravidelných intervalech se vyrábí jeden nový blok. Bitcoin a Ethereum jsou v tomto ohledu stejné. Rozdíl je pouze v délce časového intervalu.
V distribuované síti je mnoho uzlů (CPU), ale kvůli časování produkce bloků vytváří nový blok vždy jeden uzel. Každý uzel v síti může mít podobné transakce v mem-poolu (které mohly přijít v jiném pořadí), ale při produkci bloků se používají pouze transakce z jednoho mem-poolu. Difúze bloku v síti probíhá paralelně.
Charakteristika paralelního systému
Paralelním systémem se rozumí systém, kde se současně, tj. ve stejnou dobu, provádí více úloh nebo operací. Tyto systémy obvykle vyžadují zapojení více procesorů nebo jader, které mohou provádět různé úkoly současně.
Paralelní systémy podporují souběžnost, kdy se zdá, že několik úloh běží současně. Synchronizační mechanismy, jako jsou zámky nebo semafory, se často používají k zabránění konfliktu a zajištění správného fungování vzájemně se vylučujících operací.
Paralelní systémy mohou lépe využívat schopnosti vícejádrových procesorů nebo distribuovaných výpočetních zdrojů. Zlepšuje výkon a škálovatelnost. To však přináší i řadu technologických výzev. Paralelní systémy jsou obecně složitější na návrh a implementaci než sekvenční systémy kvůli potřebě synchronizace a komunikace mezi souběžnými úkoly. Synchronizace a komunikace mohou představovat značnou režii, která může snížit nárůst výkonu.
Současný Ethereum PoS zahrnuje formu paralelismu, kde mnoho validátorů potvrzuje navrhovaný blok. Nový blok je před přidáním do blockchainu schválen mnoha validátory. Tento schvalovací proces však neznamená, že blok je finalizovaný. Mechanismus konsenzu Ethereum může ověřovat bloky efektivněji a dramaticky zkrátit čas finality.
Finalita se týká okamžiku, kdy jsou transakce v bloku považovány za nevratné.
Bitcoin i Cardano používají mechanismus pravděpodobnostního konsenzu, což znamená, že konečnost transakcí je pravděpodobnostní a zvyšuje se s každým nově přidaným blokem. Finality je dosaženo postupným způsobem, protože každý nový blok přidaný do řetězce zvyšuje konečnost předchozích transakcí. To lze považovat za pomalý a neefektivní proces (který má však další výhody, např. robustnost).
V Ethereu je konečnost explicitnější a lze ji dosáhnout rychleji. Blok je považován za dokončený, když byl zahrnut do řetězce a dostatečný počet validátorů potvrdil jeho platnost. Tento proces lze provádět paralelně, protože různí validátoři mohou ověřovat různé bloky současně.
Toto je jeden příklad toho, jak může paralelizace zefektivnit konsenzus sítě.
Paralelizace přináší efektivitu a osvojení
Domnívám se, že jedním z důvodů současné nízké adopce blockchainových sítí brání nízká škálovatelnost a efektivita. Globální decentralizované transakční sítě nebo dokonce decentralizované aplikace (hlavně DeFi) jsou dobrým konceptem, který může narušit mnohá odvětví a posunout možnosti internetu na novou úroveň. Implementace dalších prvků paralelizace umožní vyšší přijetí blockchainových sítí během dekády (nebo dvou).
Podívejme se zpět do historie na některé technologie, které byly na začátku sekvenční a že paralelismus pomohl k většímu přijetí a použití.
Víte, jak vypadalo první spojení mezi počítači? Bylo to sekvenční. K přenosu dat mezi dvěma body byla použita jediná cesta. Data (bajty) se posílala postupně z bodu A do bodu B. Kdyby byl internet takový, nikdy by se neuchtil. Moderní sítě používají techniky vícecestného směrování k přenosu dat přes více cest současně. To může zvýšit šířku pásma vytvořením více přenosových front. Poskytuje také určitý stupeň odolnosti proti chybám.
U tradičních pevných disků jsou data čtena postupně z rotujícího disku. Disky měly jednu čtecí (a zapisovací) hlavu, která musela být umístěna v místě, kde se nacházela data. Data byla většinou ukládána sekvenčně, aby se dala přečíst na jeden zátah. S příchodem technologie RAID (Redundant Array of Independent Disks) však lze data distribuovat na více disků a číst nebo zapisovat paralelně, což výrazně zvyšuje výkon.
Tradiční CPU byly jednojádrové, což znamenalo, že mohly zpracovávat pouze jednu operaci najednou. Když bylo potřeba pracovat na více úlohách paralelně, musela CPU rychle přepínat mezi jednotlivými úlohami (většinou UI a některé další úlohy). Moderní CPU jsou vícejádrové, což znamená, že mohou zpracovávat více operací současně rozdělením zátěže mezi více jader. Díky tomu je možné poslouchat písničku, stahovat data z internetu, psát zprávu a mít na pozadí spuštěný antivir.
Tradiční databázový systém zpracovává dotazy sekvenčním způsobem. To znamená, že když je dotaz proveden, databázový systém načítá nebo aktualizuje data jeden záznam po druhém. Pokud například spouštíte dotaz za účelem načtení dat z tabulky s milionem záznamů, databázový systém bude prohledávat každý záznam jeden po druhém, dokud nenajde záznamy, které odpovídají kritériím dotazu. S rostoucím objemem dat se však tento sekvenční přístup stával méně účinným. V paralelní databázi při provedení dotazu databázový systém rozdělí data do podmnožin a každou podmnožinu zpracuje souběžně.
Multiplexování je metoda, při které je více analogových nebo digitálních signálů kombinováno do jednoho signálu přes sdílené médium. Cílem je sdílet vzácný zdroj – fyzické přenosové médium. Například v telekomunikacích může být několik telefonních hovorů uskutečněno pomocí jednoho drátu. Multiplexovaný signál je přenášen přes komunikační kanál, jako je kabel. Multiplexování rozděluje kapacitu komunikačního kanálu do několika logických kanálů, jeden pro každý signál zprávy nebo datový tok, který má být přenesen. Zpětný proces, známý jako demultiplexování, extrahuje původní kanály na straně přijímače.
Podobných příkladů je mnohem více a prvky paralelizace najdeme téměř v každé moderní technologii, zejména ve světě počítačů a sítí.
Dosažení síťového konsenzu v decentralizované síti je velmi neefektivní. Neefektivita roste s počtem uzlů, mezi kterými dochází ke konsenzu, protože je nutná vzájemná komunikace. Toto sekvenční zpracování se může stát úzkým hrdlem, když síť zpracovává velký objem transakcí. Sekvenční povaha produkce bloků může omezit rychlost, jakou jsou transakce potvrzovány a přidávány do blockchainu.
Podívejme se na možné formy paralelizace v blockchainovém průmyslu.
Paralelizace v blockchainovém průmyslu
V blockchainovém průmyslu existuje více možností, jak dosáhnout vyšší paralelizace. Architektura vrstev se jeví jako jednodušší řešení.
Architektura vrstev je metoda organizace systémů do samostatných vrstev, kde každá vrstva poskytuje služby vrstvě nad sebou a využívá služby z vrstvy pod ní.
Složitějším řešením je snaha dosáhnout paralelizace na první vrstvě, tedy v síťovém konsensu blockchainu.
Vrstvená architektura umožňuje paralelní zpracování transakcí, zlepšuje škálovatelnost a efektivitu. Druhé vrstvy (na třetí vrstvy je ještě brzy) jsou ale ještě poměrně výrazně závislé na škálovatelnosti blockchainu. Převod aktiv tam a zpět mezi vrstvami obvykle vyžaduje transakce v řetězci.
Zpracování transakcí ve druhé vrstvě není závislé na síťovém konsenzu první vrstvy (blockchainu). Různé druhé vrstvy mohou mít různé znaky. Vyšší škálovatelnosti je obvykle dosaženo za cenu nižší decentralizace a bezpečnosti.
Paralelizace v Hydra nebo Lightning Network nastává vytvořením komunikačních kanálů mezi uživateli. Transakce v kanálech jsou ověřovány pouze uživateli, kterých se transakce týkají. Lightning Network umožní otevření jednoho kanálu mezi 2 účastníky. Hydra umožní uživatelům otevřít více kanálů pro menší počet účastníků.
Může tak probíhat více paralelních transakcí v různých kanálech současně. Protože kanály jsou na sobě nezávislé, uzly se vzájemně neblokují při ověřování transakcí.
Sidechains a Rollups jsou další řešení, která umožňují paralelní zpracování transakcí a realizaci chytrých kontraktů. Zpracování se provádí mimo řetězec, ale stále existuje závislost na transakcích v řetězci. Každý typ druhé vrstvy má nějaké výhody a nevýhody a je těžké odhadnout, který typ bude v budoucnu nejoblíbenější.
Komunikace mezi vrstvami je stále potenciálním úzkým hrdlem. Pokud konsensus blockchainové sítě dobře neškáluje, může být pro uživatele obtížné využít výhody druhé vrstvy. Druhé vrstvy tedy nemusí být konečným řešením a týmy musí dosáhnout vyšší paralelizace na úrovni konsensu sítě.
Technologie jako Input Endorsers nebo sharding umožňují vyšší paralelizaci síťového konsensu.
Input Endorser umožňuje oddělení výběru a předběžné validace transakcí od produkce bloků. V síti existuje několik typů bloků, na kterých mohou uzly pracovat paralelně. Každý typ bloku má jiný účel. Mezi všemi typy bloků existuje určitá závislost a pro zachování linearity se používá pouze jeden typ bloku. Výpočetní zdroje jsou v síti lépe využívány a Input Endorsers zvyšují propustnost transakcí.
Sharding je technika, kdy je síť rozdělena na menší části (neboli shardy), z nichž každá je schopna samostatně zpracovávat transakce a smart kontrakty. To umožňuje určitý stupeň paralelismu, protože transakce v různých shardech mohou být zpracovávány současně. Shardy jsou však na sobě stále závislé a dochází proto ke komunikaci mezi shardy. Je nutné udržovat jednotný globální stav v celém systému, tedy napříč shardy.
Cardano má určitou výhodu díky tomu, že se tým rozhodl použít účetní model UTxO. S tímto modelem je poměrně snadné dosáhnout vyšší paralelizace síťového konsensu. Validace transakcí a smart kontrakty jsou na sobě do značné míry nezávislé. Model UTxO usnadnil týmu navrhování Input Endorsers.
Na druhou stranu je tento model výzvou pro vývojáře aplikací. V ideálním případě by měli navrhovat aplikace s vědomím paralelizace. Než uvidíme aplikace, které plně využívají potenciál paralelizace, může to chvíli trvat.
Ethereum je v tomto ohledu více sekvenční. Sestavení aplikace je poměrně snadné a týmy se nemusí potýkat se souběžností. Na druhou stranu může být obtížné dosáhnout vyšší paralelizace systému.
Závěr
Paralelizace měla hluboký dopad na svět. Bez paralelizace by mnoho z technologických pokroků, které dnes vidíme, nebylo možné. Schopnost provádět více úkolů současně byla klíčová při zvládání rostoucích objemů dat generovaných v našem digitálním věku.
Paralelní výpočetní technika umožnila vývoj vysoce výkonných počítačů a serverů, které dokážou zpracovat velké objemy dat a rychle provádět složité výpočty. To je zásadní pro trénování komplexních modelů umělé inteligence. Paralelizace v sítích výrazně zlepšila rychlost, spolehlivost a efektivitu přenosu a zpracování dat. V současné době mnoho týmů, včetně IOG, používá techniky paralelizace ke zlepšení škálovatelnosti a efektivity blockchainových sítí. To umožní širší využití této technologie a narušení mnoha průmyslových odvětví, v podstatě podobným způsobem, jakým v minulosti uspěly počítače nebo internet.
Článek připravili Cardanians s podporou od Cexplorer.
Přečtěte si celý článek: https://cexplorer.io/article/parallelism-is-essential-to-blockchain