Ce este un output de tranzacție necheltuit (UTXO) Bitcoin?

De Kraken Learn team
10 min.
20 noiembrie 2024

Ghidul pentru începători al modelului UTXO al Bitcoin 📕

Output-ul de tranzacție necheltuit (UTXO) este tehnica pe care protocolul Bitcoin o folosește pentru a urmări soldurile pe măsură ce acestea se deplasează între portofelele cripto.

Când vine vorba de urmărirea și gestionarea soldurilor cripto individuale, protocoalele bazate pe blockchain utilizează de obicei unul dintre cele două modele contabile diferite.

Unul este numit modelul Cont/Sold. Proiecte precum Ethereum, Tezos și EOS utilizează acest model pentru a urmări soldurile pe măsură ce utilizatorii blockchain execută tranzacții. Celălalt este numit modelul Output de Tranzacție Necheltuit (UTXO). 

Bitcoin și multe alte criptomonede, cum ar fi Litecoin, Cardano și Dogecoin, utilizează modelul UTXO. 

Dar ce este exact, cum funcționează și care sunt avantajele UTXO comparativ cu modelul Cont/Sold?

BTC icon
68.122.00
-1,62 %
24 de ore
btc

Înțelegerea modelului UTXO 💻

Istoric

Adam Back și regretatul Hal Finney au fost doi membri ai grupului de criptografie Cypherpunk pe care autorul white paper-ului Bitcoin, Satoshi Nakamoto, îl frecventa. Cei doi sunt creditați cu dezvoltarea modelului UTXO independent, între 1997 și, respectiv, 2004. 

Când creatorul Bitcoin, Satoshi Nakamoto, a lansat protocolul în 2009, acesta a devenit primul sistem de monedă digitală operațional care a implementat modelul UTXO.

Atât Hal Finney, cât și Adam Back au fost mult timp suspectați că ar fi Satoshi Nakamoto, deși acest lucru nu a fost niciodată dovedit cu certitudine.

UTXO pe scurt

Când trimiteți bitcoin cuiva, au loc mai mulți pași în mod programatic. Unul dintre primii pași în procesul tranzacției este ca portofelul dumneavoastră de criptomonede să scaneze blockchain-ul pentru a afla suma de fonduri pe care o aveți. Aceste fonduri sunt cunoscute sub numele de output-uri de tranzacție necheltuite (UTXO).

Vă puteți gândi la UTXO-uri ca la mărunțișul rămas din tranzacțiile Bitcoin anterioare.

Fondurile sunt considerate „necheltuite” deoarece sunt disponibile gratuit pentru a le trimite cuiva sau a le muta într-un alt portofel. Ele sunt numite „output-uri de tranzacție” deoarece au fost create din tranzacții anterioare.

Dacă cheltuiți 12 $ pentru prânz folosind o bancnotă de 20 $, v-ar rămâne o bancnotă de 8 $. În acest exemplu, cei 8 $ rămași ar fi un output de tranzacție necheltuit. Aceasta s-ar întoarce în portofelul dumneavoastră, gata de a fi folosită pentru a cumpăra altceva.

Acesta este exact modul în care funcționează UTXO-urile Bitcoin. Când efectuați o tranzacție, output-urile din tranzacțiile Bitcoin anterioare, adică mărunțișul dumneavoastră Bitcoin, sunt folosite ca input-uri pentru noi tranzacții.

O altă comparație cheie între tranzacțiile cu numerar fizic și UTXO-uri este că ambele trebuie să fie cheltuite integral și nu pot fi subdivizate. Dacă aveți un UTXO de 5 bitcoin și doriți să trimiteți cuiva 1 BTC, ar trebui să trimiteți întregul UTXO în valoare de 5 bitcoin și să primiți un nou UTXO înapoi, în valoare de 4 BTC minus orice comisioane. 

La fel ca în exemplul de mai sus, unde înmânați o bancnotă întreagă de 20 $ pentru a plăti un prânz de 10 $.

Când un UTXO este cheltuit, este considerat „consumat” și este eliminat tehnic din circulație. 

Orice mărunțiș rămas este generat ca un UTXO complet nou. Această parte a sistemului UTXO este modul în care Bitcoin rezolvă problema dublei cheltuieli

Așa cum nu puteți da fizic unui vânzător o bancnotă de 5 $ și apoi să dați aceeași bancnotă de 5 $ altcuiva, un utilizator Bitcoin nu poate utiliza cu succes același output de tranzacție necheltuit în două tranzacții digitale separate.

Când o persoană încearcă să cheltuiască același UTXO de două ori, cele două tranzacții ajung într-un mempool — un fel de sală de așteptare pentru tranzacțiile în așteptare. Ele rămân aici până când minerii de succes care câștigă competiția proof-of-work le grupează în blocuri noi.

