🇸🇰 Paralelnosť je pre Blockchain nevyhnutná

Paralelnosť je pre Blockchain nevyhnutná

Prvá generácia sieťového konsenzu bola sekvenčná, keďže blockchain má lineárnu štruktúru. Sekvenčné spracovanie je prejavom každej novej technológie. Nízka efektivita zvyčajne bráni masovému prijatiu alebo väčšiemu využitiu technológie. V histórii možno nájsť mnoho technológií, kde paralelizmus viedol k vyššiemu prijatiu alebo efektívnosti. Ukážeme si niekoľko príkladov. Už dnes môžeme vidieť príklady paralelizácie v odvetví blockchainu. Cardano má v rukáve niekoľko tromfov.

Charakteristika sekvenčného systému

V počítačovej technike je sekvenčný systém taký, v ktorom sa operácie vykonávajú jedna po druhej v určitom poradí. Úlohy alebo inštrukcie sa vykonávajú jedna po druhej v poradí, v akom boli prijaté alebo naprogramované.

Sekvenčné systémy zvyčajne zahŕňajú jeden procesor, ktorý vykonáva jednu inštrukciu za druhou. Sú typicky deterministické, čo znamená, že pri rovnakom vstupe vždy vytvoria rovnaký výstup. Je to preto, že poradie vykonávania je pevné a nemení sa.

Synchronizácia je im vlastná, pretože každá operácia sa musí dokončiť skôr, ako sa začne ďalšia. Nie sú potrebné explicitné synchronizačné mechanizmy, ako sú zámky alebo semafory, ktoré sú potrebné v paralelných systémoch na zabránenie pretekov.

Vo všeobecnosti možno povedať, že sekvenčné systémy sú jednoduchšie na pochopenie, návrh a implementáciu. Sú deterministické a nemajú problémy so synchronizáciou. Ich najväčšou nevýhodou je však nízky výkon, ktorý je obmedzený rýchlosťou jedného procesora vykonávajúceho inštrukcie.

Zlepšenie výkonu v sekvenčnom systéme zvyčajne zahŕňa zvýšenie rýchlosti procesora alebo optimalizáciu kódu s cieľom znížiť počet inštrukcií. Nemusia sa dobre škálovať so zvyšujúcim sa pracovným zaťažením, pretože všetky úlohy sa musia spracovať po jednej. Zdroje môžu byť nedostatočne využívané.

Bežná decentralizovaná sieť s jednoduchým sieťovým konsenzom, ku ktorej v súčasnosti patrí Cardano, má sekvenčné aj paralelné aspekty. Projekty sa však môžu líšiť v niekoľkých detailoch.

Blockchain má lineárnu štruktúru. Nový blok sa vždy pripája za predchádzajúci blok. Súčasná verzia Ouroboros PoS má sekvenčný charakter, keďže v pravidelných intervaloch sa vytvára jeden nový blok. Bitcoin a Ethereum sú v tomto ohľade rovnaké. Rozdiel je len v dĺžke časového intervalu.

V distribuovanej sieti je veľa uzlov (CPU), ale vzhľadom na časový harmonogram výroby blokov nový blok vyrába vždy jeden uzol. Každý uzol v sieti môže mať v mem-poole podobné transakcie (ktoré mohli prísť v rôznom poradí), ale pri výrobe bloku sa používajú len transakcie z jedného mem-poolu. Šírenie bloku v sieti prebieha paralelne.

Charakteristika paralelného systému

Paralelný systém označuje systém, v ktorom sa viacero úloh alebo operácií vykonáva súčasne, t. j. v rovnakom čase. Tieto systémy zvyčajne vyžadujú zapojenie viacerých procesorov alebo jadier, ktoré môžu vykonávať rôzne úlohy súčasne.

Paralelné systémy podporujú súbežnosť, pri ktorej sa zdá, že niekoľko úloh prebieha súčasne. Synchronizačné mechanizmy, ako sú zámky alebo semafory, sa často používajú na zabránenie pretekov a zabezpečenie správneho vykonávania vzájomne sa vylučujúcich operácií súbežnými vláknami.

