Bitkoino pagrindinė knyga: UTXO modelis ir sandorio gyvavimo ciklas

Kai dauguma žmonių galvoja apie pinigų pervedimą, jie įsivaizduoja paprastą centrinės knygos atnaujinimą: Alisos banko sąskaitos likutis sumažėja, o Bobo – padidėja. Tai paprastas sąskaitomis pagrįstas modelis, kurį naudoja centralizuotos finansinės sistemos visame pasaulyje.

Tačiau Bitcoin, kaip decentralizuota skaitmeninė valiuta, negali remtis centrine valdžia, kad sekti visų balansus. Tokia sistema būtų pažeidžiama sukčiavimo, vieno gedimo taško ir begalinių ginčų dėl tikrosios tinklo būsenos.

Norėdami išspręsti šį gilią iššūkį, Bitcoin pristatė unikalų, patvarų ir labai audituojamą apskaitos struktūrą, žinomą kaip Nepanaudotų sandorio išvesties (UTXO) modelis. UTXO modelis yra variklis po Bitkoino dangčiu, užtikrinantis, kad kiekviena satoshi (mažiausia Bitkoino vienetas) būtų unikaliai sekuojama, kad dvigubas išleidimas būtų matematiškai neįmanomas ir kad visas tinklas galėtų patikrinti knygą nepasitikėdamas jokia viena šalimi.

Šis vadovas eina toliau nei paprastas sandorio apibrėžimas; mes analizuojame pagrindinę architektūrą – UTXO modelį – kad suprastume, kodėl jis yra esminis Bitkoino saugumui, audituojamumui ir architektūrinei vientisumui. Suprasdami, kaip šie skaitmeniniai komponentai kuriami, užrakinami ir sunaudojami, jūs gaunate gilesnį supratimą apie sudėtingą kriptografiją, kuri remia tikrą skaitmeninę suverenitetą.


Tradicinė bankininkystė prieš blokų grandinės sąskaitų knygą

Norint pilnai perprasti UTXO modelio genialumą, pirmiausia turime suprasti tradicinių finansinių struktūrų, kurias jis pakeitė, ribotumus.

Paskyros pagrįstas modelis: balansų sekimui

Centralizuotos sistemos, įskaitant bankus, mokėjimo procesorius ir net centralizuotas skaitmeninių žaidimų duomenų bazes, remiasi paskyros pagrįstu modeliu.

Šiame modelyje sistema palaiko visų vartotojų ir jų dabartinės grynosios vertės sistemoje pagrindinį sąrašą. Jei Alisa turi 1000 $ ir siunčia Bobui 100 $, sistema tiesiog atlieka dvi matematinės operacijas:

  1. Atimti 100 $ iš Alisos paskyros įrašo (1000 $ → 900 $).
  2. Pridėti 100 $ prie Bobo paskyros įrašo (0 $ → 100 $).

Šios sistemos privalumas yra jos paprastumas ir efektyvumas. Kadangi centrinis bankas palaiko kanoninę, patikrinamą būseną (balansų pagrindinį sąrašą), sandoriai yra greiti esamų duomenų laukų atnaujinimai.

Kodėl paskyros modelis žlunga decentralizuotose sistemose

Nors efektyvus centralizuotoms institucijoms, paskyros modelis kelia kritinius trūkumus, kai taikomas bepasitikėjimo, decentralizuotam tinklui, tokiam kaip Bitcoin:

  1. Būsenos patikrinimo sudėtingumas: Decentralizuotame tinkle kiekvienas mazgas turi sutarti dėl dabartinės būsenos (t. y. kiekvieno tikslus balansas). Jei mazgai nuolat atnaujina balansas, tikrosios būsenos patikrinimas reikalauja peržaidinėti kiekvieną sandorį nuo pat pradžių arba pasitikėti savavališku kontroliniu tašku. Tai daro patikrinimą skaičiavimo požiūriu sunku ir pažeidžiamą nesutarimams.
  2. Dvigubo išleidimo rizika: Pagrindinis skaitmeninių pinigų iššūkis yra užtikrinti, kad Alisa negalėtų siųsti tų pačių 100 $ ir Bobsui, ir Karolei. Paskyros modelyje be centrinio arbitrą, jei Alisa vienu metu transliuoja du prieštaringus sandorius ("Siųsti 100 $ Bobsui" ir "Siųsti 100 $ Karolei"), nėra tiesioginio, universalaus mechanizmo nustatyti, kuris yra galiojantis, ir užkirsti kelią abiem priimti.
  3. Audito problemos: Paskyros balansas yra nuolat besikeičiančios kintamosios. Nors galite matyti galutinį balansą, suprasti kaip tas balansas buvo sukauptas (ir užtikrinti, kad sistema neklydo per vieną iš milijono ankstesnių atnaujinimų) gali būti paslėpta už privačios korporacinės sąskaitų knygos.