Puteți afla mai multe despre acest proces în articolul nostru din Centrul de Învățare Kraken Ce este minarea Bitcoin?

Chiar dacă ambele tranzacții sunt grupate în două blocuri separate și procesate simultan, datorită marcajului temporal, una dintre tranzacții ar fi verificată înaintea celeilalte. După ce un număr de confirmări au trecut (blocuri noi adăugate la blockchain), alte noduri ar semnala a doua tranzacție invalidă și ar respinge-o.

Tranzacții Coinbase

Singura dată când o tranzacție Bitcoin nu are input-uri este atunci când BTC nou minat este creat prin minare.

Cunoscută sub numele de tranzacție coinbase, aceasta reprezintă prima tranzacție din fiecare bloc nou.

Fiecare satoshi (sub-unitățile Bitcoin) în circulație poate fi urmărit înapoi, folosind registrul blockchain transparent, până la tranzacția coinbase respectivă.

De ce folosește Bitcoin modelul UTXO?

Sold cont

Pentru a identifica soldul unui utilizator, cunoscut și sub numele de set de UTXO-uri, software-ul portofelului cripto scanează blockchain-ul pentru a găsi toate UTXO-urile asociate cu adresa publică de portofel corespunzătoare.

Suma totală a tuturor UTXO-urilor oferă o evidență exactă a cantității de cripto pe care o controlează un proprietar de portofel.

Când un UTXO este cheltuit, adresa publică de portofel a destinatarului este atribuită sumei și un nou UTXO este înregistrat pe blockchain odată executat.

Stocare

UTXO-urile Bitcoin sunt înregistrate în diverse tranzacții care sunt stocate în blocuri pe blockchain-ul Bitcoin. Cu toate acestea, aceste informații nu sunt indexate clar, așa că poate fi dificil de căutat și de colectat rapid metadate. 

Când se utilizează software de portofel, cum ar fi clientul Bitcoin Core, metadatele UTXO sunt stocate și indexate folosind o bază de date LevelDB. LevelDB este un sistem de stocare open-source creat de Google în 2011 și face localizarea UTXO-urilor mult mai rapidă.

Clientul Bitcoin Core este un software popular folosit pentru a se conecta la rețeaua blockchain Bitcoin. Creat inițial de Satoshi Nakamoto, Bitcoin Core este acum menținut de o comunitate de dezvoltatori voluntari.

UTXO-uri sub capotă 🚗

La un nivel mai tehnic, o tranzacție are patru părți principale:

  • Versiune: Aceasta informează nodurile rețelei ce versiune de software client este utilizată. Versiunile diferite urmează reguli diferite pentru verificarea datelor tranzacției.
  • Timp de blocare: Aceasta este durata de timp care determină cât de rapid este adăugată o tranzacție la blockchain. Acest input dictează care este cel mai devreme moment posibil pentru ca tranzacția să fie procesată de nodurile de minare.
  • Input: Informații care indică sursa fondurilor sau tranzacția anterioară în care a fost produs UTXO-ul. Input-ul conține, de asemenea, ceva numit „script de deblocare”.
  • Output: Informații referitoare la valoarea transferată, portofelul către care este reatribuită proprietatea fondurilor și noile UTXO-uri formate. Output-ul conține, de asemenea, un „script de blocare”.

Cum diferă UTXO-urile de numerarul fizic

Principalele diferențe între analogia bancnotelor fizice și modelul UTXO sunt că Bitcoin și alte active cripto bazate pe UTXO nu sunt limitate de sume fixe, adică 5 $, 10 $, 15 $, etc. Orice cantitate de bitcoin (până la opt zecimale) poate fi un output de tranzacție necheltuit. 

De exemplu, ați putea avea 0.0003847 BTC rămasă dintr-o tranzacție.

Această sumă ar deveni un nou UTXO care trebuie cheltuită integral dacă este utilizată și nu poate fi împărțită în sume mai mici.

Să spunem că John are un sold de 1 bitcoin în portofelul său cripto. Soldul său și compoziția acelui sold sunt două lucruri diferite, la fel cum ați putea avea 100 $ în portofel, dar ar putea fi compus din patru bancnote de 20 $, două bancnote de 5 $ și una de 10 $.

Să spunem că compoziția soldului de 1 BTC al lui John este formată din 5 output-uri de tranzacție necheltuite diferite.

  • 0.138 BTC
  • 0.1 BTC
  • 0.004 BTC
  • 0.73 BTC
  • 0.028 BTC

