In een van onze vorige artikelen hadden we het over de “dubbele uitgaven” -aanval. Een belangrijke rol bij het voorkomen van een dergelijke aanval wordt gespeeld door het boekhoudmodel voor eigendomsbewijzen – UTXO. Vanwege deze structuur van bouwtransacties, kunt u met het Bitcoin-protocol de locatie van munten op elk moment volgen.

In het artikel van vandaag zullen we ons concentreren op het concept van UTXO, de problemen in verband met dit boekhoudmodel bekijken en mogelijke oplossingen voor deze problemen onderzoeken.

De magie van UTXO

Wat is een UTXO?

UTXO staat voor “Unspent Transaction Output”, met andere woorden, de restanten of “change”, ontvangen na besteding van wat geld.

De knooppunten in het Bitcoin-netwerk onderhouden een blockchain die alle UTXO-sets opslaat die beschikbaar zijn om te besteden. Elk van de knooppunten houdt alle UTXO’s bij en controleert elke transactie van elk blok bij het vormen van de blockchain. Het bijhouden van niet-uitgegeven munten is veel handiger dan het afzonderlijk volgen van elke transactie.

Elke transactie bestaat uit inputs en outputs. De inputs van een nieuwe transactie zijn verwijzingen naar de outputs van eerdere transacties. Door de waarden van deze links op te tellen, kunnen ze worden gebruikt bij de uitvoer van een nieuw gegenereerde transactie. De uitvoer is waar munten en instructies om ze uit te geven worden opgeslagen.

Als je het saldo op je bitcoin-portemonnee controleert, zie je het volledige bedrag opgeslagen. Maar in feite, op basis van de geschiedenis van eerdere transacties, kan het saldo bestaan ​​uit vele outputs die verschillende bedragen vertegenwoordigen. Zie het als aan de vele rekeningen in uw portemonnee. Het saldo van een adres op een bepaald moment is de som van alle UTXO’s die het adres momenteel kan besteden. De sets uitgangen vertegenwoordigen UTXO’s, dat wil zeggen een set uitgangen met verschillende bedragen erin, die het saldo vertegenwoordigen.

Laten we een voorbeeld gebruiken om het UTXO-principe beter te begrijpen: 

De magie van UTXO

Als je 50 BTC op je rekening hebt staan ​​en je wilt een betaling van 0,5 BTC doen, dan moet er een transactie worden gevormd, waarbij er minimaal één input en één output moet zijn. Laten we zeggen dat er maar één UTXO van 50 BTC is. Het is niet mogelijk om de UTXO te splitsen; daarom wordt 50 BTC als input gebruikt. Door een handtekening in te dienen, bevestigen we ons eigendom van die invoer. Het resultaat is dat er twee uitgangen met coupures van 0,5 en 49,5 BTC worden gecreëerd. Een wijziging van 49,5 BTC wordt teruggestuurd naar de portemonnee van de eigenaar en wordt een nieuwe UTXO, en 0,5 BTC wordt naar het adres van de ontvanger gestuurd. Het is vermeldenswaard dat de transactiekosten worden afgetrokken van de wijziging van UTXO.

Belangrijke kenmerken van het gebruik van het transactie-uitvoermodel:

  • Transacties worden gedaan door bestaande UTXO’s te “consumeren” en in plaats daarvan nieuwe te creëren;
  • Nieuwe UTXO’s kunnen alleen worden aangemaakt door middel van transacties;
  • Gebruikte UTXO’s worden “uitgegeven” en worden slechts één keer verbruikt.

UTXO is een van de manieren om de staat van de blockchain vast te leggen en op te slaan, waarbij bewijs van eigendom van munten door iemand op het netwerk wordt vastgelegd. Op UTXO gebaseerde blockchain is een type blockchain-protocol. Het principe van niet-bestede output wordt gebruikt in de blockchains van alle Bitcoin-forks, evenals in de blockchains van talloze andere munten zoals Monero, Cardano en Komodo. Hyperledger Fabric maakt gebruik van een aangepast UTXO-model.

Een andere manier om de blockchain te organiseren is het “Account Model”, dat wordt gebruikt in de Ethereum blockchain. Deze benadering wordt geïmplementeerd door de lokale boekhouding van tokens op de knooppunten, en niet in de transacties zelf.

Problemen en oplossingen van het UTXO-model

Cryptocurrency-stof

Cryptocurrency dust is een term die verwijst naar bedragen in BTC die de transactiekosten niet overschrijden.

