UTXO-model VS kontobaseret model. Hvilket blockchain-system ser bedst ud?

De fleste kryptovalutaer arbejder med UTXO-teknologien, der opererer med princippet om individuel og absolut gyldighed for hver transaktion, ligesom fysiske kontanter. Som implementeret i Ethereum sporer den kontobaserede model brugernes saldi gennem et separat regnskabssystem. Denne artikel dykker ned i de grundlæggende funktioner i begge netværk, fremhæver deres vigtigste forskelle og giver et kortfattet overblik over hver enkelt.
Introduktion for nybegyndere
Er du ny i Bitcoin? Ud over at forstå, hvilken slags aktiv det er, skal du også kende BTC’s blockchain-teknologi. Enhver digital værdi skal kunne overføres. Overførslen af midler via blockchain initieres af ejeren og danner dermed en transaktion, der giver netværket besked om det beløb, der udveksles, og den nye ejers identitet.
De fremherskende modeller inden for blockchain-teknologi er UTXO-systemet (Unspent Transaction Output) og kontosystemet. Bitcoin opererer med de ubrugte output, mens Ethereum bruger kontosystemet.
Blockchain: Et dynamisk tilstandssystem
For det første er det vigtigt at forstå blockchain bredt som et tilstandssystem. Et system betragtes som en tilstand, hvis det er programmeret til at huske brugerinteraktioner og tidligere begivenheder. De lagrede oplysninger kan betegnes som systemets tilstand, og blockchain defineres som et tilstandsorienteret system. Systemet gennemgår en tilstandsovergang, når en ny blok vises i henhold til dets protokol.
Uanset om blockchain anvender konto- eller UTXO-netværket, forbliver den grundlæggende mekanisme den samme: Brugertransaktioner (TX’er) udsendes over netværket, og med hver ny blok, der tilføjes, registreres nogle af dem permanent. De deltagende parters saldi opdateres under overgangen til den nye tilstand.
Den kontobaserede model
Kontomodellen henviser til banksystemet, hvor din adresse har en bestemt saldo eller en numerisk repræsentation af den værdi, der er gemt på kontoen. Enhver bevægelse i saldoen er blot en matematisk operation på bankens server.
Lad os nu dykke ned i regnskabsnetværket i blockchain. Dette system (som bruges i Ethereum), der ligner en bankkonto, repræsenterer aktiver som saldi på konti.
Hver Ethereum-wallet har en saldo, lagerplads og mulighed for at få adgang til andre konti eller adresser. Når den første sum modtages på wallet’en, tilføjes en privatnøglekontrolleret konto til den globale tilstand og lagres på alle noder i netværket. Implementering af en smart kontrakt skaber en kodestyret konto, der kan opbevare midler og omfordele dem baseret på vilkår, der er defineret i kontraktlogikken.

Udførelse af TX’er reducerer afsenderens kontosaldo og øger modtagerens saldo. For at beskytte mod replay-angreb har hver Ether-transaktion en nonce knyttet til sig, et samlet nummer, der sikrer, at transaktionen ikke kan udføres mere end én gang.
Gebyrer i Ether beregnes ud fra forbrugte beregningsressourcer i stedet for optaget hukommelsesplads. Det stemmer overens med Ethereums vision om at blive en verdenscomputer.
UTXO-modellen. Hvorfor er dette system innovativt?
Utxos forklarede
Bitcoin fungerer som en offentlig hovedbog. Den indeholder optegnelser over hver eneste transaktion, der er gennemført på netværket, kaldet UTXO. Men hvad er UTXO?
UTXO-betydning kan defineres som en blockchain, der ikke har tegnebøger i protokollaget. I stedet gemmer de mønter som en liste over ubrugte transaktionsoutput (UTXO’er), hvilket betyder, at hvert output repræsenterer en brugers saldo af mønter (f.eks. BTC), der kontrolleres af en bestemt adresse.
Udtrykket “uforbrugt transaktionsoutput” kommer af, at systemet er et output af en transaktion, som en bruger har modtaget, og som de kan bruge i fremtiden, da det stadig er “uforbrugt”. TX’er genereres ved at forbruge eksisterende outputs og skabe nye i stedet.
Princippet om informationsoverførsel
Bitcoin, som er en UTXO-krypto, er en innovativ anonym udvekslingsmetode. En BTC-overførsel er ikke A+B=C; det er en mere besværlig struktur med inputs og outputs.
- Input er midler, som nogen engang har sendt til os.
- Output er det, vi skal sende i den aktuelle transaktion.
- Summen af input lægges sammen, og de danner en sum, som sendes videre.

