Sprawa Stone Mana

Wewnątrz problemu kopii portfela Bitcoin, który stracił 8 999 BTC

Stone Man zrobił to, co zalecano ostrożnym użytkownikom: wykonał kopię wallet.dat. Potem jedna płatność 1 BTC i restart ujawniły błąd. Kopia istniała, ale klucz do 8 999 BTC reszty nie.

Blockchain nigdy nie stracił monet.

Portfel stracił możliwość ich wydania.

Ta różnica zmienia tę historię z opowieści o uszkodzonym pendrive w historię o architekturze portfela. Wczesny Bitcoin nie generował wszystkich przyszłych kluczy z jednego odzyskiwalnego ziarna. Kopia była tylko migawką istniejących kluczy w momencie tworzenia.

Noc utraty

Staranna kopia zapasowa, 1 BTC wysłany do siebie i jeden restart z trwałymi skutkami

Stone Man zgromadził 9 000 BTC i przeniósł je do klienta Bitcoin działającego z Debian live CD. System działał w pamięci, więc wyłączenie go usunęłoby aktywny portfel. Najpierw skopiował wallet.dat na pendrive.

  1. 01

    Chroń

    Portfel jest zabezpieczony kopią

    Plik wallet.dat z 9 000 BTC jest kopiowany z systemu na żywo na pendrive.

  2. 02

    Zapłata własna

    Stone Man wysyła do siebie około 1 BTC

    Sprawdzając, kiedy potwierdzi się kolejna płatność, Stone Man wysyła do siebie około 1 BTC. Portfel wydaje cały output 9 000 BTC i cicho tworzy nowy klucz reszty dla pozostałej kwoty.

  3. 03

    Usuń

    System na żywo zostaje wyłączony

    Portfel w pamięci zawierający nowy klucz reszty znika, zanim kopia zostanie odświeżona.

  4. 04

    Przywróć

    Stara kopia wraca

    Blockchain pokazuje transakcję, ale przywrócony portfel nie może wydać wyjścia reszty 8 999 BTC.

“Nigdy nie przypuszczałem, że to zagrozi całemu mojemu saldu.”

Stone Man, BitcoinTalk, 11 sierpnia 2010— (przetłumaczone)

Co wiemy o Stone Manie

Kim był Stone Man?

Prawdziwa tożsamość Stone Mana jest nieznana. Jego profil na BitcoinTalk to konto 288. Na forum mówił, że kupił 9 000 BTC, korzystał z Bitcoina na Debian live CD i zapisał kopię wallet.dat przed wyłączeniem komputera.

Nie znamy jego prawdziwego imienia, miejsca zamieszkania, zawodu ani tego, co się stało po wątku. Późniejsze twierdzenia o jego tożsamości nie zostały potwierdzone.

Poszukiwania brakującego klucza

Poszukiwania klucza rozpoczęto w 2010 roku

Kilka minut po tym, jak Stone Man poprosił o pomoc, inny użytkownik zaoferował sprawdzenie starego portfela. Insti odtworzył wtedy transakcję, korzystając z wczesnych narzędzi Bitcoin autorstwa Gavina Andresena. Skuteczne odzyskanie wymagało, aby zapisany plik wallet.dat zawierał klucz prywatny do adresu reszty. Analiza z 2010 roku sugerowała, że prawdopodobnie go nie zawierał. Bez tego klucza blockchain mógł pokazać, gdzie są monety, ale nikt nie mógł ich przemieścić.

Sierpień 2010

Pierwsza próba odzyskania klucza

Użytkownicy forum śledzili oba wyjścia transakcji, poprosili Stone Mana o listę kluczy w jego portfelu i znaleźli brakujący adres na resztę. Wyjaśnili stratę, ale nie odzyskali klucza.

Maj 2026

Nowe poszukiwania w 2026 roku

W 2026 anonimowy użytkownik forum poinformował, że przetestował ponad 6,5 miliona możliwych kluczy za pomocą GPU. Żaden nie pasował do brakującego adresu. Potrzebowali szczegółów od Stone Mana i jego starego portfela, by zawęzić poszukiwania.

Sekcja zwłok transakcji

Dlaczego wysłanie 1 BTC przesunęło wszystkie 9 000 BTC

