Što je UTXO?

UTXO je kratica za Izlaz neutrošene transakcije (TX). U osnovi, to je količina preostale promjene kriptovalute koju primite od svake transakcije. Da bismo dalje objasnili, prvo bismo trebali raščlaniti kako funkcionira tipična kripto transakcija. Upotrijebimo Bitcoin za svoj primjer jer je to najpoznatija kripto valuta koja koristi UTXO-ove.

Primjer UTXO transakcije

Kada pogledate svoj Bitcoin novčanik, vidite ravnotežu. Za ovaj primjer, postavimo to na 100 bitcoina. Iako promatrate pravedno jedan na kraju, vaša se sredstva zapravo sastoje od nekoliko UTXO. Možete imati četiri UTXO-a u vrijednosti od 25 bitcoina, dva UTXO-a u vrijednosti od 50 ili skup UTXO-a u vrijednosti od 37, 18, 40 i 5 bitcoina. Određeni iznosi nisu važni, ali moraju se zbrajati s vašim ukupnim saldom, u ovom slučaju 100.

Nastavljajući primjer, pretpostavimo da kupujete novi automobil. Radis tesko; zaslužuješ to. Rušeći Lamboov stereotip, odlučujete se za Porche koji košta 35 bitcoina. Pa, vaš novčanik sadrži samo UTXO-e jednake 15, 17, 28 i 40 bitcoina. Nemate nijednu koja se procjenjuje na točno 35 bitcoina.

Nemoguće je podijeliti UTXO-ove, pa ne postoji način da platite točno 35 bitcoina koliko dugujete.

Umjesto toga, trošite 40 bitcoina UTXO. Na svom mjestu mreža kova dva nova UTXO-a: jedan čija je vrijednost 35 bitcoina, jedan vrijedan 5 bitcoina. Auto kuća prima 35 bitcoin UTXO dok vi kao zamjenu dobivate 5 bitcoin UTXO.

Također možete potrošiti 17 i 28 bitcoin UTXO-a i dobiti 10 bitcoina kao svoju promjenu. Transakcija može koristiti bilo koju kombinaciju UTXO-a; međutim, vi nemate kontrolu nad kojim.

Kao što UTXO možete podijeliti na zasebne instance, tako ih možete kombinirati u veće transakcije, stvarajući ih manje na mreži.

Što je s naknadama za transakcije?

Naknade za transakcije također su uključene u transakcije i oduzimaju se od UTXO-a koje primite kao promjenu. Jednadžba izgleda otprilike ovako:

Novi UTXO = (Zbroj UTXO u transakciji) – (Iznos transakcije) – (Naknada za transakciju)

Nastavljajući naš najnoviji primjer s naknadom za jednu bitcoin transakciju:

Novi UTXO = (17 + 18) – (35) – (1) = 9 bitkoina

UTXO važnost i potencijalni problemi

Implementacija UTXO-a uvelike pojednostavljuje računovodstvene metode blockchaina. Umjesto da moramo pratiti i pohranjivati ​​svaku pojedinu transakciju, kako ne bi bilo manje, samo trebamo pratiti nepotrošeni novčić, poznat i kao UTXO.

Vidite, svaki novčić u Bitcoin ekosustavu može se potrošiti samo jednom. Dakle, svaki bitcoin u novčaniku trenutno nije potrošen jer:

  1. Rudar ju je dobio kao rudarsku nagradu, ili
  2. Kovan je tijekom transakcije. (Sjećate se našeg primjera od ranije?)

UTXO-i su presudni u sprečavanju napada dvostrukog trošenja i sprečavaju vas da trošite novčiće koji ne postoje. Mrežni čvorovi bilježe i održavaju bazu podataka koja sadrži svaki UTXO (tj. Nepotrošeni novčić) dostupan za potrošnju. Ako pokušate poslati transakciju novčićem koji se ne nalazi u toj bazi podataka, čvorovi će je odbiti.

Potencijalni problemi s pohranom

Čvorovi pohranjuju UTXO bazu podataka u RAM, pa je važno da skup podataka ostane na upravljačkoj veličini. Kako raste, zajedno s njim rastu i troškovi pokretanja cijelog čvora. Ako pokretanje punog čvora postane preskupo, mogli bismo vidjeti daljnju centralizaciju u Bitcoin mreži među nekolicinom bogatih koji si mogu priuštiti da ih pokreću.

Veličina baze podataka Bitcoin UTXO s vremenom putem Blockchaina

Veličina baze podataka Bitcoin UTXO s vremenom putem Blockchaina

Ovaj rizik od centralizacije jedan je od glavnih argumenata protiv povećanja veličine Bitcoin bloka. Programer bitcoina Gavin Andresen to najbolje opisuje u njegov članak UTXO uh-oh …:

“Blok od jednog megabajta mjesto je za oko 100 milijuna 500-bajtnih transakcija godišnje. Ako bi svaki od njih povećao UTXO postavljen za 500 bajtova, to bi povećalo UTXO postavljeno 50 gigabajta godišnje. ”

Veličina bloka od jednog megabajta postavlja gornju granicu do te mjere da bi baza podataka UTXO mogla rasti svake godine. Nastavlja:

“Dopuštanje više transakcija bez ikakvih promjena vrlo bi vjerojatno ubrzalo rast UTXO skupa, čineći ga skupljim, bržim, pokretanjem potpuno validacijskog čvora.”

Samo da ne izmiješamo Andresenove riječi: Njegov se članak zapravo zalaže za povećanje veličine bloka. Tvrdi da utjecaj na veličinu skupa UTXO nije drastičan kako drugi vjeruju da jest. I, s obzirom na složenost rješenja za skaliranje u drugom sloju, moramo u bliskoj budućnosti implementirati veće blokove prije nego što ta rješenja budu dugoročno uspostavljena.

Rješenja

Srećom, postoji nekoliko rješenja za potencijalne probleme s pohranom. Prvo, čvorovi ne moraju pohraniti cijelu UTXO bazu podataka u RAM. Mogu se odlučiti da dio pohrane na jeftiniji SSD ili okrećući se tvrdi disk. Iako ove vrste pohrane dovode do sporijeg vremena provjere valjanosti za svaki čvor, ne bi trebalo postojati problem sve dok su i dalje ispod desetominutnog prosječnog vremena blokade.

Uz to, programeri Bitcoina kontinuirano poboljšavaju mehanizme transakcija kako bi optimizirali UTXO bazu podataka.

Konačno, odvojeni svjedoci (Segwit) i slična rješenja za skaliranje neizravno usporavaju rast baze podataka UTXO. Povlačenje izravno iz Bitcoin Core dokumentacija:

„Segwit poboljšava situaciju ovdje čineći da podaci potpisa, koji ne utječu na veličinu skupa UTXO, koštaju 75% manje od podataka koji utječu na veličinu skupa UTXO. Očekuje se da će ovo potaknuti korisnike da favoriziraju upotrebu transakcija koje minimaliziraju utjecaj na UTXO skup kako bi se minimalizirale naknade, te potaknuti programere da dizajniraju pametne ugovore i nove značajke na način koji će umanjiti i utjecaj na UTXO set. “

Zaključak: UTXO alternative?

Danas smo dosljedno koristili Bitcoin u svom primjeru, ali postoji mnoštvo drugih kriptovaluta koje implementiraju UTXO-ove, uključujući Bitcoin Cash, Litecoin i Komodo, među ostalim.

Postoje i mnoge druge kriptografije koje koriste druge mehanizme računovodstva. Na primjer, Ethereum ima model transakcije temeljen na računu. Ovaj mehanizam općenito pruža bolju uštedu prostora i jednostavniji kôd za rad; međutim, gubite razinu privatnosti transakcija i nailazite na potencijalne probleme skalabilnosti.

Ako u sobi od deset programera kripto pitate o najboljim računovodstvenim metodama, vjerojatno ćete dobiti deset različitih odgovora. To je žustro raspravljana tema u cijeloj zajednici koja još uvijek nema savršeno rješenje. I, zbog složenosti, vjerojatno nikada neće.