Paralelné systémy môžu lepšie využívať možnosti viacjadrových procesorov alebo distribuovaných výpočtových zdrojov. Zlepšuje sa tým výkon a škálovateľnosť. Prináša to však aj niekoľko technologických výziev. Paralelné systémy sú vo všeobecnosti zložitejšie na návrh a implementáciu ako sekvenčné systémy kvôli potrebe synchronizácie a komunikácie medzi súbežnými úlohami. Synchronizácia a komunikácia môžu predstavovať značnú réžiu, ktorá môže znížiť nárast výkonu.

Súčasný systém Ethereum PoS zahŕňa formu paralelizmu, pri ktorej navrhovaný blok potvrdzuje mnoho validátorov. Nový blok je pred pridaním do blockchainu schválený mnohými validátormi. Tento schvaľovací proces však neznamená, že blok je dokončený. Mechanizmus konsenzu Etherea dokáže bloky validovať efektívnejšie a výrazne skrátiť čas do finalizácie.

Finálnosť sa vzťahuje na bod, v ktorom sa transakcie v bloku považujú za nezvratné.

Bitcoin aj Cardano používajú pravdepodobnostný mechanizmus konsenzu, čo znamená, že finálnosť transakcií je pravdepodobnostná a zvyšuje sa s každým novo pridaným blokom. Konečnosť sa dosahuje postupným spôsobom, keďže každý nový blok pridaný do reťazca zvyšuje konečnosť predchádzajúcich transakcií. To možno považovať za pomalý a neefektívny proces (ktorý má však iné výhody, napríklad robustnosť).

V Ethereu je konečnosť explicitnejšia a dá sa dosiahnuť rýchlejšie. Blok sa považuje za finalizovaný, keď bol zaradený do reťazca a jeho platnosť potvrdil dostatočný počet validátorov. Tento proces môže prebiehať paralelne, keďže rôzni validátori môžu súčasne potvrdzovať rôzne bloky.

Toto je jeden z príkladov, ako môže paralelizácia zefektívniť konsenzus siete.

Paralelizácia prináša efektívnosť a prijatie

Domnievam sa, že jedným z dôvodov súčasného nízkeho prijatia blockchainových sietí je prekážka v podobe nízkej škálovateľnosti a efektívnosti. Globálne decentralizované transakčné siete alebo dokonca decentralizované aplikácie (hlavne DeFi) sú rozumným konceptom, ktorý môže narušiť mnohé odvetvia a posunúť možnosti internetu na novú úroveň. Implementácia ďalších prvkov paralelizácie umožní v priebehu desiatich rokov (alebo dvoch) vyššie prijatie blockchainových sietí.

Pozrime sa do histórie na niektoré technológie, ktoré boli na začiatku sekvenčné a ktorým paralelizácia pomohla k väčšiemu prijatiu a využitiu.

Viete, ako vyzeralo prvé spojenie medzi počítačmi? Bolo sekvenčné. Na prenos údajov medzi dvoma bodmi sa používala jediná cesta. Údaje (bajty) sa posielali postupne z bodu A do bodu B. Keby bol internet takýto, nikdy by sa nerozšíril. Moderné siete využívajú techniky viaccestného smerovania na prenos údajov po viacerých cestách súčasne. Môže sa tak zvýšiť šírka pásma vytvorením viacerých prenosových frontov. Poskytuje tiež určitý stupeň odolnosti voči chybám.

V tradičných HDD sa údaje čítajú postupne z rotujúceho disku. Disky mali jednu čítacie (a zapisovacie) hlavu, ktorá musela byť umiestnená na mieste, kde sa nachádzali údaje. Údaje sa väčšinou ukladali sekvenčne, aby sa dali prečítať na jeden záťah. S príchodom technológie RAID (Redundant Array of Independent Disks - redundantné pole nezávislých diskov) sa však údaje môžu rozdeliť na viacero diskov a čítať alebo zapisovať paralelne, čo výrazne zvyšuje výkon.

