UTXO
Ang. Unspent Transaction Output — niespane wyjście transakcyjne. Podstawowy element modelu rozliczeniowego Bitcoina: zamiast sald kont sieć śledzi zbiór konkretnych porcji BTC możliwych do wydania.
Jak działa model UTXO
Każda transakcja Bitcoin pobiera istniejące UTXO jako wejścia i tworzy nowe UTXO jako wyjścia. Wejście jest całkowicie zużywane — nie można wydać połowy UTXO. Reszta wraca do nadawcy jako nowe UTXO (wyjście reszty).
Przykład: masz UTXO o wartości 1 BTC i chcesz wysłać 0,5 BTC. Transakcja zużywa całe 1 BTC UTXO i tworzy dwa nowe: 0,5 BTC do odbiorcy i ~0,4999 BTC z powrotem do ciebie (pomniejszone o opłatę).
Twoje 'saldo portfela' to suma wartości wszystkich UTXO, do których masz klucz prywatny. Nie ma jednego licznika jak na koncie bankowym.
UTXO vs model konta (Ethereum)
- Jednostka
- UTXO: dyskretne wyjście. Ethereum: saldo konta.
- Prywatność
- UTXO: łatwiej tworzyć nowe adresy odbiorcze, trudniej łączyć. Konto: jeden adres, pełna historia.
- Złożoność
- UTXO: portfel musi zarządzać coin selection. Konto: prostsze dla smart kontraktów.
- Równoległość
- UTXO: transakcje dotykające różnych UTXO można weryfikować równolegle. Konto: stan sekwencyjny.
Zbiór UTXO (UTXO set)
UTXO set to kompletna lista wszystkich niespanych wyjść w całej historii Bitcoina. Każdy pełny węzeł trzyma ją w pamięci lub szybkim magazynie, bo weryfikacja transakcji wymaga sprawdzenia, czy wejście wskazuje na prawdziwe, niespane wyjście.
Tworzenie wielu małych UTXO (np. przez częste otrzymywanie drobnych płatności) zwiększa rozmiar UTXO set i podnosi koszt przyszłych transakcji — konsolidacja UTXO ma sens przy niskich opłatach.
Najczęstsze błędne założenia
- 'Saldo portfela' Bitcoin to nie jedno saldo konta — to suma wielu UTXO.
- Przy wysyłaniu BTC portfel automatycznie wybiera które UTXO zużyć (coin selection). Zły wybór może oznaczać wyższe opłaty lub mniejszą prywatność.
- Adres Bitcoin nie jest tym samym co UTXO. Jeden adres może mieć wiele UTXO — albo zero.