UTXO modelis apeina visas šias problemas visiškai atsisakydamas „balanso“ koncepcijos ir sutelkiant dėmesį į atsekamus, diskretius vertės vienetus.


Decoding the UTXO Model (Unspent Transaction Output)

Bitcoin does not track how much money an address holds. Instead, the network tracks a collection of digital vouchers known as Unspent Transaction Outputs, or UTXOs.

A UTXO is, fundamentally, a record of Bitcoin that has been sent to a specific person and is now waiting to be spent. It is the fundamental building block of Bitcoin’s security and accounting system.

The Analogy of Digital Cash

The best way to understand the UTXO model is to think of it as handling physical cash, specifically banknotes, rather than managing a checking account balance.

Imagine you receive $50 from a friend. That $50 isn’t added to a running digital total; it exists as a single, physical $50 bill.

  1. If you want to spend $30: You cannot split the $50 bill. You must spend the entire $50 bill (the input) and, in return, receive two new things: a $30 payment for the merchant and $20 in change (a new UTXO) sent back to you.
  2. The $50 bill is "consumed" (spent) entirely, and new bills are created (new UTXOs).

This "consumption and creation" process is the core mechanism of the UTXO model. An address’s total "balance" is merely the sum total of all the unspent UTXOs that are currently locked to that address's cryptographic key.

Anatomy of a UTXO

Every UTXO is defined by three critical pieces of information recorded on the blockchain:

  1. The Source (Transaction ID and Index): A reference to the previous transaction where this UTXO was first created as an output. Since a single transaction can have multiple outputs, an index number (0, 1, 2, etc.) specifies which output is being referenced. This lineage is crucial because it ensures the network knows where the money came from.
  2. The Amount: The specific quantity of Bitcoin or satoshis contained within that UTXO.
  3. The Locking Script (ScriptPubKey): This is the cryptographic "lock" that dictates the specific conditions required to spend the UTXO in the future. In the most common scenarios (Pay-to-Public-Key-Hash or P2PKH), this script locks the funds to a specific public key hash, meaning only the person who possesses the corresponding private key can unlock it.

Once a UTXO is spent, it ceases to exist. It is marked as spent forever on the blockchain and cannot be used again, thus solving the double-spending problem.

The Concept of Change Outputs

The process of spending requires the sender to use the entire value of the selected UTXOs (inputs). If the total value of the inputs exceeds the amount the sender wants to pay the recipient, the excess amount does not simply vanish—it must be explicitly accounted for in a new output, known as the change output.

For example, Alice wants to pay Bob 0.05 BTC. She only has a single UTXO worth 0.1 BTC.

