1. Kādi modeļi pašlaik tiek izmantoti ķēdē?
Tādas plaši pazīstamas ķēdes kā Ethereum, EOS un Solana izmanto konta modeli. Var pat teikt, ka vairāk nekā 90% projektu izmanto UTXO modeli, piemēram, BTC un DOGE. , LTC, protams, arī daži salīdzinoši jauni projekti izmanto šo modeli, piemēram, FUEL, izmantojot OP shēmu Layer2.
2. Kas ir konta modelis?
Lai vienkārši saprastu, tā ir bankas kontu sistēma, piemēram, pārskaitījumi starp bankām, Alipay, WeChat pārskaitījumi utt., tas viss pieder konta modelim. Ļaujiet man sniegt jums piemēru:
Ja A ir 100 un B ir 100
Šajā laikā A pārskaita B 50 juaņas.
Izpausme sistēmā ir
A -50, B +50
Tātad viņu līdzsvars
A 50, B 150
Šis ir pārskaitījums.
Pieņemsim vēlreiz, ka A joprojām ir 100, un viņš vēlas pārskaitīt 1 juaņu 100 jauniem konta īpašniekiem.
Šajā laikā A ir jāpārskaita 1 juaņa 100 cilvēkiem vienlaikus.
1.
A -1, 1. persona +1
Tātad viņu līdzsvars
A 99, 1. persona 1
2. darījums
A -1, 2. persona +1
Tātad viņu līdzsvars
98. klase, 2. persona 1
3. darījums
A -1, 3. persona +1
Tātad viņu līdzsvars
97. klase, 3. persona 1
Un tā tālāk
......
Nr. 100
A -1, 100. persona +1
Tātad viņu līdzsvars
0., 100. persona 1
Teorētiski ir jāveic 100 pārskaitījumi, un nākamajam pārskaitījumam jābūt pabeigtam pirms iepriekšējā. Pretējā gadījumā nevar garantēt konta atlikuma nemainīgumu, un radīsies neskaidrības par to, vai ir veikti vairāki pārskaitījumi vai arī atlikums ir pietiekams pārskaitījumam.
Teorētiski, palielinoties darījumu skaitam, palielinās izpildei nepieciešamais laiks.
3. Kas ir UTXO modelis?
Kā jau minēts iepriekš, daudzi vecie galvenie zīmoli izmanto UTXO, un šī loka priekštecis Bitcoin arī izmanto UTXO modeli. Starp citu, mūsu valsts emitētā legālā digitālā valūta DCEP arī ir balstīta uz UTXO modeli, tāpēc šim modelim ir jābūt savām unikālajām iezīmēm.
UTXO apzīmē neizlietoto darījumu izvadi (Unspent Transaction Output), kas nozīmē "neizlietoto darījumu izvadi" (Unspent Transaction Output). Tā modelis ir nedaudz līdzīgs naudas sistēmai ikdienas dzīvē. Piemēram:
A ir maks (īsts maks) ar 1 juaņas, 10 juaņu un 100 juaņu banknotēm tajā.
A vēlas dot 1 juaņu attiecīgi B, C un D.
Ir trīs veidi
Pirmā metode: paņemiet 1 juaņu un iedodiet to B.
Otrā metode: iedodiet C 10 juaņas un saņemiet 9 juaņas atlikumā.
Trešā iespēja: iedot D 100 juaņu banknoti un saņemt atpakaļ 99 juaņas.
Visas trīs metodes var pabeigt šo darījumu.
Atgriežoties pie ķēdes, iedomājieties, ka katra naudas nominālvērtība šeit faktiski ir UTXO ķēdē. Lietojumā esošā UTXO netiek pārsūtīta, bet gan pastāvīgi iznīcināta un atjaunota. Piemēram:
A pārskaita naudu C, izmantojot otro metodi. UTXO ar nominālvērtību 10 juaņas tiks iznīcināts, un sistēma atkārtoti izdrukās UTXO ar nominālvērtību 1 juaņa un UTXO ar nominālvērtību 9 juaņas. 1 juaņa tiks dota C, bet 9 juaņas tiks atgrieztas A.
Trešā metode ir tāda pati. 100 juaņas tiek iznīcinātas, un tiek izdrukāta viena UTXO ar nominālvērtību 1 juaņa un viena ar nominālvērtību 99 juaņas. 1 juaņa tiek dota D, un 99 juaņas tiek atdotas A.
Šī ir atšķirība starp UTXO un konta modeļa pārsūtīšanas metodēm. Vēl pārsteidzošāk ir tas, ka UTXO modelis var veikt pārskaitījumus paralēli. Tā kā atlikums pastāv, izmantojot decentralizētus UTXO, katru nominālvērtību faktiski var pārskaitīt dažādām personām vienlaikus. Iepriekš minētās trīs metodes var tikt veiktas vienlaicīgi vienā darījumā, jo nav konta konsekvences problēmu. Katrs UTXO tiek aprēķināts neatkarīgi.
Salīdzinot iepriekš minēto konta modeli, katram darījumam ir jāpaļaujas uz iepriekšējā darījuma pabeigšanu, un var iedomāties veiktspējas atšķirību. Tas liek mums saprast, kāpēc centrālās bankas digitālā valūta izmanto UTXO modeli, pretējā gadījumā kā Šeņdžeņa var nosūtīt 10 miljonus digitālo RMB uz 50 000 makiem?
Atgriezīsimies pie iepriekš minētā piemēra.
A ir 100, un viņš vēlas pārskaitīt 1 juaņu 100 jauniem klientiem, kuri ir atvēruši kontus.
UTXO ar nominālvērtību 100 var sadalīt 100 UTXO ar nominālvērtību 1 juaņa un pēc tam vienā darījumā, kas tiek pabeigts nekavējoties, tieši izplatīt 100 personām.
Īsāk sakot, iedomājieties UTXO nominālvērtību kā elastīgāku skaidru naudu, kas ķēdē tiek pastāvīgi iznīcināta un atjaunota.
Ja vēlaties uzzināt, cik daudz naudas ir šajā maka adresē, jums jāskaita UTXO skaits ar atlikumiem un jāapkopo tie.
4. Konta modeļa un UTXO priekšrocības un trūkumi
Konta modeļa priekšrocības:
Līgums tiek glabāts kontā koda veidā, un kontam ir savs stāvoklis. Šim modelim ir labāka programmējamība, izstrādātājiem tas ir vieglāk saprotams, un tam ir plašāks scenāriju klāsts.
Partiju darījumu izmaksas ir zemas. Iedomājieties, ka ieguves pūls maksā ieguvējam apstrādes maksu. Tā kā katrai UTXO ievades un izvades operācijai ir nepieciešams atsevišķs Witness skripts vai Locking skripts, pati transakcija būs ļoti liela, un paraksta pārbaude un transakciju glabāšana patērēs vērtīgus resursus ķēdē. Konta modelis var ievērojami samazināt izmaksas, izmantojot līgumus.
Konta modeļa trūkumi:
Konta modeļa transakcijām nav atkarību, tāpēc ir jāatrisina atkārtošanas problēma. Kā Ethereum risina šo problēmu? Mēs zinām, ka Ethereum izmanto unikālu Nonce vērtības metodi. Katrā transakcijā Tx ir Nonce lauks. Katram lietotājam šo Nonce nevar atkārtot, tādējādi izvairoties no atkārtošanas uzbrukumiem.
Lai ieviestu Lightning Network/Raiden Network, Plasma u. c., lietotāja pierādījumiem ir nepieciešams sarežģītāks pierādīšanas mehānisms, un stāvokļa migrācijai no apakšķēdes uz galveno ķēdi ir nepieciešams sarežģītāks protokols.
UTXO priekšrocības:
Aprēķins tiek veikts ārpus ķēdes, un pati transakcija ir gan rezultāts, gan pierādījums. Mezglam ir jāveic tikai pārbaude, un transakcijai nav nepieciešami papildu aprēķini, kā arī nav nepieciešama papildu stāvokļa glabāšana. Pašas transakcijas izejas UTXO aprēķins tiek veikts makā, tāpēc transakcijas aprēķinu slogu pilnībā sedz maks, kas zināmā mērā samazina ķēdes slodzi.
Izņemot Coinbase darījumus, darījuma ievade vienmēr ir saistīta ar UTXO. Darījumus nevar atskaņot atkārtoti, un darījumu secību un atkarības ir viegli pārbaudīt, kā arī viegli pierādīt, vai darījums ir izmantots.
UTXO modelis ir bezvalstnieks un to ir vieglāk apstrādāt vienlaicīgi.
P2SH tipa darījumiem ir labāka privātuma aizsardzība. Darījuma ievades dati nav savstarpēji saistīti, un tādas tehnoloģijas kā CoinJoin var izmantot, lai palielinātu privātumu.
UTXO trūkumi:
Dažas sarežģītas loģikas nav iespējams ieviest, un programmējamība ir slikta. Sarežģītas loģikas vai līgumu gadījumā, kuriem nepieciešams saglabāt stāvokli, to ir grūti ieviest, un stāvokļa telpas izmantošanas līmenis ir relatīvi zems.
Ja ievades apjoms ir liels, palielināsies arī liecinieka skripta lielums. Pats paraksts patērē vairāk centrālā procesora un krātuves vietas.
5. Kādas ir īsas atšķirības starp konta modeli un UTXO?
Konta atlikums
Konta modelis: Jūs varat viegli un skaidri redzēt, cik daudz naudas ir kontā.
UTXO modelis: saskaitiet UTXO skaitu zem adreses, un to summēšanas rezultāts ir atlikums.
Kad darījumu skaits pieaug eksponenciāli
Konta modelis: Tas kļūs arvien sarežģītāks.
UTXO modelis: dabiski atbalsta augstu vienlaicīgumu.
No viedlīgumu/izstrādātāju viedokļa
Konta modelis atbilst izstrādātāja loģiskajiem ieradumiem un ir samērā viegli rakstāms loģikā.
UTXO skriptu programmēšana ir samērā sarežģīta