Bitcoin wydaje całe wyjścia transakcji. Portfel Stone Mana zużył jedno wyjście 9 000 BTC, zwrócił 1 BTC na wybrany adres i utworzył drugie wyjście na pozostałe 8 999 BTC. To drugie było resztą, nie kradzieżą.

ID transakcji eb5b761c7380ed4c6adf688f9e5ab94953dcabeda47d9eeabd77261902fccccf
Adres reszty 167ZWTT8n6s4ya8cGjqNNQjDwDGY31vmHg

Ukryta awaria

wallet.dat był migawką, nie obietnicą dotyczącą przyszłych kluczy

Oryginalny portfel Bitcoin przechowywał niezależnie generowane klucze prywatne. Gdy potrzebował nowego adresu reszty, mógł wygenerować nowy klucz po wykonaniu kopii. Przywrócenie starszego pliku odtwarzało stare klucze, ale nie mogło odtworzyć późniejszego losowego klucza.

Ponowne skanowanie blockchaina może odnaleźć transakcję i pokazać, gdzie trafiło 8 999 BTC. Nie odtworzy jednak brakującego klucza prywatnego. Widoczność nie oznacza kontroli.

Kopia na pendrive Znany klucz A Może rozpoznać i wydać oryginalne wyjście
Utworzone po kopii zapasowej
Usunięty aktywny portfel Brakujący klucz reszty B Wymagany do wydania wyjścia 8 999 BTC

Najpierw pojawiło się ostrzeżenie

Stone Man nie był pierwszą osobą złapaną przez problem z resztą

14 lipca 2010, prawie miesiąc przed wpisem Stone Mana, inny użytkownik opisał podobną awarię na mniejszą skalę. Zrobił kopię portfela z 1,21 BTC, przekazał 0,01 BTC, przywrócił stary plik i obserwował, jak saldo spada do zera.

Przed płatnością 1,21 BTC w jednym wyjściu
Darowizna 0,01 BTC
Reszta za nowym kluczem 1,20 BTC

Do 21 lipca użytkownicy wyraźnie ostrzegali, że stara kopia może zawierać użyty klucz, ale nie nowo wygenerowany klucz reszty. Zagrożenie było znane, zanim 8 999 BTC uczyniło je niezapomnianym.

Jak zmienił się Bitcoin

Od luźnych kluczy do keypool, potem do portfeli deterministycznych

Odpowiedź nie była jednym idealnym rozwiązaniem. Bitcoin najpierw stworzył bufor bezpieczeństwa przyszłych kluczy. Późniejsze projekty portfeli umożliwiły odzyskanie całych rodzin kluczy z jednego ziarna głównego.

  1. Zaobserwowano awarię

    Ostrzeżenie o 1,20 BTC

    Użytkownik przywraca stary portfel po darowiźnie 0,01 BTC i traci dostęp do nowo utworzonego wyjścia reszty.

  2. Proponowany projekt

    Satoshi opisuje kolejkę przyszłych kluczy

    Wstępnie wygenerowane adresy pozwalały, by kopia zawierała klucze, których portfel jeszcze nie użył.

  3. Awaria wzmocniona

    Stone Man traci klucz do reszty 8 999 BTC

    Ta sama słabość architektoniczna stała się niemożliwa do zignorowania przez społeczność.

  4. Dostarczono bufor bezpieczeństwa

    Bitcoin 0.3.13.3 wprowadza keypool

    Domyślny zestaw 100 wstępnie wygenerowanych kluczy zapewnia kopiom ograniczony zakres przyszłych kluczy.

  5. Standard deterministyczny

    BIP 32 definiuje drzewo kluczy z jednego ziarna

    Portfele mogą generować przyszłe klucze odbioru i reszty z odzyskiwalnego korzenia, zamiast przechowywać tylko niepowiązane losowe klucze.

  6. Domyślnie HD

    Bitcoin Core wprowadza deterministyczne generowanie kluczy

    Dla nowo utworzonych portfeli HD jedna poprawna kopia zapasowa oparta na seed może odtworzyć pochodne klucze portfela.

Rekord implementacji SVN r163 · Bitcoin 0.3.13.3
103849419a9c014a69c76b6f96e48b66cbc838ca

Commit zmienił tworzenie transakcji, aby rezerwować klucze reszty z domyślnego zestawu 100 wstępnie wygenerowanych kluczy, zamiast generować klucz dopiero podczas budowy transakcji.

