Czym jest Unspent Transaction Output (UTXO)?
Unspent Transaction Output (UTXO) to ilość kryptowaluty pozostałej po zakończonej transakcji blockchain, która jest rejestrowana w bazie danych UTXO i może być wykorzystana w nowej transakcji.
Dane Wyjściowe Transakcji (UTXO) kryptowalutowej są “niewydane”, do momenty w który zostaną wykorzystane ponownie jako dane wejściowe w innej transakcji.
Transakcje kryptowalutowe to transfer informacji w bazie danych blockchain zawierającej dane wejściowe i wyjściowe.
Użytkownik podaje swój kryptograficzny prywatny klucz portfela kryptowalutowego, aby potwierdzić własność monet lub tokenów, które mają być wykorzystane w transakcji i wysyła jeden lub więcej UTXO dla danych wejściowych.
Wykorzystane UTXO są uważane za zużyte i nie mogą być ponownie wykorzystane. Unspent Transaction Output z transakcji stają się nowymi UTXO, które można wydać w przyszłej transakcji.
Techopedia wyjaśnia Unspent Transaction Output (UTXO)
UTXO są zapisywane w skrypcie blockchain lub języku programowania i przetwarzane w sposób ciągły, stanowiąc część początku i końca każdej transakcji kryptograficznej.
Model UTXO jest podstawowym elementem funkcjonowania Bitcoina (BTC) i niektórych innych kryptowalut. Ponieważ UTXO można wykorzystać tylko raz, pomagają one zapobiegać wielokrotnym transakcjom wydającym te same środki, co jest znane jako podwójne wydawanie.
Saldo portfela w wysokości 0,2 BTC nie jest ułamkiem monety, ale zbiorem UTXO z poprzednich transakcji. Wiele UTXO można pobrać w jednej transakcji, aby zapłacić za zakup lub przelać środki, jeśli są one podpisane kluczem portfela.
Model Bitcoin UTXO wykorzystuje podejście „pierwszy na wejściu, pierwszy na wyjściu” (“first in, first out” – FIFO), dzięki czemu UTXO otrzymane jako pierwsze są wydawane jako pierwsze w transakcji.
Gdy użytkownik inicjuje transakcję Bitcoin, skrypt blockchain łączy UTXO, aby pokryć kwotę transakcji, w tym opłaty. Każda nadwyżka wartości z tych UTXO jest zwracana jako nowe UTXO.
Niektóre zaawansowane oprogramowania portfeli pozwalają teraz użytkownikowi przesyłającemu środki ręcznie wybrać, które UTXO mają zostać wydane, tworząc większą elastyczność w określaniu kolejności, w jakiej UTXO są wydawane.
Przykład UTXO
UTXO są niepodzielne, więc nie można ich częściowo wydać.
Działa to jak reszta w transakcji gotówkowej. Jeśli dokonasz zakupu za 15 USD i zapłacisz banknotem 20 USD, otrzymasz 5 USD reszty, którą możesz wydać w przyszłej transakcji.
Aby dokonać zakupu za 0,2 BTC za pomocą UTXO o wartości 0,3 BTC, należy podzielić 0,3 BTC jako dane wejściowe transakcji, aby wysłać 0,2 BTC do sprzedawcy – co staje się wydaną kwotą wyjściową. Pozostałe 0,1 BTC zostanie zwrócone do portfela jako zmiana w postaci nowego UTXO.
Kiedy inicjujesz transakcję kryptowalutową, UTXO są odblokowywane i przenoszone z Twojego portfela do odbiorcy. Są one zablokowane w portfelu nowego właściciela, dopóki nie zostaną użyte w innej transakcji. Baza danych zostaje zapełniona zapisami zmian własności.
Bezpieczeństwo transakcji i anonimowość
Każdy może śledzić własność kryptowaluty od jej utworzenia poprzez różne transakcje, ponieważ UTXO są powiązane z publicznymi adresami portfeli w łańcuchu bloków. Zapewnia to przejrzystość, a jednocześnie pozwala właścicielom zachować prywatność, chyba że ujawnią swoje adresy portfeli.
Ponieważ każda transakcja wykorzystuje unikalne UTXO dla każdej transakcji, tworząc nowe UTXO dla niewydanych środków, trudno jest zidentyfikować strony zaangażowane w przepływ środków. Zwiększa to prywatność użytkowników i utrudnia nieuczciwym atakującym wykorzystywanie luk w zabezpieczeniach.
Proces ten jest zarządzany automatycznie przez protokół blockchain i nie wymaga zaufania do odbiorcy. Każda transakcja ma powiązany skrypt, który weryfikuje właściciela i zapewnia, że środki mogą być wydawane tylko przez odbiorcę.
Model UTXO jest ważny dla śledzenia podaży kryptowalut w sieci blockchain i weryfikacji transakcji. Każda transakcja UTXO wymaga od właściciela weryfikacji, co pomaga zapobiegać oszustwom.
Model UTXO a model salda konta
Podejście UTXO, z którego korzysta Bitcoin, kontrastuje z modelem salda konta, z którego korzysta Ethereum. Podczas gdy saldo portfela użytkownika Bitcoin śledzi wszystkie UTXO i łączy je w transakcje, model salda konta zapewnia, że saldo konta jest równe lub większe niż kwota transakcji.
Saldo kryptowalut każdego użytkownika jest przechowywane na koncie. Kiedy inicjują transakcję, saldo konta nadawcy zmniejsza się, a saldo odbiorcy wzrasta.
Model UTXO jest zwykle uważany za bardziej elastyczny i bezpieczny oraz zużywa mniej pamięci niż model salda konta, który wymaga przechowywania dużych bloków danych.
Korzystanie z UTXO zapewnia większą kontrolę nad sposobem wykorzystania środków kryptograficznych i warunkami, na jakich można je wydać.
UTXO rozszerzyły się poza oryginalną koncepcję przetwarzania transakcji na blockchainie Bitcoina.
Platformy inteligentnych kontraktów, w tym Ethereum, opracowały modele podobne do UTXO, aby umożliwić złożone programowalne funkcje przy użyciu „stanów konta”, które działają jak UTXO, umożliwiając wykonywanie zdecentralizowanych aplikacji (dApps) i inteligentnych kontraktów.
Rola UTXO w NFT Bitcoina
Ponieważ blockchain Bitcoina został początkowo stworzony do transakcji finansowych, a nie do przechowywania danych, wcześniej nie było możliwe stworzenie niewymienialnego tokena (NFT) na Bitcoinie w taki sam sposób, jak w przypadku blockchainów obsługujących inteligentne kontrakty, takich jak Ethereum.
Jednak w styczniu 2023 r. uruchomiono protokół Bitcoin Ordinals, który przypisuje kolejność numeryczną do każdego Satoshi (sat), najmniejszej jednostki BTC. Satoshi są połączone z określonymi UTXO i przesyłane w kolejności FIFO w oparciu o Ordinal Theory.
UTXO może zawierać jeden lub więcej Satoshi. Ponieważ Satoshi mogą mieć przypisane napisy, takie jak obrazy, tekst lub wideo, mogą być używane do dołączania treści do łańcucha bloków, podobnie jak NFT.
Ograniczenia modelu UTXO
Podczas gdy model UTXO oferuje korzyści w zakresie bezpieczeństwa, prywatności i łagodzenia podwójnych wydatków, ma on również ograniczenia:
- Ponieważ UTXO są niepodzielne, brak szczegółowości może być nieopłacalny w przypadku małych transakcji, w których użytkownicy chcą wydać tylko ułamek swoich środków, ponieważ opłaty transakcyjne mogą być wyższe niż wartość transakcji.
- UTXO mogą skutkować bardziej złożonymi transakcjami, ponieważ użytkownicy mogą potrzebować utworzyć wiele transakcji, aby zebrać niezbędne środki do transferu. Może to wpływać na wydajność i skalowalność sieci blockchain, powodując przeciążenie sieci i wolniejsze czasy przetwarzania.
- Zwiększenie przepustowości transakcji wymaga optymalizacji w celu wydajnej obsługi większej liczby UTXO. Rozwijanie portfeli i aplikacji na blockchainach opartych na UTXO może być również bardziej złożone niż na łańcuchach opartych na saldzie konta.
- Baza danych UTXO może z czasem rosnąć, zwiększając wymagania dotyczące pamięci masowej dla węzłów sieci. Może to potencjalnie wpływać na decentralizację, sprawiając, że utrzymywanie kopii całego łańcucha bloków będzie bardziej zasobochłonne dla uczestników.
- Chociaż modele oparte na UTXO zostały dostosowane do inteligentnych kontraktów, mogą być mniej dostosowane do złożonych programowalnych funkcji niż modele salda konta. Język skryptowy używany w UTXO Bitcoina jest celowo ograniczony ze względów bezpieczeństwa, ale ogranicza to inteligentne kontrakty, które można wdrożyć na blockchainie Bitcoina.
- Podczas gdy UTXO przyczyniają się do prywatności, utrudniając śledzenie nadawców i odbiorców, niektóre wzorce wydatków mogą nadal zagrażać prywatności użytkownika. Na przykład, użytkownik łączący wiele UTXO w jedną transakcję może potencjalnie ujawnić powiązanie tych UTXO i ich własność.
Podsumowanie
Model UTXO to mechanizm protokołu blockchain służący do śledzenia monet kryptowalutowych i ograniczania podwójnych wydatków.
UTXO to niewydana kwota kryptowaluty pozostała po transakcji, która może zostać wykorzystana w nowej transakcji. Kiedy inicjowany jest transfer kryptowaluty, UTXO są odblokowywane i przekazywane od nadawcy do odbiorcy.
Na blockchainie Bitcoina, który nie obsługuje wykonywalnych inteligentnych kontraktów, które mogą tworzyć NFT, UTXO umożliwiają formę NFT znaną jako Bitcoin Ordinals.