🇨🇿 Vysvětlení eUTXO modelu jako pětiletému dítěti

Cardano se od Etherea zásadně liší svým účetním modelem. Zatímco Cardano používá rozšířený model UTXO (eUTXO), Ethereum používá účty. V tomto článku zjednodušeně vysvětlíme rozdíl mezi těmito přístupy.

Účetní model

Blockchain si můžete představit jako účetní knihu, historii účetních záznamů, které zapisuje účetní. Účetní kniha je otevřená, takže do všech záznamů mohou kdykoli nahlížet všichni účetní, ale také všichni uživatelé. Účetní budou v naší analogii představovat síť. Představte si, že účetní sedí v bance a obracejí se na ně klienti (uživatelé), kteří je žádají o provedení účetních zápisů (transakcí). Všichni účetní sdílejí jednu účetní knihu, kterou používají pro účetní zápisy.

V blockchainových sítích vlastní mince uživatelé. I když jsou záznamy v jedné účetní knize, když uživatelé přijdou za účetním s žádostí o změnu záznamu, musí ji potvrdit otiskem palce (obdoba digitálního podpisu transakce). Představte si mince ADA a ETH jako kousky papíru, které uživatelé vkládají do dřevěné krabičky (peněženky). Kousky papíru jsou fyzicky v účetní knize a dohromady tvoří jednotlivé stránky účetní knihy, ale díky krabičce se na ně uživatelé mohou podívat a předat je účetnímu, pokud žádají o provedení změny záznamu (odeslání transakce).

Cardano a Ethereum se liší způsobem zápisu záznamů v účetní knize, a tedy i tím, jak klienti mince drží.

Cardano pracuje s mincemi ADA podobně jako s bankovkami s tím rozdílem, že nominální hodnota může být libovolná. Například 12 ADA, 3,5 ADA a 0,3 ADA. Uživatel má ve své schránce 3 papírky s těmito napsanými hodnotami (má 3 UTXO). To je celkem 15,8 ADA. Na rozdíl od Etherea má Cardano navíc tu možnost, že v krabici může být více menších krabiček, které obsahují jednotlivé papírky (menší krabičky představují adresy blockchainu). V jedné menší krabičce může být více papírků.

Pokud by Alice chtěla Bobovi poslat 14 ADA, musela by účetnímu předat dva papíry s 12 ADA a 3,5 ADA. Účetní by vytvořil nový list papíru (nové UTXO) a napsal by na něj 14 ADA. Tento list papíru by vložil do Bobovy schránky. Poté by vytvořil další nový papírek s hodnotou 1,5 ADA, který by vrátil do Aličiny krabičky.

Když účetní dokončí zápis do účetního deníku (zpracuje transakci), bude mít Alice ve schránce 2 papírky s hodnotou 0,3 ADA a 1,5 ADA. Bobova krabička byla před provedením zápisu prázdná. Po provedení zápisu do účetní knihy bude mít 14 ADA.

Analogii jsme trochu zjednodušili. Účetní by si za zápis do účetní knihy vzal poplatek (transakční poplatek), řekněme 0,2 ADA, takže by do Aliciny schránky vrátil pouze 1,3 ADA.

V účetním modelu Etherea mají uživatelé v krabici vždy jen jeden papírek se zapsanou hodnotou. Je to podobné jako aktuální zůstatek na bankovním účtu. V případě Cardana měla Alice ve své krabičce 15,8 ADA. Předpokládejme, že má 15,8 ETH v Ethereu, takže má ve své krabičce jediný papírek s touto hodnotou.

V případě Etherea, když chce účetní provést nový účetní zápis, přepíše data na papíře Alice a Boba současně. Pokud Alice pošle Bobovi 14 ETH, jako v předchozím příkladu, účetní přepíše hodnotu 15,8 na 1,8 na Aličině papírku. Současně přepíše Bobův papírek a z hodnoty 0 udělá hodnotu 14. V tomto příkladu jsme také vynechali poplatky účetní.