Het probleem van cryptocurrency-stof werd relevant tijdens de bijeenkomst van Bitcoin voor zijn historische ATH in 2017. Het opslaan van een aanzienlijk aantal niet-winstgevende UTXO’s is zinloos, omdat het niet meer kost om ze uit te geven dan ze waard zijn..

Ontwikkelaars proberen het probleem van crypto-stof op verschillende niveaus op te lossen. Binance werd de eerste exchange die de conversie van cryptocurrency dust voor BNB-tokens mogelijk maakte.

Cryptocurrency dust kan ook worden gebruikt om verschillende adressen van een enkele eigenaar te matchen. Omdat de invoer niet wordt gecombineerd bij het maken van een transactie, kunnen aanvallers crypto-stof sturen om te worden gemengd met andere UTXO’s en verschillende slachtofferadressen matchen.

UTXO

Aangezien de blockchain alle UTXO-sets op het netwerk opslaat, hoe hoger het aantal van dergelijke sets, hoe meer ruimte ze innemen.

Volledige knooppunten slaan een database met niet-gebruikte transacties op in RAM, en met een toename van de hoeveelheid opgeslagen gegevens, nemen de kosten voor het onderhouden van een knooppunt alleen maar toe. Een van de besproken opties om het probleem van het opslaan van niet-bestede transacties op te lossen, is om een ​​deel van de opgeslagen gegevens over te brengen naar HDD- of SSD-apparaten.

De magie van UTXO

Implementatie van gescheiden getuigen

De UTXO-database wordt onderhouden en gecontroleerd door alle knooppunten op het netwerk om de geldigheid van transacties te controleren. Voor een snellere netwerkwerking moet een dergelijke controle zo snel mogelijk worden uitgevoerd. Om deze reden wordt de database in RAM bewaard. Met de toename van het aantal gebruikers en het aantal wallets groeit het UTXO-datavolume, wat leidt tot het probleem van netwerkschaling. Om de privacy te vergroten of om Lightning Network-betalingskanalen te ondersteunen, maken gebruikers meerdere UTXO-records.

Een van de verbeteringen na de introductie van SegWit was om de groei van UTXO te verminderen door UTXO-records te maken die het volume niet beïnvloeden. Met deze aanpak verdient het de voorkeur om transacties te gebruiken met minder impact op UTXO vanwege lagere commissies.

UTreeXo-oplossing

Naarmate de middelen die nodig zijn om een ​​volledig knooppunt te onderhouden, zijn toegenomen, schakelen gebruikers steeds vaker over naar zogenaamde “light clients” en knooppunten van derden om het netwerk te bewaken. Light clients slaan de UTXO-database niet op en verifiëren geen transacties, maar gebruiken SPV, wat staat voor “Simplified Payment Verification”. Deze verificatiemethode werd door Satoshi Nakamoto zelf beschreven in het Bitcoin White Paper. Vanwege een aantal belangrijke privacyproblemen is het gebruik van SPV-clients onveilig in vergelijking met volledige knooppunten. Het probleem van het behouden van volledige knooppunten kan worden opgelost door het uTreeXo-protocol te implementeren

Het uTreeXo-protocol is een dynamische accumulator die de grootte van UTXO’s in de blockchain terugbrengt tot enkele kilobytes. Met de uTreeXo-oplossing kunnen volledige knooppunten voorkomen dat alle blockchain-gegevens worden opgeslagen en de set van alle UTXO’s worden bijgehouden. In plaats daarvan zullen de accumulatoren bewijzen dat de gegevens correct zijn.

Met de introductie van het uTreeXo-protocol is het mogelijk om volledige nodes op mobiele apparaten te draaien.

Gevolgtrekking

Het UTXO-model, dat samen met Bitcoin verscheen, vereenvoudigde de boekhoudmethode voor fondsen en gaf een impuls aan de ontwikkeling van oplossingen op het gebied van het bereiken van privacy bij transacties. Door verschillende UTXO’s te combineren, kan een gebruiker verschillende adressen gebruiken om transacties uit te voeren, wat de methoden voor het leggen van koppelingen tussen adressen bemoeilijkt.

Het traditionele UTXO-model heeft een aantal beperkingen bij gebruik in slimme contracten, maar de Cardano-ontwikkelaars beschreven het Extended UTXO (EUTXO) -concept – een uitgebreid UTXO-model voor het introduceren van slimme contracten in zijn netwerk.

Ondanks de bestaande tekortkomingen, is deze benadering een van de meest gebruikte in blockchains van andere cryptocurrencies, en intensief werk om deze tekortkomingen op te lossen zal de populariteit van het UTXO-model in andere blockchain-systemen alleen maar vergroten..