O konsenzus algoritmoch

Blockchain siete sú distribuované systémy, ktoré majú jednu špecifickú spoločnú vlastnosť – sieť a všetci jej účastníci sa musia dohodnúť obrazne povedané, na obsahu distribuovanej účtovnej knihy, čiže musia spoločne dosiahnúť konsenzus.

K tomuto procesu je potrebný špeciálny algoritmus, ktorým sa tento konsenzus dosiahne a zároveň zabezpečí to, že v každom bloku je uložená vždy posledná verzia všeobecne uznanej a schválenej pravdy. V tomto článku sa budem venovať práve týmto druhom algoritmov, aké v súčasnosti poznáme a využívame.

Existujú tri kľúčové vlastnosti, ktoré musí každý konsenzus algoritmus mať:

  • Consistency – mechanizmus konsenzu je bezpečný, ak všetky uzly produkujú rovnaký platný výstup.
  • Aliveness – mechanizmus konsenzu je “živý”, ak všetky zúčastnené uzly dokážu zabezpečovať tento proces.
  • Fault tolerance – mechanizmus konsenzu je odolný voči zlihaniu node-y (účastníka v sieti).

Proof of Work (PoW)

Tento model algoritmu je asi najznámejší, najrozšírenejší a hovorí sa že najbezpečnejší a najefektívnejší. Samozrejme pokiaľ nehovoríme o energetickej efektivite, pretože to rozhodne nieje. Model PoW umožňuje všetkým minerom v sieti rovnaké podmienky pri generovaní nových blokov a hashovaní nových informácií a tým pádom aj v možnostiach odmeny. Noda, ktorá ako prvá nájde výsledok hash algoritmu a zahashuje blok získava odmenu. Na tento proces sa v súčasnosti spotrebuváva enormné množstvo energie. V prípade Bitcoinu môžeme hovoriť za minulý rok o spotrebe celoročnej energie ostrova ako je Cyprus.

Bitcoin blockchain je najznámejším blockchainom využívajúcim PoW, kde ako odmenu za blok “vypláca” 12,5BTC za každý blok a využíva sa hash algoritmus SHA-256. Fungovanie tohto algoritmu som načrtol v článku kde som rozbiehal blockchain v rámci konvenčných jazykov ako je napr. javascript.  Poznáme aj množstvo ďalších algoritmov ako napríklad ScryptBlake-256CryptoNightHEFTY1QuarkSHA-3scrypt-jane, scrypt-n a rôzne ich kombinácie.

Proof of Stake (PoS)

Jedným z potenciálnych riešení na vysokú energetickú náročnosť PoW je aj tento protokol. Proof of Stake funguje na princípe “voľby” hlavnej nody, ktorá bude zodpovedná za zahashovanie bloku. Čím viac takáto noda vlastní coinov, tým väčšiu šancu má stať sa hashovacou nodou. V súčasnosti vznikajú napríklad dPoS čo je delegovaný proof of stake, čo znamená že samotná komunita môže hlasovať svojimi vlastnými coinami za konkrétnu nodu, ktorej sa takto zvyšuje šanca na to byť zvolenou za validátora bloku. V prípade voľby za validátora zdieľa odmenu za zahashovaný blok so všetkými účastníkmi, ktorí “hlasovali” za danú nódu.

PoS model využívajú projekty ako Tezos, Decred a konkrétne dPoS projekt Cardano.

Proof of Burn (PoB)

Pálenie coinov v praxi znamená odosielanie ich na konkrétnu adresu, ku ktorej nieje žiaden prístup a tým pádom sú tieto coiny navždy stratené či obrazne povedané, zničené. V prípade PoB minery svoje coiny pália pre vyššiu šancu byť zvoleným ako ďalší validátor bloku. Pri tejto zaujímavej alternatíve môžeme nájsť viacero analogií s PoW  no najväčší problémom je práve márnenie prostriedkov za účelom získania ďalších.

Projekty využívajúce PoB sú napríklad Counterparty a Slimcoin.

Proof of Importance (PoI)

V prípade tohto modelu nezáleží na množstve coinov ktoré zvyšujú šancu byť zvoleným za ďalší validátor bloku, je to dôležitosť resp. užitočnosť danej nody. V úvahu sa berie reputácia nody, aktivita a počet transakcií. Týmto mechanizmom sa získava širší pohľad na užitočnosť nody v sieti a tým pádom právom zaslúžené udelenie vyminovať ďalší blok.

Príkladom využitia PoI je napríklad NEM.

Proof of Elapsed Time (PoT)

Spoločnosť Intel navrhla vlastný konsenzus protokol zvaný proof of elapsed time. Funguje rovnako ako PoW ale je o niečo efektívnejší v prípade energetickej náročnosti. Žiadny náročný hash algoritmus nieje treba riešiť, “trusted execution environment (TEE)” je zodpovedné za to, že nový blok bude vytvorený na základe lotérie, ktorú zabezpečí a zaručí sa za určitý čas čakania práve TEE. V konečnom dôsledku hoc je matematika za týmto modelom zaujimavá, pre tento protokol je potrebný špeciálny hardware od Intelu a tým pádom aj dôvera v tretiu stranu – Intel.

Ako príklad môže poslúžiť jeden z produktov platformy Hyperledger – Sawtooth.

Proof of Space/Capacity

Tento model berie v úvahu namiesto coinov či výpočetnej sily diskovú kapacitu nody. Čím viac voľného miesta na disku dokáže noda zabezpečiť, tým ma väčšiu šancu vyminovať ďalší blok.

Zaujímavý príklad môže byť Burst Coin.

 

Za zmienku ešte stojí spomenúť Stellar Consenzus Protokol. Tento protokol môžeme nazvať evolúciou blockchainu, kde využíva všetky výhody decentralizácie a bezpečnosti, no nevyužíva PoW alebo PoS ani žiadne PoXYZ. Tento protokol funguje na základe využívania “quorov”, čo sú nody, ktoré majú za úlohu dosahovať medzi sebou konsenzus výmenou istých signatúr. Tým sú transakcie veľmi rýchle a s minimálnym, bezpečnostným poplatkom 0.00001 lumenov, čím sa zabraňuje DoS útokom na sieti. Stellar vyzerá celkom komplexne ale najmä veľmi zaujímavo, preto sa v budúcnosti pravdepodobne doňho ponorím hlbšie.

Záver

Hlavnou myšlienkou konsenzus modelov je zabezpečiť distribuovanú sieť dostočnými ekonomickými prostriedkami, aby bolo výhodnejšie chrániť a podporovať sieť, než na ňu organizovať útoky a škodiť jej.

 

Related Posts