🇨🇿 Finalita Cardano transakcí

Tým, který navrhuje konsensus sítě, musí pečlivě vyvážit jednotlivé funkce. Co je z jednoho pohledu výhodné, může být z jiného pohledu nevýhodné. Není možné navrhnout jediné nejlepší řešení, které by nemělo žádné nevýhody. Pouze usilovný výzkum a technologický pokrok nám umožňují přiblížit se ideálnímu řešení. Cardano používá Proof-of-Stake ve stylu Nakamoto, což mimo jiné znamená, že má pravděpodobnostní finalizací transakcí. Pojďte si přečíst, co to znamená a jaké jsou výhody a nevýhody.

TLDR

Tým IOG dal u současné verze PoS přednost životashopnosti a bezpečnosti před rychlostí transakcí. Moderní sítě PoS kombinují výhody pravděpodobnostní a prokazatelné finality. Ouroboros Leios to může změnit.

Finalizace transakcí

Pravděpodobně víte, že každá transakce, kterou uživatelé odešlou, se postupně šíří distribuovanou sítí do všech uzlů produkujících bloky. Pokud má být hodnota přenesena z adresy na adresu, musí být transakce zahrnuta do bloku a blok musí zůstat v blockchainu. Aby byla transakce považována za finalizovanou (konečnou), musí být finalizovaný i blok.

Definujme, co znamená finalita transakce a konečnost bloku.

Konečnost transakce označuje okamžik, kdy je konkrétní transakce v rámci blockchainové sítě považována za neodvolatelně potvrzenou a nelze ji zvrátit ani zneplatnit. Představuje ujištění, že transakce byla vložena do bloku a je považována za trvalou součást historie blockchainu. Jakmile transakce dosáhne konečnosti, je obecně považována za vypořádanou a neměnnou.

Finalita transakce závisí na finalitě bloku, do kterého byla vložena.

Konečnost bloku se týká potvrzení a trvalosti celého bloku v rámci blockchainu. Představuje okamžik, kdy je blok transakcí považován za neměnný a nelze jej upravit nebo zahodit. Když blok dosáhne konečnosti, jsou za konečné považovány i všechny transakce v něm obsažené.

Úloha síťového konsensu

Konečnost bloku je důležitá, protože obsah bloku je neměnný. Síťový konsensus slouží k zajištění toho, aby uzly v síti dosáhly většinového konsensu o přidání nového bloku. Blockchain je tedy v podstatě jen řetězec na sebe navazujících bloků, jejichž pořadí je neměnné. Přesněji řečeno, od určité bodu v čase neměné.

Z hlediska konečnosti je rozhodující, v jakém okamžiku lze blok považovat za nevratný na základě konsensu sítě. Jinými slovy, hledáme bod, ve kterém si uživatel může být jistý, že většina uzlů v síti si je jistá, že daný blok zůstane v blockchainu navždy.

V kontextu blockchainu lze čas rozdělit na období, ve kterých jsou přidávány nové bloky. V případě Cardana je to v průměru 20 sekund, u Bitcoinu v průměru 10 minut a u Etherea 12 sekund.

Aby byl blok považován za finální, musí s ním souhlasit většina uzlů vytvářejících bloky v distribuované síti. Mohou tak učinit buď před přidáním nového bloku do blockchainu prostřednictvím nějaké formy hlasování, nebo poté propojením nového bloku s jeho předchůdcem. Použití předchozího bloku (nebo bloků) jako předchůdce nového bloku je vyjádřením souhlasu daného uzlu výrobce bloků.

Jak jsme uvedli v úvodu, Cardano používá Proof-of-Stake ve stylu Nakamoto, který vychází z konstrukce Proof-of-Work.

Nakamotův konsensus je schopen dosáhnout pouze tzv. pravděpodobnostní konečnosti. Síť je schopna dosáhnout konečného konsensu. Pravděpodobnostní konečnost znamená, že za určitých předpokladů o účastnících sítě, pokud vidíme několik bloků, které byly přidány za daný předchozí blok, můžeme odhadnout pravděpodobnost, že daný předchozí blok je konečný. Dosažení konečného konsensu znamená, že v určitém okamžiku v budoucnosti se všechny uzly shodnou na neměnnosti určité sady bloků. Dosažení konečného konsensu může trvat dlouho. Navíc není možné dopředu určit, jak dlouho to bude trvat.

