Błąd z 2010 r. wygenerował 184,5 mld BTC

15 sierpnia 2010 r. błąd w oprogramowaniu Bitcoina w bloku 74 638 pozwolił utworzyć 184 467 440 737,09551616 BTC; deweloperzy wprowadzili poprawkę i zreorganizowali łańcuch.

15 sierpnia 2010 r. w bloku numer 74 638 pojawiła się pojedyncza transakcja, która wygenerowała 184 467 440 737,09551616 BTC. Kwota ta trafiła na dwa adresy — około 92,5 mld BTC na jeden i około 92,2 mld BTC na drugi.

Przyczyną była luka typu value overflow: oprogramowanie klienta nieprawidłowo obsługiwało bardzo duże wartości przypisane do wyjść transakcji, co doprowadziło do przepełnienia typu całkowitoliczbowego. Nie odnotowano przejęcia serwerów ani wykradzenia kluczy prywatnych; problem dotyczył walidacji transakcji w kodzie klienta.

W ciągu kilku godzin główni deweloperzy, w tym aktywny wtedy Satoshi Nakamoto, udostępnili poprawioną wersję klienta odrzucającą transakcje wykorzystujące przepełnienie wartości. Aktualizacja spowodowała krótkotrwałe rozgałęzienie łańcucha: część węzłów nadal budowała wersję zawierającą błędną transakcję, a zaktualizowane węzły odrzucały ten blok. Prawidłowy łańcuch przejął kontrolę na wysokości bloku 74 691 i sztucznie utworzone monety zostały usunięte z obowiązującej historii sieci.

Maksymalna podaż Bitcoina została ustalona na 21 mln BTC, więc wygenerowana w 2010 r. kwota wielokrotnie przekraczała zapisane w protokole limity emisji. Po incydencie zmieniono fragmenty kodu odpowiadające za obsługę wartości transakcji oraz dostosowano zasady walidacji tak, by uniemożliwić podobne przepełnienia.

Obecnie propozycje zmian protokołu przechodzą szersze analizy i testy przed wdrożeniem, a sieć działa na znacznie większą skalę niż w 2010 r. Naprawa z sierpnia 2010 r. przywróciła spójność obowiązującego łańcucha i usunęła błędne zapisy z historii.

Treści publikowane na GNcrypto mają wyłącznie charakter informacyjny i nie stanowią porady finansowej. Dokładamy starań, aby informacje były rzetelne i aktualne, jednak nie gwarantujemy ich pełnej poprawności, kompletności ani niezawodności. GNcrypto nie ponosi odpowiedzialności za ewentualne błędy, pominięcia ani straty finansowe wynikające z polegania na tych treściach. Wszystkie działania podejmujesz na własne ryzyko. Zawsze prowadź własne badania i korzystaj z pomocy profesjonalistów. Szczegóły znajdziesz w naszych Warunkach, Polityce prywatności i Zastrzeżeniach.

Artykuły tego autora