Input (Consumed UTXO) Output 1 (Payment) Output 2 (Change) Fee
0.1 BTC 0.05 BTC (to Bob) 0.049 BTC (to Alice's new address) 0.001 BTC

In this scenario:

  1. The original 0.1 BTC UTXO is destroyed.
  2. Two new UTXOs are created: one for Bob and one for Alice (the change).
  3. The remainder (0.001 BTC) is implicitly claimed by the miner as the transaction fee.

This mandatory accounting for change is a core security feature, ensuring that value is conserved across the entire network and providing a natural mechanism for paying network fees.


The Bitcoin Transaction Lifecycle: From Input to Output

A Bitcoin transaction is not a command telling a central server to update a balance; it is a meticulously constructed message proving that the sender has the authority to unlock and consume existing UTXOs, and instructing the network on how to create new, locked UTXOs in their place.

Step 1: Gathering Inputs (The Spending Process)

Before sending any Bitcoin, a user’s wallet software must locate existing UTXOs associated with their addresses. These UTXOs serve as the inputs for the new transaction.

The Wallet’s Responsibility: When you click "Send" in your wallet, the software scans the blockchain to determine which UTXOs you possess and then calculates how many UTXOs are needed to cover the desired payment amount plus the transaction fee.

  1. Selection: If you want to spend 1 BTC, and you have two UTXOs (0.7 BTC and 0.4 BTC), the wallet might select both, totaling 1.1 BTC, to use as inputs.
  2. Unlocking Proof: For each UTXO selected as an input, the sender must provide the cryptographic proof—the digital signature—that satisfies the locking condition established by the previous transaction (the ScriptPubKey). This process proves ownership without revealing the private key.

Step 2: Defining Outputs (The New UTXOs)

The inputs are the UTXOs being destroyed; the outputs are the new UTXOs being created. There are typically two types of outputs:

A. The Recipient Output

This output defines the amount of Bitcoin the intended recipient (Bob) will receive. This new UTXO is created and locked to Bob’s specific public key hash. Once confirmed in a block, Bob can use his private key to spend this new UTXO.

B. The Change Output

If the inputs’ total value exceeds the intended payment, the excess must be returned to the sender as a new UTXO. Best practice dictates that the wallet should send this change back to a new, unique address controlled by the sender. This practice enhances privacy by breaking the explicit link between the sender's old address and their future transactions.

Step 3: Paying the Network Fee

In every valid Bitcoin transaction, the total value of all inputs must be equal to or greater than the total value of all outputs.

The difference between the total input value and the total output value is the transaction fee.

This fee is not sent to a specific address; rather, it is left unclaimed by any output, allowing the miner who successfully validates and adds the transaction to the block to claim that residual amount as a reward for their work.

Incentive Mechanism: This mechanism is critical for Bitcoin’s security model. It provides miners with an economic incentive to prioritize and confirm transactions, ensuring the network continues to operate, even as the block subsidy (newly minted coins) diminishes over time. The fee amount is generally proportional to the size of the transaction data (in bytes) and the current level of network congestion, allowing users to bid for faster inclusion. (For a deeper dive, see our related page: Mempool Dynamics: Analyzing the Bitcoin Fee Market and Congestion Pricing).


Cryptographic Security: Locking and Unlocking the Digital Vault

The true ingenuity of the UTXO model lies not just in the accounting structure, but in the cryptographic mechanisms used to govern who can spend them. This control is implemented through a simple but powerful scripting language embedded in every transaction.

The Role of Cryptographic Scripts

Bitcoin transactions are not digitally signed by the wallet software; they are processed by a stack-based, non-Turing complete scripting language. While it sounds complicated, its purpose is straightforward: to act as the "lock" and the "key" for the UTXO.

A typical transaction involves two primary scripts:

1. The Locking Script (ScriptPubKey)

This script is placed in the output of the transaction (the UTXO being created). It sets the spending condition. Essentially, it declares: "Only someone who can prove they control this public key hash can spend this money." This is the lock.

2. The Unlocking Script (ScriptSig)

This script is provided in the input when the UTXO is consumed. It provides the data necessary to satisfy the locking script—primarily the user’s digital signature and the corresponding public key. This is the key.

When a node verifies a transaction, it combines the ScriptSig (the proposed solution) and the ScriptPubKey (the challenge) and executes the combined script. If the script executes successfully (resolves to "True"), the transaction is valid, and the UTXO can be consumed.

Standard Transaction Types

While Bitcoin’s scripting language allows for complex conditions (like multi-signature requirements or time-locked funds), the vast majority of transactions use two standard forms:

Pay-to-Public-Key-Hash (P2PKH)

This is the original and most common transaction type. It locks the funds to a hash of the recipient's public key (the Bitcoin address you are familiar with). To unlock it, the spender must provide the original public key and a valid digital signature generated by the corresponding private key.

Analogy: You lock a safety deposit box with a complex biometric lock (the address hash). To open it, you must present the specific biometric identifier (public key) and a signed document proving you authorized the action (digital signature).

Pay-to-Script-Hash (P2SH)

P2SH transactions allow users to send funds to an address that is derived from a complex script (a set of custom spending rules), rather than just a public key. This is often used for multi-signature wallets (requiring 2-of-3 signatures to spend) or time-locks. P2SH simplifies the recipient's address while allowing for much greater security and complexity behind the scenes.

The Verification Process: Digital Signature and Public Key

The most critical element of the unlocking script is the digital signature.

  1. Signing: The sender uses their private key to digitally sign the new, proposed transaction. This signature proves that the holder of the private key authorized the spend and ensures that the transaction details (recipients, amounts, fees) cannot be tampered with after signing.
  2. Verification: The network uses the sender's public key (which is publicly available, often included in the ScriptSig) to mathematically verify that the digital signature was created by the corresponding private key.

Crucially, the public key allows the network to verify ownership without the private key ever leaving the owner’s control. This process is the foundational mechanism for establishing self-custody and preventing fraud in a trustless environment.


UTXO pranašumai: patikimumas, saugumas ir privatumas

UTXO modelio, o ne intuityvesnio sąskaitų modelio, naudojimo sprendimas buvo apgalvotas pasirinkimas, kuris yra Bitcoin saugumo architektūros unikalių savybių pagrindas.

Sumažinta saugumo rizika per aiškius išlaidas

Sąskaitų modelis turi remtis konsensuso taisyklėmis, kad užkirstų kelią dvigubam išleidimui (pvz., „Kas pirmas įrašo sandorį, tas laimi“). Tačiau UTXO modelis dvigubą išleidimą padaro matematiškai neįmanomą per paties sandorio struktūrą:

Suvartojimo taisyklė: Įvestis (UTXO) gali būti suvartota tik vieną kartą. Kai ji įtraukiama į patvirtintą bloką, ji efektyviai sunaikinama. Jei piktybiškas vartotojas bando transliuoti du sandorius, kurie nurodo tą pačią UTXO kaip įvestį, antrasis sandoris automatiškai tampa negaliojantis tinkle, nes nurodyta įvestis nebeegzistuoja.

Ši suvartojimo ir kūrimo struktūra suteikia daug stipresnes garantijas nuo dvigubo išleidimo bandymų, užtikrindama visišką knygos būsenos vientisumą.

Patikimumas ir būsenos paprastumas

Tuo tarpu sąskaitų modelis reikalauja sekti nuolat kintančių balansų rinkinį (dinaminę būseną), UTXO modelis seka statinę išleistų ir neišleistų vienetų kolekciją (supaprastintą būseną).

Bitcoin tinklo globali būsena – galutinis visų šiuo metu prieinamų pinigų sąrašas – yra tiesiog visų pasaulyje esančių UTXO agregacija (UTXO rinkinys).

  • Patikrinimo paprastumas: Kad mazgas patvirtintų visą Bitcoin istoriją, jam tereikia patikrinti, ar kiekvienas naujai iškastas blokas teisingai suvartoja esamas UTXO ir sukuria naujas. Nėra painiavos dėl „bėgusių balansų“. Ši skaidri, patikrinama istorija yra esminė decentralizuotoms sistemoms, užtikrinanti, kad bet kuris dalyvis gali nepriklausomai patikrinti grandinės istoriją.
  • Darbo įrodymo sinergija: UTXO modelis suteikia tikslius apskaitos vienetus, už kuriuos kalnakasiai, veikiantys darbo įrodymo (PoW) konsensuso mechanizme, konkuruoja siekdami patvirtinti. Kalnakasio darbas – užtikrinti, kad sandorio bloke siūlomi UTXO transformacijos yra 100 % galiojantys prieš užplombuojant bloką. (Dėl pagrindinio konsensuso mechanizmo žr.: Darbo įrodymas (PoW): Bitcoin ekonominis sprendimas Bizantijos generolų problemai).

Privatumo ir pseudonimiškumo privalumai

Nors Bitcoin dažnai apibūdinamas kaip „anonimiškas“, tiksliau jį apibrėžti kaip pseudonimišką, reiškiantį, kad adresai ir sandoriai yra vieši, bet tiesiogiai nesiejami su realaus pasaulio tapatybėmis. UTXO modelis natūraliai stiprina šį pseudonimiškumą.

  1. Grąžos adresai: Kaip aptarta, kai išleidžiate UTXO, likučiai paprastai grąžinami į visiškai naują jūsų piniginės kontroliuojamą adresą. Ši praktika neleidžia stebėtojams lengvai susieti visų jūsų Bitcoin turto po vienu adresu.
  2. Įvesčių konsolidacija: Kai reikia surinkti kelias mažas UTXO (įvestis), kad atliktumėte didelį mokėjimą, gaunamas sandoris sukuria du visiškai naujus, nesusijusius išvestis (mokėjimą ir grąžą). Šis veiksmas efektyviai užmaskuoja lėšų kilmę, suteikdamas stipresnį atskyrimą tarp jūsų skirtingų Bitcoin veiklų.

Praktinis patarimas: Norėdami maksimaliai išnaudoti UTXO modelio privatumo privalumus, visada užtikrinkite, kad jūsų piniginės programinė įranga naudoja naujus adresus grąžos išvestims. Tai standartas daugelyje šiuolaikinių nesaugomų piniginių, bet tai kritinė praktika finansiniam pseudonimiškumui palaikyti.

Gerintas lygiagretus apdorojimas

UTXO modelis iš prigimties leidžia didesnį tinklo efektyvumą palyginti su sąskaitų modeliu.

Sąskaitų pagrindu veikiančioje sistemoje (kaip Ethereum), jei Alisa ir Bobas tuo pačiu metu bando sandoroti naudojant tą patį išmanųjį kontraktą ar tą pačią bendrą lėšų talpą, tie sandoriai turi būti apdorojami nuosekliai, kad būtų išvengta duomenų konfliktų.

UTXO modelyje sandoriai yra izoliuoti įvykiai, susiję su konkrečių, unikalių UTXO suvartojimu. Kol du sandoriai nemėgina suvartoti tos pačios įvesties, jie yra visiškai nepriklausomi. Ši savybė leidžia mazgams patvirtinti ir apdoroti skirtingus sandorius vienu metu (lygiagrečiai), ženkliai pagerindama tinklo apdorojimo pralaidumą ir atsparumą.


UTXO valdymo savarankiškam saugojimui santrauka

Vartotojams, judantiems link savarankiško saugojimo, suprasti, kaip jų Bitcoin saugoma – ne kaip agreguotas balansas, bet kaip atskirų UTXO kolekcija – yra esminga saugumui ir mokesčių optimizavimui.

UTXO pasirinkimas ir mokesčių valdymas

Sandorio mokesčio dydis nustatomas ne siunčiamo Bitkoino dolerio verte, bet duomenų dydžiu sandorio. Pagrindinis duomenų dydžio veiksnys yra įvesčių (UTXO), reikalingų sandoriui finansuoti, skaičius.

  • Maiau UTXO = Pigiau sandoris: Jei finansuojate sandorį naudojant vieną didelę UTXO (pvz., 5 BTC), sandorio duomenys maži, rezultate žemas mokesčio.
  • Daug UTXO = Brangesnis sandoris: Jei tą patį 5 BTC sandorį finansuojate naudojant penkiasdešimt mažų UTXO (po 0.1 BTC), sandorio duomenų dydis išauga, nes sandoris turi įtraukti atrakinimo scenarijų (parašą ir viešąjį raktą) visoms penkiasdešimčiai įvesčių. Tai rezultuoja daug didesnį mokestį.

Praktinis naudojimo atvejis: UTXO konsolidacija Jei laikui bėgant sukaupėte daug mažų UTXO (kartais vadinamų "dulkėmis"), yra finansiškai išmintinga periodiškai atlikti "UTXO konsolidacijos" sandorį. Tai reiškia siųsti visas šias mažas įvestis į vieną naują jūsų kontroliuojamą adresą. Nors konsolidacijos sandorio mokesčiai gali būti aukšti pradžioje (dėl didelio įvesčių skaičiaus), gaunama viena didelė UTXO bus daug pigesnė išleisti ateityje.

Scenarijų evoliucija ir ateities apsauga

Bitkoino scenarijų mechanizmo lankstumas reiškia, kad UTXO modelis gali prisitaikyti prie naujų kriptografinių standartų, gerinančių efektyvumą ir mažinančių mokesčius.

Pavyzdžiui, SegWit (Segregated Witness) ir Taproot technologijų įvedimas buvo specialiai sukurtas padaryti kriptografinius įrodymus (ScriptSig), reikalingus UTXO atrakinimui, mažesnius ar efektyvesnius perduoti tinklui. Šie patobulinimai fundamentaliai priklauso nuo UTXO struktūros, įrodydami, kad šis apskaitos metodas nėra tik palikimas, bet architektūra, skirta ilgalaikei kriptografinei evoliucijai.


Išvada

Bitkoino UTXO modelis predstavina revoliucinis požiūrį į decentralizuotą apskaitą. Atsisakydamas centralizuoto sąskaitų balanso ir priimdamas sistemą, pagrįstą diskrečiomis, sekuojamomis ir sunaudojamomis vertės vienetais, Bitcoin išsprendžia fundamentalias dvigubo išleidimo ir pasitikėjimo problemas.

Sandorio gyvavimo ciklas, valdomas aiškių užrakinimo ir atrakinimo scenarijų, užtikrina vertės išsaugojimą ir kad nuosavybė kriptografiškai įrodyta kiekvienu atveju. Savarankiškam individui UTXO modelis suteikia neprilygstamą saugumą, audituojamumą ir pseudonimiškumo pagrindą, įtvirtindamas savo vietą kaip pagrindinį variklį, leidžiantį patikimus skaitmeninius grynaruosius naujai globaliai ekonomikai. Supratimas UTXO struktūros nėra tik techninės žinios; tai supratimas pasitikėjimo skaitmeniniame amžiuje šaltinio kodo.