Po přidání nového bloku si žádný účastník (ani uzly vytvářející bloky, ani uživatelé) nemůže být jistý, že blok nebude vrácen. Může dojít k takzvanému forku, kdy se nový blok produkující uzel nenaváže na poslední blok v blockchainu, ale na předchůdce tohoto bloku. To znamená, že po jednom bloku následují dva následníci. V blockchainu může zůstat pouze jeden z následníků. Druhý osiří, včetně všech transakcí. O tom, který následník v blockchainu zůstane, rozhodnou následující uzly, které blok produkují, a vyberou si jednu z variant. O vítězné verzi blockchainu rozhodne pravidlo delšího řetězce.

Abyste pochopili tento koncept, vždy po přidání nového bloku existuje malá šance, že blok bude revertován, a tím budou všechny transakce v něm zneplatněny.

Alternativou k pravděpodobnostní konečnosti je dokazatelná konečnost. Konsensus, který je navržen tak, aby měl prokazatelnou konečnost, má za cíl poskytnout absolutní jistotu, že kandidátský blok (a transakce v něm) je konečný a nemůže být zvrácen nebo změněn. Toho se obvykle dosahuje pomocí mechanismů konsensu, které zaručují deterministický výsledek, a matematických důkazů. Je možné vytvořit konsensus, který zabrání forkování blockchainu. Účastníci si mohou být jisti, že každý nově přidaný blok je konečný, tj. neměnný.

Protože každý nově přidaný blok je prokazatelně konečný, je nezbytné, aby před jeho zařazením do blockchainu proběhla nějaká forma hlasování mezi uzly vytvářejícími bloky. Pravidly definovaná většina (často ⅔ uzlů produkujících bloky) musí s nově navrženým blokem souhlasit. Pokud většina nesouhlasí, kandidát na blok není do blockchainu přidán a musí být vytvořen nový kandidát, o kterém se hlasuje znovu.

Výhody a nevýhody pravděpodobnostní a prokazatelné finality

Všimněte si, že oba popsané přístupy se v podstatě týkají určité formy hlasování. Hlavní rozdíl spočívá v tom, že v případě pravděpodobnostní finality se hlasuje až po přidání bloku (což může vést k forkům), zatímco v případě prokazatelné konečnosti se hlasuje před přidáním bloku.

Existují i hybridní varianty, kdy hlasování o nově přidaném bloku probíhá bezprostředně po jeho přidání. Blok je považován za nezměnitelný, jakmile pro něj hlasuje potřebná většina v síti. To znamená, že může dojít k forkování blockchainu, ale blok může být velmi rychle finalizován prostřednictvím hlasování (uzly produkující blok hlasují pro zachování konkrétního bloku).

Pokud block-producer uzel navrhne kandidáta na blok, hlasuje o něm v podstatě sám. Blok má jen malou “váhu”. Váha se zvyšuje s hlasy ostatních uzlů. V případě Cardana (a také Bitcoinu) se váha zvyšuje s každým přidaným blokem. Proto váha (počet hlasujících) roste pomalu. Pokud konsensus umožňuje hlasovat o bloku před jeho přidáním (nebo krátce po něm), má nový blok relativně rychle vysokou váhu.

Toto téma je poněkud složitější, protože je důležité vzít v úvahu hlasovací sílu jednotlivých uzlů (poolů) produkujících bloky. V síti Cardano může mít každý pool jiný podíl (počet stakovaných mincí ADA). Nový blok může navrhnout pool s nízkým stake nebo plně nasycený pool. Jaký to má vliv na nový kandidátský blok? Teoreticky žádný, protože každý nově navržený blok má podobný status. Nicméně SPO, které mají vysoký vklad, mají větší šanci vytvořit více bloků v daném časovém období, což může být výhoda, pokud dojde k forkování.

Nebudeme toto téma dále komplikovat a zůstaneme u finality, ale je důležité si uvědomit, že uzly produkující bloky mohou, ale nemusí mít v různých sítích stejnou hlasovací sílu. Decentralizace sítě je založena na vzácných zdrojích (mincích nebo hash rate) a kdo jich má více, má větší hlasovací sílu.

Vraťme se k finalitě. Rozdíl mezi pravděpodobnostní a prokazatelnou finalitou má zásadní vliv na robustnost a životaschopnost. Ovlivňuje také rychlost transakcí, tedy uživatelský zážitek.

V případě Cardana může docházet k zahození bloků, takže jakmile je vaše transakce vložena do bloku, nemáte jistotu, že v blockchainu zůstane navždy. Stále existuje malá šance, že bude zahozena. Cardano má pomalou konečnost bloků, tedy i transakcí. Jak bylo vysvětleno výše, váha roste pomalu, protože hlasování probíhá přidáváním nových bloků. Každých 20 sekund se přidá jedno hlasování.

V současné době produkuje bloky v síti Cardano přibližně 1 200 poolů. Hlasování pouhých 10 % poolů trvá 40 minut. Během této doby je přidáno 120 nových bloků.

