Portfel najpierw buduje propozycję płatności
Po wpisaniu adresu odbiorcy i kwoty portfel nie wybiera pliku zawierającego monety. Znajduje wcześniejsze wyjścia, które może wydać za pomocą twoich kluczy, i wykorzystuje je jako wejścia nowej transakcji. Następnie tworzy wyjście dla odbiorcy, zazwyczaj wyjście z resztą dla ciebie, oraz dobiera opłatę.
Dopóki propozycja nie zostanie prawidłowo podpisana, sama w sobie nie upoważnia sieci do wydania czegokolwiek. Portfel musi sprawdzić kwoty i warunki, przygotować dokładne dane do podpisu, a dopiero potem przekazać wynik połączonemu węzłowi. Dobrze zaprojektowany portfel podpisujący pokazuje użytkownikowi adres docelowy, kwotę i opłatę przed zatwierdzeniem.
Wejścia wskazują wstecz, wyjścia prowadzą naprzód
Każde zwykłe wejście wskazuje konkretne wyjście starszej transakcji za pomocą identyfikatora i numeru porządkowego. Dostarcza też danych spełniających warunek jego wydania. Nowe wyjścia określają liczbę satoshi i nowy warunek, który będzie musiała spełnić osoba wydająca dane wyjście w przyszłości.
Transakcja nie zapisuje więc polecenia „odejmij od rachunku Jana i dodaj Piotrowi”. Zużywa wybrane wyjścia w całości i tworzy nowe. Jeżeli wejścia mają większą wartość niż płatność i opłata, różnica zwykle wraca do nadawcy w osobnym wyjściu. Model ten dokładniej omawia artykuł 45.
- wejście wskazuje konkretne starsze niewydane wyjście
- wyjście określa kwotę oraz warunek przyszłego wydania
- różnicę między wejściami a wyjściami górnik może otrzymać jako opłatę
Podpis wędruje, klucz prywatny zostaje u właściciela
Portfel używa klucza prywatnego do podpisania określonych części transakcji. Podpis pozwala węzłom sprawdzić, czy płatnik przedstawił wymagane upoważnienie i czy chronione dane nie zostały zmienione po podpisaniu. Sam klucz prywatny nie trafia ani do odbiorcy, ani do sieci.
Podpisana transakcja jest wysyłana do jednego lub kilku węzłów. Każdy z nich sprawdza ją samodzielnie i może przekazać prawidłową transakcję kolejnym sąsiadom. Rozgłoszenie nie jest jednak potwierdzeniem: na tym etapie transakcja pozostaje niepotwierdzona i może jeszcze nie znajdować się w żadnym bloku.
Odbiorca obserwuje zapis, a nie nadlatujący przedmiot
Portfel odbiorcy rozpoznaje, że nowe wyjście odpowiada warunkowi, który jego klucz będzie mógł później spełnić. Może od razu pokazać je jako oczekującą płatność. Umieszczenie w prawidłowym bloku daje pierwsze potwierdzenie, a kolejne bloki zmniejszają prawdopodobieństwo zmiany kolejności historii.
Takie wyjaśnienie nie czyni z Bitcoina zwykłego rachunku bankowego. Różnica polega na tym, że ważności nie musi poświadczać jeden operator bazy rachunkowej. Każdy pełny węzeł może na podstawie publicznych danych i reguł sam ustalić, czy wejścia istnieją, pozostają niewydane i nie tworzą niedozwolonej wartości.