Utxo forklarede følgende: Lad os tage en transaktion med 1 input og 1 output. En Satoshi (SAT) er i øjeblikket den mindste Bitcoin-enhed i blockchainen. Bruger №1 sender 50.000 SAT til modtageren. Det har vi:
- Input 50.000 SAT.
- Output er modtagerens adresse og et beløb, der skal modtages (50.000 SAT)
Bruger 2 sender 11.500 SAT. Nu har vi 2 separate ubrugte transaktionsoutputs med en samlet sum på 61.500 SAT, det beløb, du ser i din wallet som modtager.
Der er nogle vigtige regler for sådanne inputs og outputs.
- Der kan være et vilkårligt antal af dem.
- Summen af outputs må ikke overstige summen af inputs. Som regel er der flere indgange end udgange. I dette tilfælde dannes ændringen og returnerer forskellen til afsenderen.
- Hver indgang kan kun bruges én gang.
Så hvordan interagerer inputs og outputs med hinanden? Lad os se, hvordan en transaktion fungerer indefra.
Input-hash’en
- Den forrige output-hash er hashen af en anden transaktion, som disse mønter kom fra, og som vi vil bruge nu.
- Find det forrige output-indeks for TX, som vi vil bruge. Som allerede nævnt kan der være flere udgange fra en TX, så det er vigtigt at vide, hvilken der skal bruges – til det formål er udgangene nummererede.
- De to første elementer refererer til et af resultaterne af en anden transaktion, der er udført tidligere.
ScriptSig er et unblocking-script skrevet i et særligt Bitcoin-scripting-sprog.
Output-hash’en
- Værdien er antallet af SAT’er, vi vil sende
- ScriptPubKey er det blokerende script, der foreskriver den betingelse, hvorunder du kan bruge midlerne i dette output. Det vil sige, at dette program låser midlerne i outputtet.
Resultatet af transaktionen er et pengeskab med et testamente og en skat indeni. Og dette pengeskab kan kun åbnes af en person, der opfylder de betingelser, der er beskrevet i testamentet. Denne betingelse er at være i besiddelse af en privat nøgle. Hvordan afgøres det, hvem der kan bruge penge fra boksen? Det afgøres af parameteren PubKeyHash. Ejeren af den private nøgle, som svarer til den offentlige nøgle i hashen, kan bruge pengene.
I unblocking-scriptet lægger modtageren sin offentlige nøgle og tilføjer en digital signatur (private nøgledata og transaktionsdata) som sin private nøgle. Den digitale signatur viser, at den nødvendige nøgle er til stede, men nøgleregistreringen afsløres ikke. Hvorfor ikke bare en privat nøgle? Fordi den af sikkerhedsmæssige årsager ikke kan vises til nogen.
Ved afslutningen af den forrige transaktion opretter låsescriptet forbindelse til oplåsningsscriptet ved indgangen til den aktuelle transaktion. Til denne procedure er det nødvendigt at tage modtagerens offentlige nøgle fra oplåsningsscriptet og lave en kopi af den. Kopien konverteres derefter til en kommandohash. Her sammenlignes hashen med det, afsenderen har angivet i hash-mappen. Hvis der er et match, har modtageren vist den korrekte primærnøgle, og de erklæres som den retmæssige ejer af pengene i outputtet.
Teknisk set er det ikke Bitcoins, vi giver hinanden, men retten til at bruge dem. Når du har sendt en bitcoin, betyder det ikke, at du ejer den. For at bevise, at du ejer en mønt, skal du foretage en ny transaktion, men du ejer ikke de mønter længere. I øvrigt skal du muligvis betale skat af overførsler af kryptovaluta.
Ubrugte output: en analogi med kontanter
For at få en bedre forståelse kan man tænke på det som et fysisk pengesystem, hvor brugerne kontrollerer forskellige mængder af kontanter.
En indehaver med 50 SATs kan eje en enkelt til en værdi af 50 SATs eller en kombination af mindre udgange svarende til 50 SATs. Det svarer til, at en person, der ejer 50 dollars, kan have en enkelt 50 dollarseddel eller en kombination af mindre sedler.
Tidligere blokke kan ikke ændres eller reduceres, så transaktionens resultat skal bruges fuldt ud. Hvis brugeren kun ønsker at bruge en del, sendes det resterende beløb (output-beløbet minus det ønskede beløb) tilbage til brugerens adresse som en ændring.
Hvis man for eksempel bruger 10 SAT fra en UTXO til en værdi af 50 SAT, skaber transaktionen to outputs: et output på 10 SAT til modtageren og et output på 40 SAT i byttepenge tilbage til den oprindelige ejer. Det svarer til, hvis du gav 50 dollars og modtog 40 dollars i byttepenge fra modtageren.
I modsætning til kontanter beholder modtageren aldrig byttepengene. I stedet sendes de straks tilbage til den oprindelige ejers adresse. En anden forskel er, at pengesedler har faste værdier, f.eks. 1, 5 eller 10 dollars. Ubrugte udgange kan have en hvilken som helst værdi, f.eks. 2,83636.
Da modellen fungerer uden konti og tegnebøger på protokolniveau, er det op til klienten at holde styr på brugerens saldo. Tegnebøgerne holder styr på de adresser, som brugeren kontrollerer, og sporer de TX’er, der er forbundet med dem på blockchain. Summen af alle ubrugte transaktioner bestemmer den aktuelle saldo, som brugeren kan kontrollere.
Sammenligning af UTXO med regnskabssystem
Indtil videre har vi fået forklaret kontonetværket og UTXO. Men hvad er forskellene?
Opretholdelse af en global oversigt over balancer
Det kontobaserede system har en omfattende, global oversigt over alle private nøgler og kontosaldi. Disse oplysninger lagres på tværs af alle netværksnoder og udgør systemets globale tilstand.
I modsætning hertil er den globale tilstand i UTXO-systemet defineret som mængden af alle transaktionsoutput og udvides konstant med nye output. I mellemtiden opdateres den globale tilstand i regnskabsmodellen konstant, idet kontosaldi ændres som følge af TX’er. Systemets tilstand er en liste over konti og deres tilsvarende saldi.
Registrering af systemets tilstand
Den vigtigste forskel på UTXO og Account-netværket er registreringen af overgangen fra en tilstand til den næste. Account-modellen vedligeholder en database med netværkstilstande, mens UTXO registrerer aktivets bevægelse som en rettet acyklisk graf (DAG) mellem adresser. DAG tillader ikke cirkulære forbindelser mellem noder.

