1. Jaké modely se v současnosti používají

Ethereum, EOS, Solana a další známé řetězce používají účetní model, dokonce lze říct, že více než 90 % projektů používá účetní model, zatímco pouze některé starší projekty používají UTXO model, jako BTC, DOGE, LTC, a samozřejmě také několik novějších projektů, které tento model používají, jako například FUEL, které používá OP řešení v Layer2.

2. Co je to účtový model

Jednoduše řečeno, je to systém bankovních účtů, například převody mezi bankami, převody přes Alipay a WeChat atd. To vše patří do modelu účtů. Uvedu příklad:

Pokud má A 100 a B má 100.

V tuto chvíli A posílá B 50 Kč.

v systému se projevuje jako

A -50, B +50

Takže jejich zůstatek

A 50, B 150

To je jedna transakce.

Pokud A má stále 100, chce poslat 1 Kč 100 novým uživatelům.

V tuto chvíli A potřebuje současně poslat 1 Kč 100 lidem.

První transakce

A -1, první osoba +1

Takže jejich zůstatek

A 99, první osoba 1

Druhá transakce

A -1, druhá osoba +1

Takže jejich zůstatek

A 98, druhá osoba 1

Třetí transakce

A -1, třetí osoba +1

Takže jejich zůstatek

A 97, třetí osoba 1

A tak dále

......

Stá osoba

A -1, stý člověk +1

Takže jejich zůstatek

A 0, stý člověk 1

Teoreticky by mělo být potřeba provést 100 převodů a každá další transakce musí být nejprve dokončena, jinak nebude možné zaručit konzistenci zůstatku, což by vedlo k zmatku, například zda došlo k nadměrnému převodu, zda je zůstatek dostatečný na převod apod.

Teoreticky, s rostoucím počtem transakcí, se čas potřebný k provedení zvyšuje.

3. Co je to UTXO model

Jak bylo zmíněno dříve, mnoho starších mainstreamových kryptoměn používá UTXO a prapředek tohoto odvětví, Bitcoin, také používá UTXO model. Mimochodem, naše země vydává zákonnou digitální měnu DCEP, která je také založena na UTXO modelu, takže tento model má určitě své jedinečné vlastnosti.

UTXO je zkratka pro Unspent Transaction Output, což znamená "nevyužitý výstup transakce". Jeho model je zjednodušeně podobný hotovostnímu systému v každodenním životě, uvedu příklad:

A má peněženku (ve skutečnosti), která obsahuje bankovky 1 Kč, 10 Kč a 100 Kč.

A chce dát B, C a D každému 1 korunu.

A má tři způsoby, jak to udělat.

První způsob: Vytáhnout 1 Kč bankovku a dát ji B.

Druhý způsob: Vytáhnout 10 Kč bankovku a dát ji C, a vrátit 9 Kč.

Třetí způsob: Vytáhnout 100 Kč bankovku a dát ji D, a vrátit 99 Kč.

Všechny tři způsoby mohou dokončit tuto transakci.

Vrátíme se k blockchainu, představte si, že každá bankovka zde vlastně představuje chain UTXO. V průběhu používání UTXO se nepřenáší, ale neustále se ničí a obnovují, například:

A posílá C peníze druhým způsobem, 10 Kč UTXO bude zničeno, systém vytiskne jednu 1 Kč UTXO a jednu 9 Kč UTXO, 1 Kč jde C, 9 Kč se vrací A.

Třetí způsob je obdobný, 100 Kč se zničí a vytiskne se jedna 1 Kč UTXO a jedna 99 Kč UTXO, 1 Kč jde D, 99 Kč se vrací A.

To je rozdíl mezi UTXO a účtovým modelem. Je to ještě lepší, protože UTXO model umožňuje paralelní převody, protože zůstatek je uložen přes rozptýlené UTXO, takže každá hodnota může být současně převedena různým lidem. Výše uvedené tři způsoby mohou být dokončeny v jedné transakci, protože se to netýká problémů s konzistencí účtů; každé UTXO se počítá samostatně.