Na příkladech jsme ukázali, jak uživatelé chodí za účetními a žádají je o provedení účetního zápisu, což je obdoba odeslání transakce. Velmi podobně by to fungovalo, kdyby uživatelé požádali účetní o složitější operaci, například o půjčku nebo výměnu dvou aktiv (provedení chytrých kontraktů).

Nový záznam v Ethereu vzniká přepsáním papírků (změna zůstatku), zatímco v síti Cardano se vytvářejí samostatné nové papírky, které navazují na předchozí. Vytváření nových papírků namísto jejich přepisování je klíčovým rozdílem mezi účetními modely.

Rozdíl v používání účetní knihy

Účetní model ovlivňuje způsob, jakým Cardano a Ethereum používají hlavní knihu, neboli jak mohou účetní vytvořit nový zápis. Účetní v síti Ethereum musí při vytváření nového záznamu (nebo více záznamů) vyjmout účetní knihu z trezoru a přinést si ji na svůj stůl, aby mohl pracovat se všemi krabičkami najednou (sdílený globální stav).

Aby mohl účetní provést nový záznam, musí mít přehled o všech papírcích a musí si být jistý, že se v době jeho záznamu nepokusí záznam provést jiný účetní. Tím, že si účetní knihu vezme na svůj stůl, dává ostatním účetním signál, že zápisy může nyní provádět pouze on.

Ostatní účetní v síti nemohou zadat svůj zápis do účetní knihy, protože ji má pro sebe jiný účetní. Nemohou ani předem připravit nové zápisy, protože nevědí, jaké nové zápisy budou v účetní knize provedeny. Jakmile je účetní kniha zpět v trezoru, může si ji vzít jiný účetní. Všichni účetní se mohou podívat na nové zápisy a ověřit, zda jsou správné (validace bloku).

Výhodou je, že účetní, který má knihu k dispozici, může provádět případné změny ve všech krabičkách. Dokonce může v jedné krabičce změnit papírek vícekrát za sebou. Nevýhodou je, že záleží na pořadí, v jakém se nové zápisy zapisují. Pokud účetní zapíše 20 nových zápisů, ostatní účetní musí toto pořadí respektovat. Jednotlivé zápisy jsou na sobě vzájemně závislé.

Může se stát, že ve frontě je více uživatelů, kteří mají zájem o provedení zápisu do účetní knihy. I když byl jejich požadavek v době zařazení do fronty platný, až na ně přijde řada, účetní nemusí být schopen požadavek zpracovat. Přesto musí uživatel zaplatit účetnímu poplatek za to, že se pokusil o zpracování. Nemožnost provést účetní operaci je způsobena tím, že byla závislá na papírku, které se mohl změnit, když měl účetní knihu pro sebe jiný účetní. Uživatelé bohužel nemají možnost si před zařazením do fronty předem ověřit, zda bude jejich požadavek platný.

Účetní v síti Cardano si také musí vzít účetní knihu na svůj stůl z trezoru, když chce vytvořit nové záznamy, ale nebrání ostatním účetním v jejich práci. Účetní nemusí sledovat všechny ostatní krabičky, protože pracuje pouze s papírky, které mu klient položil na stůl. Účetní může ověřit platnost požadované účetní operace bez ohledu na ostatní papírky (Cardano nemá globální stav).

Klienti si mohou předem ověřit, zda je jejich požadovaná transakce platná (off-chain validace), a pokud ano, mohou si být jisti, že když se zařadí do fronty, účetní jejich transakci přijme a provede. Mohou si být také jisti, že poplatek zůstane stejný.

Jednotlivé papírky na sobě nejsou závislé, takže pořadí zápisů prováděných účetním, který má účetní knihu pro sebe, není důležité. Když účetní vrátí účetní knihu do trezoru, mohou ostatní účetní souběžně ověřovat zápisy.

Nezávislost konkrétní účetní operace na ostatních krabičkách (papírcích v krabičkách) má tu výhodu, že pokud prošla lokálním ověřením uživatele, má téměř jistotu úspěchu. Uživatel si může sám zahrát na účetního aby zjistil, jestli je jeho požadavek validní. To je důležité zejména u složitějších operací, jako jsou půjčky a směna aktiv (smart contracts).