Figuren til venstre viser UTXO-modellens DAG. Hver tilstand symboliserer en blok i blockchainen. Hvert transaktionsoutput repræsenterer en node i DAG og en eller flere kanter, der udgår fra transaktionsoutputtet. Et nyt transaktionsoutput har således ingen udgående kant. I ovenstående eksempel er transaktionsoutput 3, 5, 6 og 7 ubrugte.
Grafen til højre viser kontomodellen. Hver ny bloks tilstand opdateres på baggrund af TX’erne i blokken. Antallet af saldi forbliver konstant og afhænger ikke af antallet af TX’er, så længe antallet af smart contracts forbliver konstant.
I kontomodellen udgør det aktuelle sæt af saldi den globale tilstand. I ovenstående eksempel er dette sættet af saldi A, B og C. Brugersaldi opdateres globalt.
I UTXO registreres kun transaktionsindtægter. Hele grafen med transaktionsoutput (både brugte og ubrugte) repræsenterer den globale tilstand. Hver transaktion har potentiale til at ændre tilstanden, men konstante tilstandsovergange er ikke praktiske. Alle netværksmedlemmer skal forblive synkroniserede i den aktuelle tilstand. Det bliver stadig sværere at udvikle en konsensusmekanisme, der synkroniserer alle noder, efterhånden som tilstandsændringerne sker oftere.
Når hyppigheden af tilstandsopdateringer stiger, bliver det et problem at nå en inkonsistent tilstand, hvor nogle knudepunkter har en anden forståelse af tidligere begivenheder. Derfor repræsenterer hver ny blok en ændring i systemtilstanden, og TX’er grupperes i blokke.
Men kryptovalutaer er ikke kun et udvekslingsmiddel; de har flere og flere funktioner hver dag. For eksempel er Ethereum og Bitcoin for længst blevet integreret i kasinosystemer.
Hybride systemer