Při porovnání s výše uvedeným účtovým modelem, každá transakce musí být založena na dokončení předchozí transakce, což jasně ukazuje rozdíl v výkonu. Takto pochopíme, proč centrální bankovní digitální měna používá UTXO model; jinak jak by Shenzhen mohl poslat 10 milionů digitálních jüanů 50 000 peněženkám?

Vraťme se k výše uvedenému příkladu.

A má 100, chce poslat 1 Kč 100 novým uživatelům.

100 Kč UTXO může být rozděleno na 100 UTXO o hodnotě 1 Kč a poté se přímo rozdělit mezi 100 lidí v jedné transakci, což se okamžitě dokončí.

Celkově si představte hodnotu UTXO jako flexibilnější hotovost, která se na blockchainu neustále ničí a obnovuje.

Chcete-li zjistit, kolik peněz má tato peněženka, musíte spočítat, kolik UTXO má a sečíst je.

4. Výhody a nevýhody účtového modelu a UTXO

Výhody účtového modelu:

Smlouvy jsou uloženy jako kód v účtu a účet má svůj vlastní stav. Tento model má lepší programovatelnost, je snadněji pochopitelný pro vývojáře a má širší uplatnění.

Náklady na hromadné transakce jsou relativně nízké. Představte si, že pool platí minerům poplatky; v UTXO každý vstup a výstup potřebuje samostatný Witness script nebo Locking script, což činí transakci velmi velkou, a ověřování podpisů a ukládání transakcí spotřebovává cenné zdroje na blockchainu. Naproti tomu účtový model může výrazně snížit náklady prostřednictvím smluv.

Nevýhody účtového modelu:

Mezi transakcemi modelu účtu není žádná závislost a je třeba vyřešit problém s opětovným přehráním. Ethereum to vyřešilo pomocí jedinečné hodnoty Nonce. V každé transakci Tx je pole Nonce, které nesmí být pro každého uživatele opakováno, což brání útokům na opětovné přehrání.

Pro implementaci Lightning Network, Plasma atd. potřebují uživatelé složitější mechanismus pro dokazování, a migrace stavu z podřetězce na hlavní řetězec vyžaduje složitější protokol.

Výhody UTXO:

Výpočty probíhají mimo blockchain, samotná transakce je výsledkem i důkazem. Uzly provádějí pouze ověření, není potřeba provádět dodatečné výpočty a není potřeba další ukládání stavu. Výpočet výstupu UTXO se provádí v peněžence, takže zátěž výpočtu transakce je zcela na peněžence, což do určité míry snižuje zátěž blockchainu.

Kromě Coinbase transakcí jsou vstupy transakcí vždy spojeny s nějakým UTXO. Transakce nelze znovu přehrát a pořadí a závislosti transakcí lze snadno ověřit, stejně jako zda byla transakce spotřebována.

UTXO model je bezstavový, což usnadňuje paralelní zpracování.

Pro transakce typu P2SH má lepší soukromí. Vstupy v transakci nejsou vzájemně propojeny, lze použít technologie jako CoinJoin ke zvýšení určitého soukromí.

Nevýhody UTXO:

Nelze realizovat složitější logiku, programovatelnost je slabá. Pro složitou logiku nebo smlouvy vyžadující uchování stavu je obtížné implementovat, a využití prostor stavu je relativně nízké.

Když je vstupů hodně, zvyšuje se také počet skriptů pro svědectví. A podpis sám o sobě spotřebovává CPU a úložný prostor.

5. Jaké jsou stručné rozdíly mezi účtovým modelem a UTXO

Zůstatek účtu

Účtový model: Můžete jednoduše a jasně vidět, kolik peněz je pod účtem.

UTXO model: Spočítat, kolik UTXO je pod touto adresou, a pak sečíst jejich souhrn pro zůstatek.

Když počet transakcí exponenciálně vzroste

Účtový model: Bude stále obtížnější.

UTXO model: Přirozeně podporuje vysokou konkurenci.

Z pohledu chytrých smluv/vývojářů

Účtový model vyhovuje logickým zvyklostem vývojářů, je relativně snadné psát logiku.

Programování skriptů UTXO je složitější.