John vrea să-i trimită 0.6 BTC lui Jane. Pentru a face acest lucru, software-ul portofelului lui John va grupa automat orice număr de UTXO-uri pe care le controlează pentru a acoperi această tranzacție, plus orice comisioane de miner implicate pentru a o procesa.

În acest exemplu, să spunem că software-ul portofelului său trimite automat UTXO-ul Bitcoin al lui John în valoare de 0.73 BTC către Jane și îi returnează lui John suma rămasă minus comisioanele de tranzacție ca un nou UTXO.

Această sumă este trimisă automat la o adresă de schimb; o adresă separată legată de portofelul dumneavoastră cripto.

Scripturi de blocare și deblocare 🔒

Când sunt create UTXO-urile, ele sunt blocate folosind adresa publică de portofel a destinatarului. Pentru a utiliza acel UTXO ca input într-o nouă tranzacție, acesta trebuie mai întâi deblocat folosind semnătura digitală a expeditorului.

Acesta este un alt aspect important de înțeles despre tranzacțiile Bitcoin. Când se efectuează o tranzacție, bitcoin nu este mutat digital dintr-un cont în altul. În schimb, ele sunt deblocate, reatribuite unui nou proprietar și apoi blocate din nou.

Aceasta înseamnă că doar noul proprietar poate debloca fondurile folosind semnătura sa digitală și le poate transfera în altă parte; unei alte persoane sau unui alt portofel aflat sub controlul său.

Script este un limbaj de programare folosit de Bitcoin pentru a procesa tranzacțiile, inclusiv blocarea și deblocarea UTXO-urilor. 

  • Script de blocare (ScriptPubKey): Când un UTXO este blocat, scriptul de blocare (cunoscut sub numele de ScriptPubKey) stabilește condițiile care trebuie îndeplinite înainte ca UTXO-ul să poată fi utilizat ca input. Acest lucru implică de obicei dovedirea faptului că dețineți cheia privată care corespunde adresei publice de portofel utilizate pentru a bloca UTXO-ul, prin furnizarea unei semnături digitale.
  • Script de deblocare (ScriptSig): Pentru a debloca un UTXO, trebuie să îndepliniți condițiile stabilite de scriptul de blocare, adică să furnizați o semnătură digitală care dovedește că controlați cheile private corespunzătoare cheii publice utilizate pentru a bloca UTXO-ul.

Acest lucru împiedică pe oricine altcineva să poată accesa și cheltui acele fonduri.

 

Ce este praful Bitcoin?

Praful Bitcoin se referă la UTXO-uri care conțin cantități minuscule de satoshi rămase din tranzacțiile anterioare.

În sine, aceste cantități minuscule de BTC ar costa mai mult în comisioane de tranzacție pentru a fi procesate decât valoarea lor și, prin urmare, ele stau adesea în adrese de schimb, așteptând să fie grupate cu alte UTXO-uri și cheltuite.

Ce este un atac de tip „dusting”?

Atacurile de tip „dusting” se referă la escroci care trimit „praf” la sute de mii de adrese de portofel diferite. Ideea din spatele acestui lucru este de a identifica potențiale ținte pentru atacuri de inginerie socială.

Un escroc va urmări adresele care conțin praful pe care l-a trimis, așteptând ca proprietarul să efectueze o tranzacție care grupează UTXO-uri de la diferite adrese legate de portofelul său. Deoarece UTXO-urile de praf sunt atât de mici, există o șansă bună ca acestea să fie grupate cu altele și utilizate ca input-uri.

Odată ce acest lucru se întâmplă, escrocul își poate face o idee despre fondurile pe care le are o persoană. Apoi, poate alege să încorporeze mesaje de phishing în tranzacții, invitând proprietarul să facă clic pe un link care descarcă malware, sau să viziteze site-uri web false care imită pagini de destinație legitime și cer informații personale.

Cât de periculoase sunt atacurile de tip „dusting” cu Bitcoin?

Atacurile de tip „dusting” nu oferă escrocilor acces la fondurile dumneavoastră.

Ele servesc doar la restrângerea adreselor controlate de un anumit portofel cripto.

Pentru a minimiza riscul de atacuri de tip „dusting”, cel mai bine este să nu faceți niciodată clic pe linkuri sau să vizitați site-uri web atașate tranzacțiilor de praf.

Începeți să cumpărați Bitcoin

Acum că ați învățat totul despre modelul output-ului de tranzacție necheltuit, sunteți gata să vă continuați călătoria cripto și să cumpărați bitcoin?

Consultați ghidul nostru din Centrul de Învățare Kraken pentru mai multe informații despre Cum să cumpărați Bitcoin (BTC) și înregistrați-vă pentru un cont Kraken astăzi.

Unele conținuturi de pe această pagină pot fi traduse folosind AI