Nevýhodou je, že zejména u složitějších účetních operací mohou chtít na stejném papírku pracovat dva účetní současně, ale uspět může jen jeden z nich. V některých případech je třeba zavést nějakou speciální synchronizaci mezi účetními.

V současné době pracují účetní v síti Cardano podobně jako v síti Ethereum. Hlavní rozdíl spočívá v tom, že účetní nepotřebují ke své práci znát kontext všech papírků ve schránkách ostatních uživatelů. Princip vytváření nové sady záznamů a následné validace je podobný tomu, jak probíhá v síti Ethereum. Jeden zvolený účetní si vezme účetní knihu z trezoru na svůj stůl a vytvoří nové záznamy. Větších rozdílů se dočkáme, až přejdeme na novou verzi konsensu Ouroboros PoS.

Možnosti škálovatelnosti s ohledem na účetní model

Účetní v síti Ethereum nemohou pracovat paralelně na jednotlivých účetních operacích. V každém okamžiku může účetní knihu z trezoru vyjmout pouze jeden účetní. Poté může bezpečně pracovat se všemi papírky ve schránkách. Protože ostatní účetní musí vždy navázat na poslední zápis v účetní knize, nemohou pracovat s klienty, kteří čekají ve frontě. Vždy musí počkat, až se účetní kniha vrátí do trezoru, aby se mohli podívat na předchozí zápisy. Ty musí potvrdit a teprve poté může jeden další účetní začít pracovat s dalšími klienty ve frontě. To v podstatě znemožňuje paralelní zpracování účetních operací a je hlavní překážkou škálovatelnosti.

V síti Cardano bude moci pracovat více účetních současně a každý z nich může zpracovávat požadavky klientů ve své vlastní frontě. Tato schopnost bude využita v konsensu PoS zvaném Leios. V síti Cardano budou moci účetní připravovat účetní záznamy předem pro jednoho hlavního účetního, který bude připravené záznamy kontrolovat.

Když si účetní převezme účetní knihu pro sebe, vždy zapíše další nové záznamy (vytvoří nový blok). Tím vznikne seznam zápisů, který pak musí ověřit ostatní účetní (konsensus sítě). Tento proces obvykle trvá určitou dobu (doba bloku) a počet nových zápisů je omezen (velikost bloku). Účetní se střídají ve sdílení účetní knihy zhruba ve 20sekundových intervalech. I když účetní pracuje například jednu sekundu, ověření zápisů zabere zbytek času.

Cardano umožní vybranému účetnímu (případně více účetním) připravovat nové zápisy každou sekundu a poté nechá hlavního účetního provést hlavní kontrolu (najít a vyřadit pokusy o dvojí utracení téže mince, odstranit duplicity atd.). To je možné jen proto, že práce jednotlivých účetních je do značné míry nezávislá na výsledku práce ostatních účetních a hlavního účetního. Nezávislost vyplývá ze skutečnosti, že papírky v krabicích jsou na sobě nezávislé.

V síti Ethereum bude třeba škálovatelnost řešit jinak. Nelze použít stejný přístup, protože práce jednotlivých účetních je vzájemně závislá. Každý účetní musí přesně vědět, co udělal ten předchozí. Tyto informace však nemusí mít k dispozici kvůli času, který je potřeba k šíření dat po síti. Omezením je nutnost uzamčení účetní knihy pro jednoho účetního, který potřebuje pracovat se všemi schránkami, a nemožnost ostatních účetních mezitím udělat něco užitečného. Vytvoření a následná validace nových záznamů (blok) trvá 20 sekund a během této doby může pracovat pouze jeden účetní. Zbytek účetních zahálí.

Závěr

Doufáme, že vám naše analogie pomohla pochopit rozdíl v účetních modelech Cardano a Ethereum. Rozdíl není na první pohled tak velký, ale ve skutečnosti účetní model ovlivňuje škálovatelnost, předvídatelnost výsledku požadované účetní operace, předvídatelnost výše poplatků, bezpečnost atd. Pokud chcete podrobnější popis, doporučujeme náš obsáhlejší článek.

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

Přečtěte si článek s obrázky v AJ: