Czym jest niewykorzystana transakcja Bitcoin (UTXO)?

Przewodnik dla początkujących dotyczący modelu UTXO Bitcoina ↓
Niewykorzystane wyniki transakcji (UTXO) to technika stosowana przez protokół Bitcoin do śledzenia sald w miarę ich przemieszczania się między portfelami krypto.
Jeśli chodzi o śledzenie i zarządzanie indywidualnymi saldami kryptowalut, protokoły oparte na blockchainie zazwyczaj wykorzystują jeden z dwóch różnych modeli księgowości.
Jeden z nich nazywa się modelem Konto/saldo. Projekty takie jak Ethereum, Tezos i EOS wykorzystują ten model do śledzenia sald, gdy użytkownicy blockchaina realizują transakcje. Drugi jest nazywany modelem niewykorzystanej transakcji (UTXO).
Bitcoin i wiele innych kryptowalut, takich jak Litecoin, Cardano i Dogecoin, wykorzystują model UTXO.
Ale co to jest, jak działa i jakie są zalety UTXO w porównaniu z modelem Konto/Balance?
Zrozumienie modelu UTXO †
Historia
Adam Back i zmarły Hal Finney byli dwoma członkami grupy kryptowalutowej Cypherpunk, której uczestniczył autor białej księgi Bitcoina Satoshi Nakamoto. Dwa z nich zostały zasłużone za rozwój modelu UTXO niezależnie odpowiednio w latach 1997 i 2004.
Gdy w 2009 r. twórca Bitcoina, Satoshi Nakamoto, uruchomił protokół, stał się on pierwszym operacyjnym systemem walut cyfrowych, który wdrożył model UTXO.
Zarówno Hal Finney, jak i Adam Back od dawna są podejrzani o bycie Satoshi Nakamoto, choć nigdy nie udowodniono na pewno.
UTXO na wgląd
Gdy wysyłasz Bitcoina do kogoś, programowo wykonuje się kilka kroków. Jednym z najwcześniejszych kroków w procesie transakcji jest skanowanie blockchaina przez portfel kryptowalutowy pod kątem posiadanych środków. Fundusze te nazywane są niewykorzystanymi transakcjami wyjściowymi (UTXO).
UTXO można postrzegać jako luźną zmianę pozostałą w odniesieniu do poprzednich transakcji z udziałem Bitcoina.
Środki są uważane za „niewykorzystane”, ponieważ są łatwo dostępne do wysłania do kogoś lub przeniesienia do innego portfela. Są nazywane „wyjściem transakcji”, ponieważ zostały utworzone na podstawie poprzednich transakcji.
Jeśli wydasz 12 USD na lunch z 20-dolarowym rachunkiem, pozostałby Ci 8 USD. W tym przykładzie pozostałe 8 USD byłoby niewykorzystaną transakcją. Wróci do Twojego portfela, aby można było go użyć do zakupu czegoś innego.
Właśnie tak działają UTXO Bitcoina. Podczas dokonywania transakcji wyjścia z poprzednich transakcji Bitcoin, tj. luźna zmiana Bitcoina, są wykorzystywane jako dane wejściowe dla nowych transakcji.
Innym kluczowym porównaniem między fizycznymi transakcjami gotówkowymi a UTXO jest to, że oba muszą być w całości wydane i nie można ich podzielić. Jeśli masz UTXO o wartości 5 bitcoinów i chcesz wysłać komuś 1 BTC, musisz wysłać całą UTXO o wartości 5 bitcoinów i otrzymać nową UTXO o wartości 4 BTC pomniejszoną o wszelkie opłaty.
Podobnie jak w powyższym przykładzie, w którym przekazujesz cały rachunek w wysokości 20 USD na lunch w cenie 10 USD.
Gdy UTXO jest wydane, jest ono uznawane za „pożądane” i technicznie usuwane z obiegu.
Wszelkie pozostałe zmiany są generowane jako całkowicie nowe UTXO. Ta część systemu UTXO to sposób, w jaki Bitcoin rozwiązuje problem podwójnych wydatków.
Podobnie jak nie można fizycznie dać właścicielowi sklepu rachunku 5 USD, a następnie dać komuś innemu tego samego rachunku 5 USD, użytkownik Bitcoina nie może pomyślnie wykorzystać tej samej niewykorzystanej transakcji w dwóch oddzielnych transakcjach cyfrowych.
Gdy dana osoba spróbuje dokonać tej samej transakcji UTXO dwa razy, dwie transakcje kończą się w pamięci — jest to rodzaj poczekalni dla oczekujących transakcji. Pozostają tu, dopóki skuteczni górnicy, którzy wygrali konkurs proof-of-work, nie zapakować ich do nowych bloków.
Więcej informacji na temat tego procesu można znaleźć w naszym artykule w Centrum wiedzy Kraken: Czym jest kopanie Bitcoina?
Nawet jeśli obie transakcje są pakietowane w dwa oddzielne bloki i przetwarzane jednocześnie, ze względu na znacznik czasu jedna z transakcji zostanie zweryfikowana wcześniej niż druga. Po otrzymaniu wielu potwierdzeń (dodawanie nowych bloków do blockchaina) inne węzły oznaczyłyby drugą nieprawidłową transakcję i odrzuciły ją.
Transakcje Coinbase
Jedynym razem, gdy transakcja z udziałem Bitcoina nie ma wejść, jest to, gdy nowo wybity BTC jest tworzony w wyniku kopania.
Znany jako transakcja coinbase, stanowi to pierwszą transakcję w każdym nowym bloku.
Każde satoshi (podjednostki Bitcoina) w obiegu można śledzić przy użyciu przejrzystego rejestru blockchain do danej transakcji z bazą coinbase.
Dlaczego Bitcoin używa modelu UTXO?
Saldo konta
Aby zidentyfikować saldo użytkownika, znane również jako zestaw UTXO, oprogramowanie portfela krypto zeskanuje blockchain, aby znaleźć wszystkie UTXO powiązane z odpowiednim adresem portfela publicznego.
Całkowita suma wszystkich UTXO zapewnia dokładny obraz tego, ile kryptowalut kontroluje właściciel portfela.
Gdy UTXO jest wydane, adres portfela publicznego odbiorcy jest przypisywany do kwoty, a nowy UTXO jest rejestrowany w blockchainie po wykonaniu transakcji.
Przechowywanie
Bitcoin UTXO są rejestrowane w różnych transakcjach, które są przechowywane w blokach w blockchainie Bitcoin. Informacje te nie są jednak wyraźnie indeksowane, więc szybkie wyszukiwanie i pobieranie metadanych może być utrudnione.
W przypadku 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 open-source stworzony przez Google w 2011 roku, który znacznie szybciej odkrywa UTXO.
Klient Bitcoin Core to popularne oprogramowanie używane do łączenia się z siecią blockchain Bitcoin. Bitcoin Core, stworzone pierwotnie przez Satoshiego Nakamoto, jest teraz utrzymywane przez społeczność programistów-wolontariuszy.
UTXO pod okrętem kablowania, †
Na bardziej technicznym poziomie transakcja składa się z czterech głównych części:
- Wersja: Informuje węzły sieci, której wersji oprogramowania klienta jest używana. Różne wersje przestrzegają różnych zasad w zakresie weryfikacji danych transakcji.
- Czas blokady: To jest ilość czasu, która określa, jak szybko transakcja zostanie dodana do blockchaina. To dane wejściowe określa możliwie jak najwcześniejszą datę przetworzenia transakcji przez węzły kopania.
- Wejście: Informacje wskazujące na źródło środków lub poprzednią transakcję, w ramach której UTXO zostało wyprodukowane. Pole wejściowe zawiera również coś nazywanego „skryptem odblokowania”.
- Wyjście: Informacje dotyczące przekazywanej wartości, portfela, do którego przekazywana jest własność środków, oraz utworzonych nowych UTXO. Wyniki zawierają również „skrypt blokady”.
Jak UTXO różnią się od fizycznej gotówki
Główną różnicą między analogiem fizycznym i modelem UTXO jest to, że Bitcoin i inne aktywa krypto oparte na UTXO nie są powiązane przez ustalone kwoty, tj. $5, $10, $15 itp. Dowolna ilość Bitcoina (do ośmiu miejsc po przecinku) może być niewykorzystaną transakcją wyjściową.
Na przykład możesz mieć 0,0003847 BTC pozostałe z transakcji.
Kwota ta stanie się nową walutą UTXO, która w przypadku wykorzystania musi zostać wydana w całości i nie może zostać podzielona na mniejsze kwoty.
Załóżmy, że John ma saldo portfela kryptowalutowego w wysokości 1 BTC. Jego saldo i skład tego salda to dwie różne rzeczy, w ten sam sposób, w jaki możesz mieć 100 USD w portfelu, ale może składać się z czterech banknotów 20 USD, dwóch banknotów 5 USD i jednego z 10 USD.
Załóżmy, że saldo 1 BTC Johna składa się z 5 różnych niewykorzystanych transakcji.
- 0,138 BTC
- 0,1 BTC
- 0,004 BTC
- 0,73 BTC
- 0,028 BTC
John chce wysłać 0,6 BTC do Jane. W tym celu oprogramowanie portfela Johna automatycznie pogrupuje dowolną liczbę UTXO, którą kontroluje, w celu pokrycia tej transakcji oraz wszelkich opłat górników za jej przetwarzanie.
W tym przykładzie, załóżmy, że oprogramowanie portfela automatycznie wysyła Johnowi bitcoina UTXO o wartości 0,73 BTC do Jane i zwraca pozostałą kwotę pomniejszoną o opłaty transakcyjne do Johna jako nowego UTXO.
Ta kwota jest automatycznie wysyłana na zmieniony adres; oddzielny adres połączony z Twoim portfelem krypto.
Zablokowywanie i odblokowywanie skryptów †
Podczas tworzenia UTXO są one blokowane przy użyciu publicznego adresu portfela odbiorcy. Aby wykorzystać UTXO jako dane wejściowe w nowej transakcji, należy najpierw odblokować ją za pomocą cyfrowego podpisu nadawcy.
Kolejną ważną kwestią jest zrozumienie dotyczące transakcji z udziałem Bitcoina. Po dokonaniu transakcji Bitcoin nie jest cyfrowo przenoszony z jednego konta na drugie. Zamiast tego są odblokowane, przypisane nowemu właścicielowi, a następnie ponownie zablokowane.
Oznacza to, że tylko nowy właściciel może odblokować środki za pomocą swojego cyfrowego podpisu i przenieść je gdzieś indziej; do innej osoby lub do innego portfela, który jest pod jego kontrolą.
Script to język programowania używany przez Bitcoina do przetwarzania transakcji, w tym do blokowania i odblokowywania UTXO.
- Blokowanie skryptów (ScriptPubKey): Gdy UTXO jest zablokowany, skrypt blokady (znany jako ScriptPubKey) określa warunki, które muszą zostać spełnione, zanim UTXO będzie można użyć jako dane wejściowe. Zwykle wiąże się to z udowodnieniem, że posiadasz klucz prywatny odpowiadający adresowi portfela publicznego używanemu do zablokowania UTXO, dostarczając podpis cyfrowy.
- Odblokowywanie skrypu (ScriptSig): Aby odblokować UTXO, musisz spełnić warunki określone przez skrypt blokady, tj. dostarczyć podpis cyfrowy potwierdzający, że kontrolujesz klucze prywatne odpowiadające kluczowi publicznemu używanemu do zablokowania UTXO.
Uniemożliwia to każdemu innemu uzyskanie dostępu do tych środków i ich wydawanie.
Czym jest kurz Bitcoina?
Bitcoin dust odnosi się do UTXO zawierających niewielkie ilości śladów satoshi pozostałych z poprzednich transakcji.
Samodzielnie te niewielkie kwoty BTC kosztowałyby więcej opłat transakcyjnych, niż były warte, więc często siedziałyby w zmiennych adresach, czekając na pakiet z innymi UTXO i wydawane.
Czym jest atak pyłu?
Ataki pyłu odnoszą się do oszustów wysyłających pył na setki tysięcy różnych adresów portfeli. Ideą jest ustalenie potencjalnych celów dla ataków związanych z inżynierią społeczną.
Oszuści będą obserwować adresy zawierające wysłany kurz, czekając na dokonanie przez właściciela transakcji, która pakietuje UTXO z różnych adresów powiązanych z ich portfelem. Ponieważ UTXO pyłu są tak małe, istnieje duża szansa, że zostaną one pogrupowane razem z innymi i wykorzystane jako dane wejściowe.
Gdy to nastąpi, oszust może uzyskać wgląd w posiadane środki danej osoby. Następnie mogą zdecydować się na dodanie wiadomości phishingowych do transakcji z prośbą o kliknięcie na łącze, które pobiera złośliwe oprogramowanie, lub odwiedzenie fałszywych stron internetowych, które naśladują autentyczne strony docelowe i proszą o podanie danych osobowych.
Jak niebezpieczne są ataki opuszczające Bitcoina?
Ataki pyłu nie dają oszustom dostępu do Twoich środków.
Służą one jedynie do zwężenia zakresu adresów kontrolowanych przez konkretny portfel krypto.
Aby zminimalizować ryzyko ataków pyłu, najlepiej nigdy nie kliknąć łączy ani nie odwiedzać stron internetowych powiązanych z transakcjami pyłu.
Zacznij kupować Bitcoina
Gdy teraz wiesz już wszystko o modelu wyjściowym niewykorzystanej transakcji, czy chcesz kontynuować swoją przygodę z kryptowalutami i kupić Bitcoina?
Zapoznaj się z naszym przewodnikiem w Centrum wiedzy Kraken, aby dowiedzieć się więcej na temat jak kupić Bitcoina (BTC) i załóż konto w Krakenie już dziś.