Saldo jest sumą obliczaną przez portfel
Wyobraź sobie, że otrzymałeś trzy płatności: 20 000, 30 000 i 50 000 satoshi. Sieć nie przechowuje wiersza „saldo 100 000”. Istnieją trzy oddzielne niewydane wyjścia, a portfel sprawdza, które z nich potrafi wydać za pomocą swoich kluczy. Ich sumę pokazuje jako zrozumiałe dla użytkownika saldo.
UTXO pochodzi z konkretnej transakcji, ma dokładną wartość i warunek blokujący. Gdy późniejsza prawidłowa transakcja wykorzysta je jako wejście, staje się wydane i nie może zostać użyte ponownie. W jego miejsce powstają nowe wyjścia. Pełne węzły utrzymują aktualny zbiór niewydanych wyjść, aby sprawnie wykrywać podwójne wydanie.
Wyjścia nie można oderwać tylko w połowie
Jeśli masz UTXO o wartości 50 000 satoshi i chcesz zapłacić 18 000, transakcja zużywa całe pierwotne wyjście. Może utworzyć 18 000 satoshi dla odbiorcy, na przykład 31 500 satoshi jako resztę dla twojego portfela, a 500 satoshi pozostawić jako opłatę.
Adres reszty może w eksploratorze wyglądać jak drugi odbiorca, choć należy do nadawcy. Portfel zwykle tworzy go automatycznie. Gdyby pominął resztę, cała różnica między wejściami i pozostałymi wyjściami mogłaby zostać potraktowana jako opłata dla górnika. Bez odpowiedniej wiedzy nie należy więc samodzielnie budować surowych transakcji.
- wybrane UTXO są zużywane w całości
- płatność i reszta powstają jako nowe oddzielne wyjścia
- opłata nie jest osobnym wyjściem; stanowi różnicę między sumą wejść i wyjść
Dobór monet wpływa na koszt i prywatność
Portfel musi zdecydować, których UTXO użyć. Więcej wejść zazwyczaj oznacza większą transakcję, a zatem wyższą łączną opłatę przy tej samej stawce. Wiele bardzo małych wyjść może stać się nieopłacalnych do wydania w okresie drogiego miejsca w blokach, ponieważ ich wejścia zajmują więcej danych, niż uzasadnia ich wartość.
Połączenie kilku UTXO w jednej transakcji publicznie sugeruje również, że mógł kontrolować je ten sam płatnik. Nie jest to matematyczny dowód tożsamości, lecz często stosowana heurystyka analityczna. Dobry portfel równoważy więc bieżącą opłatę, prywatność, wielkość reszty i przyszłą użyteczność wyjść.
Model UTXO umożliwia niezależną weryfikację
Gdy węzeł otrzymuje transakcję, dla każdego wejścia wyszukuje wskazane UTXO, sprawdza warunek wydania i weryfikuje, czy suma wyjść nie przekracza wartości dozwolonej przez wejścia. Po przyjęciu bloku usuwa wydane pozycje ze swojego zbioru UTXO i dodaje nowe wyjścia, które można wydać.
Węzeł nie musi ufać saldu zgłoszonemu przez cudzy portfel. Stan wyprowadza z własnej zweryfikowanej historii. Ceną tego modelu jest mniej intuicyjny interfejs i potrzeba rozsądnego zarządzania wyjściami. Portfel ukrywa te szczegóły, ale wracają one przy wysokich opłatach lub trosce o prywatność.