Co to oznacza dziś

Nowoczesne seedy zmieniły odzyskiwanie, ale nie uczyniły kopii zapasowych opcjonalnymi

Hierarchiczne portfele deterministyczne generują wiele kluczy z jednego ziarna, więc dokładna awaria Stone Mana nie powinna się zdarzyć przy poprawnym ziarnie i danych pochodzenia. Bitcoin Core wprowadził portfele HD w wersji 0.13. Jednak importowane klucze, stare portfele nie-HD, nieznane ścieżki pochodzenia, utracone hasła, uszkodzone kopie i nietestowane procedury odzyskiwania mogą nadal blokować środki.

01

Wiedzieć, jaką masz kopię zapasową

Fraza seed, eksport deskryptora, plik wallet.dat, kopia sprzętowego portfela i importowany klucz prywatny nie przywracają się tak samo.

02

Testuj odzyskiwanie bez przenoszenia prawdziwych środków

Zweryfikuj, czy przywrócony portfel generuje oczekiwane adresy odbioru i reszty, zanim awaria zmusi Cię do zgadywania.

03

Traktuj importowane klucze jako osobne ryzyko

Klucze importowane po oryginalnym seedzie lub kopii mogą wymagać osobnego eksportu i nie zawsze da się je odtworzyć z frazy odzyskiwania.

04

Ostrożnie migruj cenne stare portfele

Utwórz aktualny portfel z nowego materiału odzyskiwania, zweryfikuj kopię, wyślij małą kwotę testową, a potem przenieś resztę.

Trwała lekcja

Kopia zapasowa jest kompletna tylko tak, jak model kluczy, na którym bazuje

Utrata Stone Mana nie była złamaniem kryptografii Bitcoina ani atakiem nieznanego sprawcy. To była wada projektu odzyskiwania ujawniona przez zwykłą transakcję. Sieć zachowała księgę idealnie; stara kopia zachowała niewłaściwy moment.

Monety widoczne w łańcuchu Klucz prywatny możliwy do odzyskania z kopii

Najczęstsze pytania

Czy Stone Man naprawdę stracił 8 999 BTC?

Publiczna transakcja wydała jedno wyjście 9 000 BTC i utworzyła wyjścia 1 BTC i 8 999 BTC. Stone Man zgłosił, że klucz prywatny do adresu reszty 8 999 BTC nie był w przywróconej kopii, a adres nie wydał żadnych środków podczas weryfikacji artykułu.

Dlaczego kopia wallet.dat Stone Mana nie odzyskała monet?

Kopia została utworzona zanim portfel wygenerował klucz prywatny dla nowego adresu reszty. Wczesne portfele niedeterministyczne nie mogły odtworzyć tego późniejszego losowego klucza z wcześniejszych kluczy ani z blockchaina.

Czy wyjście 8 999 BTC to był atak czy płatność dla napastnika?

Do wyjaśnienia transakcji nie był potrzebny żaden atakujący. 8 999 BTC to reszta z 1 BTC zapłaconego przez Stone Mana. Awaria polegała na utracie klucza prywatnego do wydania tej reszty.

Czy ten sam problem z kopią portfela może wystąpić przy nowoczesnej frazie seed?

Poprawnie przywrócony portfel deterministyczny może wygenerować oczekiwane klucze odbioru i reszty z właściwego ziarna. Odzyskanie może jednak zawieść, jeśli ziarno jest błędne lub niepełne, konfiguracja pochodzenia nieznana, klucze importowane osobno, brak hasła lub kopia nigdy nie była testowana.

Czy wiemy, co się stało ze Stone Manem?

Stone Man zwrócił się na forum o pomoc, potwierdził, że nadal ma stary plik portfela i odpowiadał na pytania techniczne. Później przestał publikować wpisy. Nie wiemy, dlaczego, ani czy dalej próbował prywatnie odzyskać klucz.

Kontynuuj śledztwo

Sprawdź, gdzie jeszcze może zawieść bezpieczeństwo portfela

Stone Man stracił dostęp, bo kopia zapasowa nie objęła nowego klucza do adresu reszty. Porównaj to z incydentem COLDCARD, gdzie klucze istniały, ale część powstała z losowych, słabych danych, oraz z zatruwaniem adresów, gdy właściciel podpisuje transakcję na błędny adres.