Bitcoin - Mechanizmy sieciowe protokołu

2.9. System zarządzania środkami UTXO

Bitcoin, w przeciwieństwie do większości kryptowalut, ma swój własny unikalny sposób posiadania i wydawania środków, nazywany UTXO (Unspent Transaction Output) czyli niewydane wyjścia transakcyjne.

W tradycyjnych systemach bankowych i większości kryptowalut, saldo konta przechowywane jest jako jedna liczba, która jest aktualizowana przy każdej transakcji. W Bitcoinie zamiast tego mamy konkretne wyjścia transakcji, które nie zostały jeszcze wydane (nazywane właśnie UTXO).

Przykładowo, jeśli dostaniesz 0,5 BTC, to w systemie widnieje jedno UTXO o wartości 0,5 BTC. Jeśli otrzymasz kolejny przelew np. o wartości 0,2 BTC, to w systemie nie posiadasz 0,7 BTC, tylko dwa UTXO: 0,5 BTC oraz 0,2 BTC, które oczywiście dają łączną wartość 0,7 BTC.

Co więcej, jeśli teraz będziesz chciał komuś wysłać np. 0,6 BTC, to zostaje zużyta cała kwota 0,7 BTC, gdzie 0,6 BTC trafia na adres docelowy, natomiast 0,1 BTC (pomniejszone oczywiście o opłaty transakcyjne) generuje nowy adres UTXO, nazywany adresem reszty.

Wraz ze wzrostem ilości UTXO użytych na wejściu czy wygenerowanych na wyjściu, rosną także opłaty transakcyjne. Dlatego, jeśli dokonujemy dużej ilości transakcji na Bitcoinie, dobrze jest od czasu do czasu zebrać wszystkie posiadane UTXO w całość i wygenerować z nich jedno z pełną kwotą posiadanych przez nas środków.

      • Zastosowanie UTXO

System UTXO pozwala na łatwe weryfikowanie transakcji bez konieczności przechowywania pełnej historii sald konta. Zamiast tego, w celu sprawdzenia poprawności transakcji, wystarczy sprawdzić, czy UTXO, na które transakcja się odwołuje, nie zostało wcześniej “zużyte” w innych transakcjach.

System UTXO jest ważnym elementem koncepcji bezpieczeństwa i prywatności w Bitcoinie. Dzięki temu modelowi, transakcje są niezależne od siebie i trudno jest powiązać dane wejściowe z danymi wyjściowymi. UTXO zapewnia również elastyczność, pozwalając na tworzenie złożonych transakcji, takich jak transakcje wielokrotne, gdzie w jednej transakcji możesz wysłać środki na kilka różnych adresów.