Tradičné procesory boli jednojadrové, čo znamená, že mohli spracovať iba jednu operáciu naraz. Keď bolo potrebné pracovať na viacerých úlohách paralelne, procesory museli rýchlo prepínať medzi jednotlivými úlohami (väčšinou používateľským rozhraním a niektorými inými úlohami). Moderné CPU sú viacjadrové, čo znamená, že dokážu spracovať viacero operácií súčasne rozdelením záťaže medzi viacero jadier. Vďaka tomu je možné počúvať skladbu, sťahovať údaje z internetu, písať správu a na pozadí mať spustený antivírus.

Tradičný databázový systém spracováva dotazy sekvenčným spôsobom. To znamená, že pri vykonávaní dotazu databázový systém získava alebo aktualizuje údaje po jednom zázname. Ak napríklad spustíte dotaz na získanie údajov z tabuľky s miliónom záznamov, databázový systém bude prehľadávať každý záznam jeden po druhom, kým nenájde záznamy, ktoré zodpovedajú kritériám dotazu. S rastúcim objemom údajov sa však tento sekvenčný prístup stal menej efektívnym. V paralelnej databáze databázový systém pri vykonávaní dotazu rozdelí údaje na podmnožiny a každú podmnožinu spracúva súbežne.

Multiplexovanie je metóda, pri ktorej sa viaceré analógové alebo digitálne signály spájajú do jedného signálu cez spoločné médium. Cieľom je zdieľať vzácny zdroj - fyzické prenosové médium. Napríklad v telekomunikáciách sa môže uskutočniť niekoľko telefónnych hovorov pomocou jedného vedenia. Multiplexovaný signál sa prenáša cez komunikačný kanál, napríklad kábel. Multiplexovanie rozdeľuje kapacitu komunikačného kanála na niekoľko logických kanálov, jeden pre každý prenášaný signál správy alebo dátový tok. Spätný proces, známy ako demultiplexovanie, extrahuje pôvodné kanály na strane prijímača.

Podobných príkladov je oveľa viac a prvky paralelizácie možno nájsť takmer v každej modernej technológii, najmä vo svete počítačov a sietí.

Dosiahnutie sieťového konsenzu v decentralizovanej sieti je veľmi neefektívne. Neefektívnosť sa zvyšuje s počtom uzlov, medzi ktorými dochádza ku konsenzu, pretože je potrebná vzájomná komunikácia. Toto sekvenčné spracovanie sa môže stať úzkym miestom, keď sieť spracováva veľký objem transakcií. Sekvenčná povaha tvorby blokov môže obmedziť rýchlosť, akou sa transakcie potvrdzujú a pridávajú do blockchainu.

Pozrime sa na možné formy paralelizácie v odvetví blockchainu.

Paralelizácia v odvetví blockchainu

Existuje viac možností, ako dosiahnuť vyššiu paralelizáciu v odvetví blockchainu. Vrstvená architektúra sa javí ako jednoduchšie riešenie.

Vrstvená architektúra je metóda organizácie systémov do samostatných vrstiev, kde každá vrstva poskytuje služby vrstve nad ňou a využíva služby z vrstvy pod ňou.

Zložitejším riešením je snaha dosiahnuť paralelizáciu na prvej vrstve, t. j. v sieťovom konsenze blockchainu.

Vrstvová architektúra umožňuje paralelné spracovanie transakcií, čím sa zlepšuje škálovateľnosť a efektívnosť. Druhé vrstvy (na tretie vrstvy je ešte skoro) sú však stále pomerne výrazne závislé od škálovateľnosti blockchainu. Prevod aktív tam a späť medzi vrstvami si zvyčajne vyžaduje transakcie v reťazci.

Spracovanie transakcií v druhej vrstve nie je závislé od konsenzu siete prvej vrstvy (blockchainu). Rôzne druhé vrstvy môžu mať rôzne znaky. Vyššia škálovateľnosť sa zvyčajne dosahuje za cenu nižšej decentralizácie a bezpečnosti.

K paralelizácii v Hydra alebo Lightning Network dochádza vytvorením komunikačných kanálov medzi používateľmi. Transakcie v kanáloch overujú len používatelia, ktorých sa transakcie týkajú. Lightning Network umožní otvoriť jeden kanál medzi 2 účastníkmi. Hydra umožní používateľom otvoriť viacero kanálov pre menší počet účastníkov.

