Czym jest niewydane wyjście transakcji Bitcoin (UTXO)?

Autor Kraken Learn team
10 min
20 lis 2024

Przewodnik dla początkujących po modelu UTXO Bitcoina 📕

Niewydane wyjście transakcji (UTXO) to technika, której protokół Bitcoin używa do śledzenia sald przemieszczanych między portfelami krypto.

Jeśli chodzi o śledzenie i zarządzanie indywidualnymi saldami krypto, protokoły oparte na technologii blockchain zazwyczaj używają jednego z dwóch różnych modeli księgowych.

Jeden z nich to model konta/salda. Projekty takie jak Ethereum, Tezos i EOS używają tego modelu do śledzenia sald, gdy użytkownicy blockchaina wykonują transakcje. Drugi to model niewydanych wyjść transakcji (UTXO). 

Bitcoin i wiele innych kryptowalut, takich jak Litecoin, Cardano i Dogecoin, używa modelu UTXO. 

Czym jednak dokładnie jest, jak działa i jakie są zalety modelu UTXO w porównaniu z modelem konta/salda?

BTC icon
$78 287.00
+0,70%
24H
btc

Zrozumienie modelu UTXO 💻

Historia

Adam Back i nieżyjący już Hal Finney byli dwoma członkami grupy Cypherpunk zajmującej się kryptografią, do której często zaglądał autor białej księgi Bitcoina, Satoshi Nakamoto. Obu przypisuje się niezależne opracowanie modelu UTXO, odpowiednio w latach 1997 i 2004. 

Gdy twórca Bitcoina, Satoshi Nakamoto, uruchomił protokół w 2009 roku, stał się on pierwszym działającym systemem waluty cyfrowej, który wdrożył model UTXO.

Zarówno Hal Finney, jak i Adam Back od dawna byli podejrzewani o bycie Satoshim Nakamoto, choć nigdy nie zostało to z całą pewnością udowodnione.

UTXO w skrócie

Gdy wysyłasz komuś bitcoiny, automatycznie zachodzi kilka procesów. Jednym z pierwszych kroków w procesie transakcji jest przeskanowanie przez Twój portfel kryptowalutowy blockchaina w celu sprawdzenia ilości posiadanych środków. Środki te są znane jako niewydane wyniki transakcji (UTXO).

UTXO można porównać do reszty pozostałej z poprzednich transakcji bitcoin.

Środki te są uważane za „niewydane”, ponieważ są dostępne do wysłania komuś lub przeniesienia do innego portfela. Nazywa się je „wynikami transakcji”, ponieważ powstały w wyniku poprzednich transakcji.

Jeśli płacisz za lunch o wartości 12 USD banknotem 20-dolarowym, zostanie Ci 8 USD reszty. W tym przykładzie pozostałe 8 USD byłoby niewydanym wynikiem transakcji. Kwota ta wróciłaby do Twojego portfela i byłaby gotowa do wykorzystania na kolejny zakup.

Dokładnie tak działają UTXO w sieci Bitcoin. Gdy dokonujesz transakcji, wyniki z poprzednich transakcji bitcoin, tj. Twoja reszta w bitcoinach, są używane jako dane wejściowe dla nowych transakcji.

Kolejnym kluczowym podobieństwem między transakcjami gotówkowymi a UTXO jest to, że oba muszą być wydane w całości i nie mogą być dzielone. Jeśli masz UTXO o wartości 5 bitcoinów i chcesz wysłać komuś 1 BTC, musisz wysłać całe UTXO o wartości 5 bitcoinów i otrzymać w zamian nowe UTXO o wartości 4 BTC pomniejszone o wszelkie opłaty. 

Podobnie jak w powyższym przykładzie, w którym płacisz za lunch o wartości 10 USD całym banknotem 20-dolarowym.

Gdy UTXO zostanie wydane, jest ono uważane za „zużyte” i technicznie rzecz biorąc, jest usuwane z obiegu. 

Każda pozostała reszta jest generowana jako zupełnie nowe UTXO. Ta część systemu UTXO jest sposobem, w jaki Bitcoin rozwiązuje problem podwójnego wydatkowania

Tak jak nie można fizycznie dać sprzedawcy banknotu 5-dolarowego, a następnie dać tego samego banknotu 5-dolarowego komuś innemu, tak użytkownik bitcoina nie może z powodzeniem użyć tego samego niewydanego wyniku transakcji w dwóch oddzielnych transakcjach cyfrowych.

Gdy ktoś próbuje wydać to samo UTXO dwa razy, obie transakcje trafiają do mempoola — rodzaju poczekalni dla oczekujących transakcji. Pozostają tam, dopóki górnicy, którzy wygrają rywalizację proof-of-work, nie połączą ich w nowe bloki.