QTUM’s blockchain-system er et eksempel på brugen af en hybridstruktur, der kombinerer Utxo-møntsystemet og kontomodeller. Valget om at inkorporere UTXO-modellen, der blev truffet under opstarten af Qtum, var drevet af ønsket om at opbygge en alsidig og sikker blockchain, der er egnet til forretningsbrug. UTXO-modellen blev anset for at være mere sikker end kontosystemet, da den blev vedtaget.
Med indførelsen af Account Abstraction Layer (AAL) giver Qtum mulighed for at oprette og udføre smarte kontrakter ved hjælp af den kontomodel, som Ethereum har gjort populær. AAL fusionerer UTXO’er til en ny overførsel, når to eller flere er tilgængelige for kontraktkoden. Qtum arbejder også på BlackCoins Proof of Stake Protocol, som specificerer parallelle beviser for ubrugte outputs.
Endelige fakta
Alt i alt opfylder begge systemer kravet om at opretholde nøjagtige balancer i et konsensussystem.
Fordele ved UTXO-modellen
- Beskyttelse af personligeoplysninger: Systemet giver en højere grad af beskyttelse af personlige oplysninger, især når brugerne bruger nye adresser til hver overførsel. For endnu mere privatliv kan man overveje avancerede teknikker som ringsignaturer.
- Skalerbarhed: Muligheden for at behandle flere outputs samtidigt muliggør parallelle TX’er og fremmer fremskridt inden for skalerbarhed.
Fordele ved kontomodellen:
- Effektivitet: Systemet er mere effektivt, da det kun kræver, at hver overførsel validerer, at den afsendende sum har tilstrækkelig balance til at gennemføre den.
- Enkelhed: Ethereum-netværket valgte denne model for at gøre det lettere for udviklere at skabe komplekse smartkontrakter, især dem, der indeholder tilstandsoplysninger. For eksempel holder en smart kontrakt styr på tilstande for at udføre forskellige handlinger baseret på dem. UTXO’s tilstandsløse natur ville kræve, at TX’er bærer tilstandsinformation, hvilket gør kontraktdesignet unødigt komplekst.
Den største ulempe ved det andet system er, at det er modtageligt for angreb med dobbeltforbrug. For at imødegå dette har hver wallet i Ethereum en offentlig nonce, der øges med én for hver transaktion, der foretages, hvilket sikrer, at den samme overførsel ikke kan sendes flere gange.
Begge modeller har fordele og ulemper og muliggør grænseoverskridende overførsler med helt ny teknologi. Nogle blockchains vælger UTXO for at drage fordel af de fremskridt og innovationer, der er udviklet gennem Bitcoin-blockchain.