Într-unul din articolele noastre anterioare, am vorbit despre atacul „dublu-cheltuială”. Un rol important în prevenirea unui astfel de atac îl joacă modelul contabil al dovezii de proprietate – UTXO. Datorită acestei structuri de tranzacții de construcție, protocolul Bitcoin vă permite să urmăriți oricând locația monedelor.
În articolul de astăzi, ne vom concentra asupra conceptului de UTXO, vom lua în considerare problemele asociate cu acest model de contabilitate și vom căuta soluții posibile la aceste probleme.
Ce este un UTXO?
UTXO înseamnă „Rezultatul tranzacției necheltuite”, cu alte cuvinte, resturile sau „schimbarea” primite după cheltuirea unor fonduri.
Nodurile din rețeaua Bitcoin mențin un blockchain care stochează toate seturile UTXO disponibile pentru cheltuieli. Fiecare dintre noduri ține evidența tuturor UTXO-urilor, verificând fiecare tranzacție a fiecărui bloc la formarea blockchain-ului. Urmărirea monedelor neutilizate este mult mai convenabilă decât urmărirea fiecărei tranzacții separat.
Orice tranzacție constă din intrări și ieșiri. Intrările unei noi tranzacții sunt referințe la rezultatele tranzacțiilor anterioare. Prin însumarea valorilor acestor legături, acestea pot fi utilizate în rezultatul unei tranzacții nou generate. Ieșirea este locul în care sunt stocate monedele și instrucțiunile pentru cheltuirea lor.
Când verificați soldul de pe portofelul dvs. bitcoin, vedeți întreaga sumă stocată. De fapt, pe baza istoricului tranzacțiilor anterioare, soldul poate consta din mai multe rezultate care reprezintă sume diferite. Gândiți-vă la asta ca la numeroasele facturi din portofel. Soldul unei adrese la un moment dat este suma tuturor UTXO-urilor pe care adresa le poate cheltui în prezent. Seturile de ieșiri reprezintă UTXO-uri, adică un set de ieșiri cu sume diferite în ele, reprezentând soldul.
Să folosim un exemplu pentru a înțelege mai bine principiul UTXO:
Dacă dețineți 50 BTC în contul dvs. și doriți să efectuați o plată de 0,5 BTC, aceasta necesită formarea unei tranzacții, în care trebuie să existe cel puțin o intrare și o ieșire. Să presupunem că există un singur UTXO de 50 BTC. Nu este posibil să împărțiți UTXO; prin urmare, 50 BTC este utilizat ca intrare. Prin trimiterea unei semnături, confirmăm dreptul de proprietate asupra acelei date. Ca rezultat, sunt create două ieșiri cu denumiri de 0,5 și 49,5 BTC. O schimbare de 49,5 BTC este trimisă înapoi în portofelul proprietarului și devine un nou UTXO, iar 0,5 BTC este trimis la adresa destinatarului. Este demn de remarcat faptul că taxa de tranzacție este dedusă din modificarea UTXO.
Caracteristici importante ale utilizării modelului de ieșire a tranzacției:
- Tranzacțiile se fac prin „consumarea” UTXO-urilor existente și crearea de noi în locul lor;
- Noile UTXO-uri pot fi create numai prin tranzacții;
- UTXO-urile uzate devin „cheltuite” și sunt consumate o singură dată.
UTXO este una dintre modalitățile de înregistrare și salvare a stării blockchain-ului, înregistrând dovezi ale deținerii de monede de către cineva din rețea. Blockchain bazat pe UTXO este un tip de protocol blockchain. Principiul ieșirilor necheltuite este utilizat în blockchain-urile tuturor furcilor Bitcoin, precum și în blockchain-urile a numeroase alte monede, cum ar fi Monero, Cardano și Komodo. Hyperledger Fabric folosește un model UTXO modificat.
O altă modalitate de organizare a blockchain-ului este „Modelul contului”, care este utilizat în blockchain-ul Ethereum. Această abordare este implementată prin contabilitatea locală a jetoanelor pe noduri și nu în tranzacțiile în sine.
Probleme și soluții ale modelului UTXO
Praful de criptomonede
Praful de criptomonede este un termen care se referă la sume în BTC care nu depășesc comisioanele de tranzacție.
Problema prafului criptomonedelor a devenit relevantă în timpul raliului Bitcoin la ATH-ul său istoric din 2017. Stocarea unui număr considerabil de UTXO-uri neprofitabile este inutilă, deoarece costă mai puțin să le cheltuiți decât merită.
Dezvoltatorii încearcă să rezolve problema prafului criptografic la diferite niveluri. Binance a devenit primul schimb care a permis conversia prafului criptomonedelor pentru jetoanele BNB.
Praful de criptomonede poate fi, de asemenea, utilizat pentru a se potrivi cu diferite adrese aparținând unui singur proprietar. Deoarece intrările nu sunt combinate atunci când fac o tranzacție, atacatorii pot trimite praf criptografic pentru a fi amestecat cu alte UTXO-uri și pot potrivi adrese diferite ale victimelor.
Stocarea UTXO
Deoarece blockchain-ul stochează toate seturile UTXO prezente în rețea, cu cât numărul acestor seturi este mai mare, cu atât ocupă mai mult spațiu.
Nodurile complete stochează o bază de date cu tranzacții neutilizate în RAM și, odată cu creșterea cantității de date stocate, costul întreținerii unui nod crește doar. Una dintre opțiunile discutate pentru rezolvarea problemei stocării tranzacțiilor neutilizate este transferul unei părți a datelor stocate pe dispozitive HDD sau SSD.
Implementarea martorului separat
Baza de date UTXO este menținută și verificată de toate nodurile din rețea pentru a verifica validitatea tranzacțiilor. Pentru o operare mai rapidă a rețelei, o astfel de verificare trebuie efectuată cât mai curând posibil. Din acest motiv, baza de date este păstrată în memorie RAM. Odată cu creșterea numărului de utilizatori și a numărului de portofele, volumul de date UTXO crește, ceea ce duce la problema scalării rețelei. Pentru a spori confidențialitatea sau pentru a sprijini canalele de plată Lightning Network, utilizatorii creează mai multe înregistrări UTXO.
Una dintre îmbunătățirile după introducerea SegWit a fost reducerea creșterii UTXO prin crearea de înregistrări UTXO care nu îi afectează volumul. Cu această abordare, este preferabil să utilizați tranzacții cu impact mai mic asupra UTXO din cauza comisioanelor mai mici.
Soluție UTreeXo
Pe măsură ce resursele necesare pentru menținerea unui nod complet au crescut, utilizatorii trec din ce în ce mai mult la așa-numiții „clienți ușori” și la noduri terțe pentru a monitoriza rețeaua. Clienții ușori nu stochează baza de date UTXO și nu verifică tranzacțiile, ci utilizează SPV, care înseamnă „Verificare simplificată a plăților”. Această metodă de verificare a fost descrisă în Cartea albă Bitcoin de către Satoshi Nakamoto însuși. Datorită unui număr de defecte semnificative de confidențialitate, utilizarea clienților SPV este nesigură în comparație cu nodurile complete. Problema păstrării nodurilor complete poate fi rezolvată prin implementarea protocolului uTreeXo
Protocolul uTreeXo este un acumulator dinamic care reduce dimensiunea UTXO-urilor din blockchain până la câțiva kilobyți. Soluția uTreeXo permite nodurilor complete să evite stocarea tuturor datelor blockchain și să țină evidența setului tuturor UTXO-urilor. În schimb, acumulatorii vor furniza dovezi că datele sunt corecte.
Odată cu introducerea protocolului uTreeXo, va fi posibil să rulați noduri complete pe dispozitive mobile.
Concluzie
Modelul UTXO, care a apărut împreună cu Bitcoin, a simplificat metoda de contabilitate a fondurilor și a dat impuls dezvoltării soluțiilor în domeniul obținerii confidențialității în tranzacții. Prin amestecarea diferitelor UTXO-uri, un utilizator poate utiliza diferite adrese pentru a efectua tranzacții, ceea ce complică metodele de stabilire a legăturilor între adrese.
Modelul tradițional UTXO are o serie de limitări atunci când este utilizat în contractele inteligente, dar dezvoltatorii Cardano au descris conceptul Extended UTXO (EUTXO) – un model UTXO extins pentru introducerea contractelor inteligente în rețeaua sa.
În ciuda neajunsurilor existente, această abordare este una dintre cele mai utilizate în blockchain-urile altor criptomonede, iar munca intensă pentru soluționarea acestor neajunsuri va crește doar popularitatea modelului UTXO în alte sisteme blockchain..