Mechanismy konsenzu u BlockChainu
Z hlediska bezpečnosti a zamezení zdvojeným transakcím musí validátoři při zápisu do blockchainu provést určitý důkaz v závislosti na mechanismu konsenzu daného blockchainu. Seznam existujících mechanismů konsenzu je sdružen níže:
Rychlý přehled mechanismů konsenzu:
Proof Of Work
(POW)
Při proof of work konsenzu jsou validátory sítě tzv. mineři. POW, tedy důkaz vykonané práce, je zde definován nezbytností vyřešení matematické úlohy, kdy při hledání výsledku je výpočetním čipem spalováno vysoké množství elektrické energie.
Odměnou za nalezené řešení je tzv. vytěžení bloku = vytvoření bloku pro zápis do blockchainu a s ním spojená odměna, dána jako podíl na poplatcích z transakcí / vymintování nových tokenů definujících inflaci. Tu získává vždy validátor, jenž najde dané řešení jako první. Zbylí validátoři nalezené řešení snadno ověří jako správné a poté přebírají. Následně všichni validátoři přechází na hledání řešení matematické úlohy spojené s novým blokem.
Obtížnost úloh se automaticky redukuje na úrovni protokolu tak, aby rychlost produkování bloků v čase kulminovala kolem konstantní úrovně. Například u prvního blockchainu z pohledu kapitalizace - Bitcoinu - jde o blocktime 10 minut, kdy obtížnost je regulována každých 2016 bloků (~ 2 týdny)
Řešenými matematickými rovnicemi jsou obvykle umělé úlohy neřešící žádnou uživatelskou potřebu. Například u již zmíněného Bitcoinu se výpočetní operace točí kolem hashovacího algoritmu SHA-256. Jmenovitě jde o hledání 32bit kryptografické nonce (číslo použité pouze jednou), z něhož vygenerované 64bitové haxadecimální číslo (=hexadecimální kódování SHA-256 hashe o 256bit na výstupu) je o nižší či shodné hodnotě, než je hash bloku, který je rovněž 64bit hexadecimálním číslem. 64bit hexadecimální číslo má 64 znaků, kdy každý znak může nabývat 1 ze 16 stavů (=hexa), tedy v IT hantýrce hodnoty 0 - 15. Jelikož decimální soustava nabývý pouze 10 hodnot (0-9), zbylých 6 hodnot (10-15) je reprezentováno písmeny A-F.
Proof of Stake
(POS)
Při proof of stake konsenzu je validátor určený k tvorbě bloku vybírán náhodně. Na trhu existuje několik typů POS konsenzů, lišících se používanými kryptografickými funkcemi, parametry validátorů i jejich odměňováním a sankcionováním v případě nekorektního chování v síti. Co se týče odměn za vytěžený blok, je to obdobné jako u POW.
Při nejpopulárnější POS síti Ethereum jde o hashovací funkci Keccak-256 se statickým blocktime 12 sekund. Každý validátor v síti ručí 32ETH, z nichž mu jsou strhávány pokuty, nechová-li se v rámci konsenzu. Díky konstantnímu majetkovému ručení v případě všech validátorů, logicky zde není třeba řešit žádné otázky rozdílnosti velikosti a vlivu jednotlivých validátorů, jako tomu může být u některých POS blockchainů.
Výhodou POS blockchainů je, že každý držitel tokenu sítě se na validaci může podílet výměnou za část odměn, a to delegováním svých tokenů na provozovatele provozujícího validátor. V závislosti na protokolu, tyto tokeny mohou nebo nemusí být počas delegace likvidními.
Delegated Proof of Stake
(dPOS)
Při delegated proof of stake se vychází z principů POS konsenzu, přičemž je zohledňována držená hodnota jednotlivých validátorů. Validátor, zvaný zde delegátor, má v síti s rostoucím stackem (množství tokenů ve správě) i rostoucí vliv. Jde o jakousi digitální demokracii, kdy lidé svým stackem hlasují pro konkrétní delegátory, jež na síť dohlížejí.
Proof of Authority
(PoA)
Proof of Authority je variací POS, při které existuje nižší počet autoritativních validátorů (nadace, burzy, majoritní investoři…), kteří případným nevalidním chováním danou důvěru k provozování validátora mohou ztratit.
Proof of Capacity
(PoC)
Proof of Capacity konsenzus je jakousi analogií POW konsenzu. Namísto hledání řešení prostřednictvím zkoušení náhodných nonce, u Proof of Capacity konsenzu jsou veškerá řešení již známá, uložena v úložišti, jakým jsou pevné disky. Závod o to, kde bude mít šanci vyprodukovat blok, je poté závodem o nalezení výsledku dané rovnice v úložišti. S rostoucí velikostí uložiště poté rostou i šance na nalezení řešení.
Proof of Elapsed Time
(PoET)
Při Proof of elapsed time konsenzu se pracuje s definovaným časem, za který daný validátor má naplánované vytěžení bloku. Tento čas je vždy stanoven náhodně, a na základě tohoto náhodného času je poté validátor zařazen do fronty validátorů tvořících bloky v jednotlivých epochách / slotech.
Proof of Identity
(PoID)
Proof of identity, jak název napovídá, je konsensem založeným na jedinečné identifikovatelnosti každého jedince v síti, nejen validátorů. Známost totožnosti zde nahrazuje přístup s prokazováním práce i jiného ručení. Každý identifikovaný jedinec zde má stejnou jednotku hlasovací síly. Samotná identifikace je zde součástí každé transakce, a to ve formě podpisu.
Proof of Activity
Proof of Activity je kombinací POS a POW mechanismu. V POW probíhá těžení bloku, který je pouze jakousy schránkou, kterou posléze naplní transakcemi a podepíše náhodně přiřazený validátor běžící na POS konsenzu. Přitom platí, že daná “náhoda” přiřazení validátora klesá s velikostí jeho staku.
Consensus as a service
(CaaS)
V podnikové sféře je možné narazit na případy použití, kdy data mají zůstat soukromá či proprietární, přesto decentralizovaná, dostupná, neměnná a veřejně ověřitelná. Při současném požadavku spolehlivosti, je nezbytné, aby daná síť byla spravována velkým množstvím nezávislých uzlů, a to je nejjednodušeji dosažitelné využíváním již existující veřejné distribuované účetní knihy (DLT z distributed ledger technology) nabízející konsenzus jako službu (CaaS). Zjednodušeně, tento CaaS umožňuje spojení vlastnosti soukromí a důvěry.
V CaaS se ukládají zejména časová razítka zápisu různých událostí. Samotná data po dosažení konsensu v síti jsou poté uložena s ohledem na optimalizaci držených dat na počítačích fungujících jako tzv mirror node.
Další typy mechanismů blockchainu
- Proof of Process
- Proof of signature (PoSign)
- Proof of Retrievability (PoR)
- Proof of Location
- Proof of Proof (PoP)
- Proof of History
- Proof of Existence
- Proof of Research (DPoR)
- Proof of Weight (PoWeight)
- Proof of Zero (PoZ)
- Proof of Importance