V rovnakom čase tak môže prebiehať viacero paralelných transakcií v rôznych kanáloch. Keďže kanály sú na sebe nezávislé, uzly sa pri overovaní transakcií navzájom neblokujú.

Sidechains a Rollups sú ďalšie riešenia, ktoré umožňujú paralelné spracovanie transakcií a vykonávanie inteligentných kontraktov. Spracovanie sa vykonáva mimo reťazca, ale stále existuje závislosť od transakcií v reťazci. Každý typ druhej vrstvy má určité výhody a nevýhody a je ťažké predpovedať, ktorý typ bude v budúcnosti najpopulárnejší.

Komunikácia medzi vrstvami je stále potenciálnym úzkym miestom. Ak sa konsenzus siete blockchain dobre neškáluje, môže byť pre používateľov ťažké využívať výhody druhej vrstvy. Druhá vrstva teda nemusí byť konečným riešením a tímy musia dosiahnuť vyššiu paralelizáciu na úrovni sieťového konsenzu.

Technológie ako Input Endorsers alebo sharding umožňujú vyššiu paralelizáciu sieťového konsenzu.

Input Endorser umožňuje oddeliť výber a predbežnú validáciu transakcií od tvorby blokov. V sieti existuje niekoľko typov blokov, na ktorých môžu uzly pracovať paralelne. Každý typ bloku má iný účel. Medzi všetkými typmi blokov existuje určitá závislosť a na zachovanie linearity sa používa len jeden typ bloku. Výpočtové zdroje sú v sieti lepšie využité a vstupné endorsery zvyšujú priepustnosť transakcií.

Sharding je technika, pri ktorej je sieť rozdelená na menšie časti (alebo shardy), z ktorých každá je schopná nezávisle spracovávať transakcie a inteligentné kontrakty. To umožňuje určitý stupeň paralelizmu, keďže transakcie v rôznych shardoch sa môžu spracovávať súčasne. Shardy sú však stále na sebe závislé, a preto dochádza ku komunikácii medzi shardmi. Je potrebné udržiavať jednotný globálny stav v celom systéme, t. j. naprieč shardmi.

Cardano má určitú výhodu vďaka tomu, že sa tím rozhodol použiť účtovný model UTxO. S týmto modelom je pomerne jednoduché dosiahnuť vyššiu paralelizáciu sieťového konsenzu. Validácia transakcií a inteligentných kontraktov je do značnej miery na sebe nezávislá. Model UTxO uľahčil tímu návrh vstupných schvaľovateľov.

Na druhej strane je tento model výzvou pre vývojárov aplikácií. V ideálnom prípade by mali zvážiť navrhovanie aplikácií s vedomím paralelizácie. Môže trvať nejaký čas, kým sa dočkáme aplikácií, ktoré plne využívajú potenciál paralelizácie.

Ethereum je v tomto smere viac sekvenčné. Tvorba aplikácie je relatívne jednoduchá a tímy sa nemusia zaoberať súbežnosťou. Na druhej strane môže byť ťažké dosiahnuť vyššiu paralelizáciu systému.

Záver

Paralelizácia má na svet hlboký vplyv. Bez paralelizácie by mnohé z technologických pokrokov, ktoré dnes vidíme, neboli možné. Schopnosť vykonávať viacero úloh súčasne bola kľúčová pri spracovaní rastúcich objemov údajov generovaných v našom digitálnom veku.

Paralelné výpočty umožnili vývoj výkonných počítačov a serverov, ktoré dokážu spracovať veľké objemy údajov a rýchlo vykonávať zložité výpočty. Má zásadný význam pre trénovanie zložitých modelov umelej inteligencie. Paralelizácia v sieťach výrazne zvýšila rýchlosť, spoľahlivosť a efektívnosť prenosu a spracovania údajov. V súčasnosti mnohé tímy vrátane IOG využívajú techniky paralelizácie na zlepšenie škálovateľnosti a efektívnosti blockchainových sietí. To umožní širšie využitie tejto technológie a narušenie mnohých odvetví, v podstate podobným spôsobom, ako sa to v minulosti podarilo počítačom alebo internetu.


Pôvodný článok: Parallelism Is Essential to Blockchain | Cardano Explorer (cexplorer.io)