Lze předpokládat, že daný blok zůstane v blockchainu i po přidání určitého malého počtu nových bloků. Problémem je, že tento nízký počet je obtížné odhadnout a je pouze pravděpodobnostní.

Existují sítě, například Algorand, které jsou schopny dosáhnout okamžité konečnosti bloků prostřednictvím hlasování. Jakmile je nový blok přidán, nemůže být nikdy vyřazen. Zároveň nikdy nedochází k forkování blockchainu. Algorand má dobu trvání bloku přibližně 3,6 sekundy, a pokud je do bloku vložena vaše transakce, je okamžitě finální.

Ethereum každou epochu rozdělí všechny validátory do 32 stejných výborů. Epocha má 32 slotů. Každý slot trvá 12 sekund. Celá epocha tedy trvá 6 minut a 24 sekund. Každý výbor je zodpovědný za výrobu bloku a členové výboru jsou zodpovědní za poskytnutí atestu (potvrzení, zda souhlasí, nebo nesouhlasí s blokem navrženým výrobcem). Každý nově přidaný blok je potvrzen 3,1 % celkové hlasovací síly. To znamená, že blok získá vysokou váhu (velký počet hlasů) podstatně rychleji než v případě Cardana.

Konsensus ve stylu Nakamoto upřednostňuje životaschopnost protokolu před rychlostí transakcí, tj. schopnost vždy vytvořit nový blok, i když je velká část uzlů nedostupná. V případě, že se velký počet uzlů dostane do offline režimu, bude výroba bloku trvat déle (chybějící sloty), ale je velká pravděpodobnost, že k tomu dojde. S postupným návratem uzlů do sítě bude výroba bloků častější.

U sítí, ve kterých probíhá aktivní hlasování o každém bloku, může být výroba bloků zastavena, pokud 34 % (obvykle více než ⅓ uzlů vyrábějících bloky) přejde do režimu offline. Sítě s prokazatelnou konečností jsou považovány za odolnější vůči útokům a mohou lépe zajistit integritu blockchainu. Tyto sítě dávají přednost zastavení produkce bloků (bez konsensu) před produkcí bloků za každou cenu.

Sítě s prokazatelnou konečností mají několik nevýhod. Konsensus sítě může být relativně složitý a zranitelný. Hlasování vyžaduje určitou režii a může trvat relativně dlouho. Tyto sítě mohou být náchylnější k výpadkům produkce bloků, pokud se vyskytnou problémy s rychlostí šíření dat po internetu. Může být obtížnější dosáhnout vysoké škálovatelnosti.

Vrátíme-li se jen krátce k decentralizaci a bezpečnosti, v případě Cardana potřebuje útočník získat více než polovinu vzácného zdroje (mincí ADA), zatímco v sítích s prokazatelnou konečností obvykle potřebuje získat více než ⅓ zdroje. Získání 1/3 zdroje stačí útočníkovi k tomu, aby síť nebyla schopna dosáhnout konsensu.

Závěr

Uživatelé mají tendenci upřednostňovat rychlost transakcí před bezpečností, protože bezpečnost je ve většině blockchainových sítí relativně vysoká. Chtějí hlavně rychle odeslat transakci a mít jistotu její konečnosti. První vrstvy by však měly být především co nejbezpečnější a decentralizované. Budoucnost pravděpodobně patří hybridním přístupům, které kombinují pravidlo nejdelšího řetězce s mechanismem zajišťujícím rychlou konečnost. Ouroboros Leios něco takového do Cardana přinese, protože ze tří typů bloků, které budou v síti vznikat, bude určitá forma hlasování probíhat nad druhým typem, tedy nad bloky potvrzení (endorsed blocks). Třetí typ bloků, který bude podobný tomu současnému, bude obsahovat odkazy na endorsed bloky, tj. bloky obsahující souhlas relativně velkého stake.

Článek se týkal především finality transakcí, ale je důležité si uvědomit, že jádrem Cardana je vysoká decentralizace a nativní likvidní staking. Těchto vlastností bylo dosaženo částečně proto, že Cardano nemá slashing a k účasti na stakingu není třeba mít určitý (relativně vysoký) počet mincí. Ethereum používá k dosažení konsensu hlasování, a to vyžaduje možnost uzamknout ETH a trestat validátory za chování, které je v rozporu se zájmy protokolu. S kvalitou stakingu souvisí také například konečnost transakcí, a tedy decentralizace.

Technologický pokrok bude Cardano posouvat vpřed. Ouroboros Leios bude dalším významným krokem, pokud jde o konečnost transakcí na první vrstvě.

Článek připravili Cardanians s podporou Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/finality-of-cardano-transactions