Jedno saldo, dwa polecenia
Wyobraź sobie, że Alicja kontroluje dziesięć jednostek cyfrowej wartości. Niemal jednocześnie podpisuje płatność dziesięciu jednostek do Boba i płatność tych samych dziesięciu jednostek do Ewy. Nie są to dwie płatności pokryte dwudziestoma jednostkami, lecz dwa sprzeczne wnioski zużywające to samo źródło.
Ten sam fizyczny banknot nie może jednocześnie znaleźć się w dwóch kasach bez fałszerstwa lub kradzieży. Wiadomości cyfrowe biegną jednak różnymi drogami, a komputery mogą otrzymać je w innej kolejności. Bez wspólnej decyzji zarówno Bob, jak i Ewa mogliby sądzić, że ich płatność przyszła pierwsza.
Dlaczego poprawny podpis nie wystarcza
Alicja może prawidłowo podpisać oba polecenia. Podpis potwierdza autoryzację, ale nie mówi całej sieci, która wiadomość ma pierwszeństwo. Czas z zegara nadawcy nie jest wiarygodny: zegar można ustawić błędnie, a wiadomości docierają z różnym opóźnieniem.
Tradycyjne płatności cyfrowe oddają spór bankowi lub emitentowi tokenu. Administrator prowadzi salda albo listę zużytych jednostek i odrzuca drugą płatność. Również wcześniejsze projekty cyfrowej gotówki często zachowywały bank, który przy odbiorze sprawdzał numer seryjny monety lub później ujawniał ponowne wydanie.
Jak Bitcoin wybiera wspólną historię
Transakcje Bitcoin są rozgłaszane w sieci. Węzły odrzucają transakcję wydającą wyjście, które według ich prawidłowego stanu zostało już użyte. Górnicy zbierają ważne transakcje w kandydujące bloki i szukają proof of work. Każdy blok wskazuje poprzedni, dzięki czemu powstaje uporządkowana historia.
Jeśli tymczasowo pojawią się dwie prawidłowe gałęzie, węzły podążają za ważnym łańcuchem z największym skumulowanym proof of work. Jedna sprzeczna płatność może wejść do przyjętej gałęzi, a druga stanie się nieważna. Kolejne bloki zwiększają koszt przepisania historii, dlatego przy większych kwotach czeka się na więcej potwierdzeń.
- węzeł sprawdza podpisy i to, czy wejścia nie zostały jeszcze wydane
- proof of work nadaje proponowanej historii mierzalną wagę
- potwierdzenia zmniejszają ryzyko cofnięcia, ale nie tworzą natychmiastowej matematycznej ostateczności
Rozwiązanie nie jest magią ani absolutną pewnością
Płatność, której jeszcze nie ma w bloku, może mieć konflikt, więc odbiorca musi uwzględnić ryzyko. Także po dołączeniu pewność jest probabilistyczna: im więcej pracy dojdzie nad blokiem, tym droższe staje się zbudowanie silniejszej alternatywnej historii. Właściwa liczba potwierdzeń zależy od kwoty, sytuacji i tolerancji ryzyka.
Model zakłada też, że atakujący nie utrzymuje kontroli nad decydującą częścią mocy obliczeniowej oraz że użytkownik sprawdza reguły zaufanym oprogramowaniem. Bitcoin nie czyni oszustwa niemożliwym w każdych warunkach; tworzy otwarty system, w którym zmiana historii jest mierzalnie kosztowna i publicznie weryfikowalna.