Możesz dowiedzieć się więcej o tym procesie z naszego artykułu w Centrum Edukacyjnym Kraken Czym jest kopanie bitcoinów?

Nawet jeśli obie transakcje zostaną połączone w dwa oddzielne bloki i przetworzone jednocześnie, z powodu sygnatury czasowej jedna z transakcji zostanie zweryfikowana przed drugą. Po upływie pewnej liczby potwierdzeń (dodaniu nowych bloków do blockchaina) inne węzły oznaczą drugą, nieprawidłową transakcję i ją odrzucą.

Transakcje coinbase

Jedynym momentem, w którym transakcja bitcoin nie ma danych wejściowych, jest tworzenie nowo wybitych BTC w procesie wydobycia.

Znana jako transakcja coinbase, stanowi ona pierwszą transakcję w każdym nowym bloku.

Każde satoshi (podjednostkę bitcoina) w obiegu można prześledzić za pomocą przejrzystej księgi blockchain aż do odpowiadającej mu transakcji coinbase.

Dlaczego Bitcoin używa modelu UTXO?

Saldo konta

Aby zidentyfikować saldo użytkownika, znane również jako zestaw UTXO, oprogramowanie portfela kryptowalutowego skanuje blockchain, aby znaleźć wszystkie UTXO powiązane z odpowiednim publicznym adresem portfela.

Suma wszystkich UTXO daje dokładny obraz tego, jaką ilość kryptowalut kontroluje właściciel portfela.

Gdy UTXO zostanie wydane, publiczny adres portfela odbiorcy jest przypisywany do kwoty, a nowe UTXO jest zapisywane w blockchainie po wykonaniu transakcji.

Przechowywanie

UTXO Bitcoina są zapisywane w różnych transakcjach, które są przechowywane w blokach w blockchainie Bitcoin. Jednak informacje te nie są jasno indeksowane, co utrudnia szybkie wyszukiwanie i zestawianie metadanych. 

Podczas korzystania z oprogramowania portfela, takiego jak klient Bitcoin Core, metadane UTXO są przechowywane i indeksowane przy użyciu bazy danych LevelDB. LevelDB to system przechowywania danych typu open-source stworzony przez Google w 2011 roku, który znacznie przyspiesza lokalizowanie UTXO.

Klient Bitcoin Core to popularne oprogramowanie używane do łączenia się z siecią blockchain Bitcoin. Pierwotnie stworzony przez Satoshiego Nakamoto, Bitcoin Core jest teraz utrzymywany przez społeczność deweloperów-wolontariuszy.

UTXO pod maską 🚗

Z technicznego punktu widzenia transakcja składa się z czterech głównych części:

  • Wersja: informuje węzły sieci o używanej wersji oprogramowania klienckiego. Różne wersje stosują różne zasady weryfikacji danych transakcji.
  • Locktime: jest to parametr czasowy, który określa, jak szybko transakcja jest dodawana do blockchaina. Ten parametr wejściowy określa najwcześniejszy możliwy czas przetworzenia transakcji przez węzły wydobywcze.
  • Dane wejściowe: informacje wskazujące na źródło środków lub poprzednią transakcję, w której powstało UTXO. Dane wejściowe zawierają również tak zwany „skrypt odblokowujący”.
  • Dane wyjściowe: informacje dotyczące przekazywanej wartości, portfela, do którego przypisywana jest własność środków, oraz nowo utworzonych UTXO. Dane wyjściowe zawierają również „skrypt blokujący”.

Czym UTXO różnią się od fizycznej gotówki

Główne różnice pomiędzy analogią do fizycznych banknotów a modelem UTXO polegają na tym, że bitcoin i inne kryptoaktywa oparte na UTXO nie są ograniczone do określonych kwot, tj. 5 USD, 10 USD, 15 USD itd. Dowolna kwota bitcoin (do ośmiu miejsc po przecinku) może być niewydanym wyjściem transakcyjnym. 

Na przykład możesz mieć 0,0003847 BTC pozostałe po transakcji.

Ta kwota stałaby się nowym UTXO, które w przypadku użycia musi zostać wydane w całości i nie może być podzielone na mniejsze kwoty.

Załóżmy, że Jan ma na swoim portfelu krypto saldo w wysokości 1 bitcoina. Jego saldo i skład tego salda to dwie różne rzeczy, podobnie jak w przypadku, gdy masz w portfelu 100 USD, ale może się ono składać z czterech banknotów 20-dolarowych, dwóch 5-dolarowych i jednego 10-dolarowego.

Załóżmy, że na saldo 1 BTC Jana składa się 5 różnych niewydanych wyjść transakcyjnych.

  • 0,138 BTC
  • 0,1 BTC
  • 0,004 BTC
  • 0,73 BTC
  • 0,028 BTC

Jan chce wysłać 0,6 BTC do Jane. Aby to zrobić, oprogramowanie portfela Jana automatycznie zgrupowuje dowolną liczbę kontrolowanych przez niego UTXO, aby pokryć tę transakcję oraz wszelkie opłaty dla górników związane z jej przetworzeniem.

W tym przykładzie załóżmy, że oprogramowanie jego portfela automatycznie wysyła do Jane UTXO bitcoina Jana o wartości 0,73 BTC i zwraca Janowi pozostałą kwotę pomniejszoną o opłaty transakcyjne jako nowe UTXO.

Kwota ta jest automatycznie wysyłana na adres do wydawania reszty; osobny adres powiązany z Twoim portfelem krypto.

Skrypty blokujące i odblokowujące 🔒

Gdy tworzone są UTXO, są one blokowane przy użyciu publicznego adresu portfela odbiorcy. Aby użyć tego UTXO jako danych wejściowych w nowej transakcji, należy je najpierw odblokować za pomocą podpisu cyfrowego nadawcy.

To kolejna ważna rzecz, którą należy zrozumieć na temat transakcji bitcoin. Kiedy transakcja jest dokonywana, bitcoin nie jest cyfrowo przenoszony z jednego konta na drugie. Zamiast tego, środki są odblokowywane, przypisywane nowemu właścicielowi, a następnie ponownie blokowane.

Oznacza to, że tylko nowy właściciel może odblokować środki za pomocą swojego podpisu cyfrowego i przenieść je gdzie indziej; do innej osoby lub do innego portfela pod swoją kontrolą.

Script to język programowania używany przez Bitcoin do przetwarzania transakcji, w tym do blokowania i odblokowywania UTXO. 

  • Skrypt blokujący (ScriptPubKey): Gdy UTXO jest zablokowane, skrypt blokujący (znany jako ScriptPubKey) określa warunki, które muszą zostać spełnione, zanim UTXO będzie mogło zostać użyte jako dane wejściowe. Zazwyczaj polega to na udowodnieniu, że jest się właścicielem klucza prywatnego odpowiadającego publicznemu adresowi portfela użytego do zablokowania UTXO, poprzez dostarczenie podpisu cyfrowego.
  • Skrypt odblokowujący (ScriptSig): Aby odblokować UTXO, należy spełnić warunki określone przez skrypt blokujący, tj. dostarczyć podpis cyfrowy, który udowadnia, że kontroluje się klucze prywatne odpowiadające kluczowi publicznemu użytemu do zablokowania UTXO.

Uniemożliwia to komukolwiek innemu uzyskanie dostępu do tych środków i ich wydanie.

 

Co to jest pył bitcoinowy?

Pył bitcoinowy to UTXO zawierające niewielkie, śladowe ilości satoshi, które pozostały po poprzednich transakcjach.

Same w sobie te znikome ilości BTC są warte mniej niż opłaty transakcyjne za ich przetworzenie, dlatego często pozostają na adresach reszty w oczekiwaniu na połączenie z innymi UTXO i wydanie.

Czym jest atak pyłowy?

Ataki typu dusting polegają na wysyłaniu przez oszustów pyłu na setki tysięcy różnych adresów portfeli. Celem jest ustalenie potencjalnych celów ataków socjotechnicznych.

Oszust obserwuje adresy zawierające wysłany przez niego pył, czekając, aż właściciel dokona transakcji, która połączy UTXO z różnych adresów powiązanych z jego portfelem. Ponieważ pyłowe UTXO są tak małe, istnieje duża szansa, że zostaną one zgrupowane z innymi i użyte jako wejścia.

Gdy to nastąpi, oszust może zorientować się, jakie środki posiada dana osoba. Może on wówczas umieszczać w transakcjach wiadomości phishingowe, zachęcające właściciela do kliknięcia linku, który pobiera złośliwe oprogramowanie, lub do odwiedzenia fałszywych stron internetowych, które imitują prawdziwe strony docelowe i proszą o podanie danych osobowych.

Jak niebezpieczne są ataki dustingowe na bitcoina?

Ataki pyłowe nie dają oszustom dostępu do Twoich środków.

Służą jedynie do ustalenia, które adresy są kontrolowane przez dany portfel krypto.

Aby zminimalizować ryzyko ataków pyłowych, najlepiej nigdy nie klikać w linki ani nie odwiedzać stron internetowych dołączonych do transakcji pyłowych.

Zacznij kupować Bitcoin

Teraz, gdy już wiesz wszystko o modelu niewydanych wyjść transakcji, czy jesteś gotowy, aby kontynuować swoją kryptowalutową podróż i kupić bitcoin?

Sprawdź nasz przewodnik w Kraken Learn Center, aby dowiedzieć się, jak kupić Bitcoin (BTC), i załóż konto na Krakenie już dziś.

Niektóre treści na tej stronie mogły zostać przetłumaczone przy użyciu AI