Blog
Stary plik MultiBit: wyciągnięcie klucza i przeniesienie środków
W skrócie
Ze starym plikiem MultiBit należy pracować na kopiach, najpierw ustalając jego format.
- Classic .wallet: mbexport pozwala wyodrębnić klucze prywatne offline. Zaszyfrowany plik wymaga hasła, którego czasem trzeba najpierw poszukać. Środki można następnie przenieść przez sweep do nowego portfela, po sprawdzeniu adresu docelowego i opłaty.
- HD mbhd.wallet.aes: słowa portfela przywraca się w Electrum jako frazę BIP39, z adresami legacy i ścieżką m/0'. Portfele Beta 7 wymagają odtworzenia pierwotnej, niestandardowej konwersji.
- Zerowe saldo lub uszkodzone dane: należy porównać znane adresy, w Classic także postać skompresowaną i nieskompresowaną kluczy. Warto zachować cały folder HD. Usuniętych plików należy szukać na obrazie dysku; odzyskanie zależy od zachowanych danych.

Znaleźli Państwo plik. Może leżał na dysku twardym, którego nie podłączano od 2016 roku, w folderze, który omal nie został usunięty, albo w zapomnianej kopii zapasowej w chmurze. Plik .wallet lub .wallet.aes, a przy nim być może wciąż bitcoiny.
MultiBit został wycofany w 2017 roku, więc program, w którym powstał plik, nie dostaje już poprawek ani wsparcia. Na same monety nie ma to wpływu. Nigdy nie były one przechowywane w programie MultiBit: znajdują się pod adresami na blockchainie Bitcoina, a klucze z Państwa pliku lub fraza odzyskiwania portfela MultiBit HD nadal dają nad nimi kontrolę. Jeśli nikt inny ich nie przeniósł, bitcoiny mogą wciąż leżeć dokładnie tam, gdzie zostawili je Państwo. Samo wycofanie programu opisuje artykuł Co się stało z portfelem MultiBit.
Znalezienie pliku bywa najtrudniejsze. Dalsze kroki są bardziej przewidywalne: wyodrębnienie klucza prywatnego i przeniesienie środków do portfela, nad którym mają dziś Państwo kontrolę. Ten przewodnik prowadzi od pliku aż do przeniesionych środków. Przegląd wszystkich dróg odzyskiwania MultiBit (Classic, HD, hasło i usunięte pliki) zawiera przewodnik po odzyskiwaniu portfeli MultiBit.
Na samym początku: dwie kopie pliku
Zanim uruchomią Państwo na pliku jakiekolwiek narzędzie, proszę skopiować go w dwa osobne miejsca, na przykład na dwa pendrive’y albo dwa różne dyski zewnętrzne. Obie kopie należy trzymać offline: niezaszyfrowany plik Classic zawiera klucze prywatne w postaci jawnej, więc każdy, kto zdobędzie kopię, może przenieść monety. Gdy obie kopie są bezpiecznie zapisane, żadna nieudana próba nie pozbawi Państwa pliku.
Jeśli oryginał znajduje się na dysku, który latami leżał w szufladzie, należy obchodzić się z nim bardzo ostrożnie. Stare dyski talerzowe czasem zawodzą dopiero przy drugim lub trzecim odczycie, a nie przy pierwszym. Przy jakichkolwiek wątpliwościach co do niezawodności tego dysku warto więc go sklonować, zanim zacznie się przeglądać jego zawartość. W systemie Windows należy użyć narzędzia do tworzenia obrazu dysku, które wykonuje pełną kopię sektor po sektorze. W systemie Linux lub macOS do pracy z awaryjnymi dyskami służy GNU ddrescue: najpierw kopiuje czytelne obszary, zamiast zatrzymywać się na pierwszym błędzie odczytu, a dzięki plikowi mapfile kolejne uruchomienie uzupełnia już tylko luki.
Czego nie robić ze starym plikiem portfela MultiBit
Cztery błędy mogą skończyć się utratą pliku lub monet, niezależnie od tego, którą z opisanych niżej dróg wybiorą Państwo:
- Nie należy uruchamiać narzędzi do odzyskiwania na oryginalnym pliku. Każdą próbę trzeba przeprowadzać na kopii: dotyczy to skryptów deszyfrujących, narzędzi do naprawy plików i wszystkiego innego, co ingeruje w dane portfela.
- Nie należy pobierać MultiBita z innych miejsc niż zarchiwizowane strony projektu. Ostatni właściciel programu, KeepKey, oficjalnie go wycofał, a dawny adres multibit.org przekierowuje teraz na forum o oprogramowaniu, które nie ma z MultiBitem nic wspólnego. Nieoficjalne pliki do pobrania znalezione przez wyszukiwarki mogą zawierać złośliwe oprogramowanie, które po cichu przechwytuje pliki portfela i hasła. Oryginalny kod i ostatnie wydania MultiBit HD pozostają zarchiwizowane w serwisie GitHub: MultiBit Classic i MultiBit HD.
- Nie należy wpisywać klucza prywatnego ani frazy odzyskiwania na żadnej stronie internetowej. Żadne wiarygodne narzędzie online nie potrzebuje Państwa klucza prywatnego, by pomóc w odzyskaniu środków. Każda strona, która o niego prosi, służy do ich kradzieży.
- Nie należy wysyłać transakcji sweep bez sprawdzenia opłaty. Opłaty w sieci Bitcoin nie są już takie jak w 2015 czy 2016 roku, a transakcja ze zbyt niską opłatą może czekać na potwierdzenie całymi dniami albo bez końca.
Jak ustalić, która wersja MultiBit utworzyła plik
Rozszerzenie pliku wskazuje, która wersja MultiBit go utworzyła, a od tego zależy dalsza droga.
- Plik .wallet (bez dodatkowego rozszerzenia) to portfel MultiBit Classic. Zawiera jeden lub więcej kluczy prywatnych zapisanych bezpośrednio w opracowanym przez Google formacie Protocol Buffer. Jeśli ustawili Państwo wtedy hasło, klucze te są w pliku zaszyfrowane algorytmem AES-256.
- Plik .wallet.aes to portfel MultiBit HD. Plik portfela HD nosi nazwę mbhd.wallet.aes i jest w całości zaszyfrowany. Jeśli mają Państwo hasło, można go odszyfrować i odczytać zapisaną w nim frazę odzyskiwania. Jeśli hasła nie ma, ale fraza odzyskiwania została zapisana, można pracować na samej frazie i odłożyć plik na bok.
Jeśli nie ma pewności, z którym typem mają Państwo do czynienia: pliki Classic to zazwyczaj samodzielne pliki .wallet w folderze MultiBit. Portfele HD leżą zwykle we własnym folderze, którego nazwa zaczyna się od „mbhd-”, po czym następuje długi ciąg znaków. W tym folderze znajduje się plik .wallet.aes wraz z plikami pomocniczymi. Jeśli uda się znaleźć taki folder, proszę zachować go w całości.
Odzyskiwanie pliku .wallet z MultiBit Classic
Portfele MultiBit Classic przechowują klucze prywatne w formacie Protocol Buffer. Jeśli portfel nie był chroniony hasłem, klucze można wyodrębnić bezpośrednio. Jeśli był, najpierw potrzebne jest pierwotne hasło; innej drogi nie ma.
Niezaszyfrowany portfel Classic
Oficjalnym narzędziem do eksportu jest read-multibit-wallet-file, opublikowane na własnym koncie projektu MultiBit w serwisie GitHub. To niewielki program wiersza poleceń, który działa w środowisku Node.js i instaluje się jako mbexport. Uruchomiony na kopii pliku .wallet z Classic wypisuje klucze prywatne w formacie WIF (Wallet Import Format), czyli w formacie, który nowoczesne portfele przyjmują przy imporcie. Inne narzędzia, które analizują strukturę Protocol Buffer, odczytają niezaszyfrowany plik w ten sam sposób.
Wyodrębnianie należy przeprowadzić na komputerze offline. Uzyskany klucz WIF można zaimportować do Electrum, pobranego wyłącznie z electrum.org: przy tworzeniu nowego portfela służy do tego opcja „Import Bitcoin addresses or private keys”. Electrum wyszukuje adres klucza i pokazuje jego saldo. Aby przenieść środki, należy jednak wykonać sweep klucza, a nie pozostawiać go zaimportowanego, jak opisano niżej.
Portfel Classic chroniony hasłem
Jeśli portfel był zaszyfrowany, przed wyodrębnieniem jakiegokolwiek klucza potrzebne jest hasło; mbexport o nie poprosi. Klucze w pliku są zaszyfrowane algorytmem AES-256: bez poprawnego hasła są niedostępne. Nie ma na to obejścia.
Zanim cokolwiek zostanie uruchomione, proszę spisać wszystko, co pamiętają Państwo o haśle: strukturę, długość, sposób używania wielkich liter, liczby lub lata używane w tamtym czasie, ważne wtedy słowa. Nawet fragmentaryczne wspomnienie jest dużo cenniejsze niż wyczerpujące przeszukiwanie na ślepo. BTCRecover to standardowe narzędzie open source do tego zadania, a jego dokumentacja wymienia odzyskiwanie haseł zarówno dla MultiBit Classic, jak i dla MultiBit HD. Działa lokalnie i sprawdza na pliku kolejne warianty hasła. Odzyskiwanie hasła szerzej omawia przewodnik po odzyskiwaniu portfeli MultiBit.
Jak wykonać sweep klucza prywatnego z MultiBita
Zaimportowanie klucza prywatnego i przeniesienie z niego środków (sweep) to dwie różne operacje, a w przypadku starych portfeli MultiBit właściwym wyborem jest sweep. Przy imporcie oryginalny klucz pozostaje aktywny w portfelu, więc może zostać ponownie ujawniony, jeśli bezpieczeństwo tego portfela zostanie kiedyś naruszone. Sweep przenosi wszystkie środki ze starego klucza na nowy, nieużywany adres w Państwa nowym portfelu, a stary klucz zostaje w praktyce wycofany z użytku.
Sweep w Electrum krok po kroku
Poniższe kroki dotyczą Electrum 4.8.2, aktualnej wersji programu.
- Proszę pobrać Electrum wyłącznie z electrum.org i, jeśli wiedzą Państwo, jak to zrobić, zweryfikować podpis GPG. Następnie należy utworzyć nowy portfel standardowy z nową frazą odzyskiwania. Frazę trzeba zapisać na papierze i przechowywać osobno.
- Po skonfigurowaniu nowego portfela proszę przejść do „Wallet → Private keys → Sweep” (w polskiej wersji Electrum „Portfel → Klucze prywatne → Opróżnij”).
- Klucz prywatny WIF z portfela Classic należy wkleić w pole „Enter private keys to sweep coins from”. W polu „Send to address” proszę pozostawić adres zaproponowany przez Electrum, czyli nieużywany adres nowego portfela.
- Proszę kliknąć „Sweep” („Opróżnij”). Electrum zbiera monety przypisane do tego klucza i otwiera okno „New Transaction” z pełną kwotą. Przed przejściem dalej należy sprawdzić transakcję.
- W tym oknie należy ustawić opłatę. Wcześniej warto sprawdzić aktualną zalecaną stawkę opłaty na mempool.space.
- Proszę kliknąć „OK”. Electrum podpisuje transakcję i wysyła ją do sieci, a środki trafiają do nowego portfela po jej potwierdzeniu.
Wysłanej transakcji sweep nie można cofnąć. Przed kliknięciem „OK” proszę sprawdzić adres docelowy i opłatę.
Co zrobić, gdy po imporcie saldo wynosi zero
Jeśli zaimportowany klucz pokazuje zerowe saldo, należy sprawdzić trzy rzeczy: czy na adres kiedykolwiek wpłynęły środki, czy nie zostały one już przeniesione i czy Electrum pokazuje adres, na którym faktycznie znajdują się monety.
Typu adresu nie trzeba ustawiać. Electrum traktuje zwykły klucz WIF, czyli taki bez prefiksu w rodzaju p2wpkh:, jako klucz legacy z adresem zaczynającym się od 1. Właśnie takiego typu adresów używał MultiBit Classic. Różnić może się natomiast postać klucza. Jednemu kluczowi prywatnemu odpowiadają dwa adresy legacy, jeden dla skompresowanego, drugi dla nieskompresowanego klucza publicznego. O którą postać chodzi, widać po tekście WIF: klucze skompresowane zaczynają się od K lub L, nieskompresowane od 5. Ponieważ mbexport wypisuje każdy klucz w postaci skompresowanej, klucz przechowywany przez portfel w postaci nieskompresowanej pojawi się w Electrum pod adresem, którego nigdy nie używano. Zanim wyciągną Państwo jakiekolwiek wnioski, proszę porównać adres pokazany przez Electrum z adresem z dawnych zapisów MultiBit.
Jeśli adres się zgadza, a saldo nadal wynosi zero, proszę sprawdzić go w eksploratorze blockchaina, takim jak mempool.space, aby ustalić, czy środki kiedykolwiek tam trafiły i czy nie zostały już przeniesione.
Odzyskiwanie portfela MultiBit HD za pomocą frazy seed
Jeśli mają Państwo frazę odzyskiwania portfela MultiBit HD z 12, 18 lub 24 słów, którą MultiBit HD nazywał słowami portfela („wallet words”), dostęp można przywrócić w ogóle bez odszyfrowywania pliku .wallet.aes. Jeśli zachował się plik i hasło do niego, ale słowa nie, mbexport odszyfruje plik i wypisze słowa portfela. Plik i jego kopie zapasowe należy zachować również wtedy, gdy słowa są dostępne.
Słowa MultiBit HD są zgodne z BIP-39, więc Electrum, BlueWallet i Sparrow je przyjmą. Komplikacją jest ścieżka derywacji. MultiBit HD używał niestandardowej ścieżki, dlatego nowoczesny portfel korzystający z własnej ścieżki domyślnej generuje z tej samej frazy inne adresy i pokazuje zerowe saldo: nie dlatego, że fraza jest błędna, lecz dlatego, że portfel szuka w niewłaściwym miejscu. Inne przyczyny opisuje nasza strona o zerowym saldzie po przywróceniu.
Właściwa ścieżka derywacji dla MultiBit HD
MultiBit HD przechowywał konta pod m/0' i używał adresów legacy zaczynających się od 1; pierwszy adres odbiorczy znajduje się pod m/0'/0/0. Przywracanie w Electrum wygląda następująco:
- Należy utworzyć nowy portfel, wybrać „Standard wallet”, a następnie „I already have a seed” („Mam już ziarno”).
- Proszę wpisać słowa, kliknąć „Options” („Ustawienia”) i wybrać „BIP39 seed” („Ziarno BIP39”).
- Na ekranie „Script type and Derivation path” należy kliknąć „Detect Existing Accounts” („Wykryj istniejące konta”). Electrum sprawdza standardowe ścieżki oraz
m/0'. - Jeśli nic nie zostanie znalezione, należy wybrać „legacy (p2pkh)” i samodzielnie wpisać
m/0'jako ścieżkę derywacji. Electrum sam dodaje gałąź odbiorczą i gałąź reszty, więc należy wpisaćm/0', a niem/0'/0.
Pierwszy adres należy porównać z adresem, o którym wiadomo, że portfel go używał. Jedna grupa portfeli nadal nie pokaże niczego: portfele utworzone w wersji Beta 7 programu MultiBit HD, która zamieniała słowa na klucze w sposób niezgodny z BIP32. Ekran przywracania w samym MultiBit HD miał dla nich osobną opcję, a standardowe przywracanie BIP-39 nie odtworzy ich kluczy; w takim przypadku potrzebne jest narzędzie, które powtarza pierwotną konwersję MultiBit HD.
Zanim uznają Państwo frazę za błędną, proszę dokładnie sprawdzić każde słowo. Literówka albo słowo przepisane z niewłaściwego wiersza zwykle sprawia, że fraza nie przechodzi weryfikacji sumy kontrolnej, a jeśli mimo to ją przejdzie, otwiera inny, pusty portfel. Lista słów BIP-39 zawiera dokładnie 2048 słów, więc słowo, którego na niej nie ma, jest albo błędnie zapisane, albo pochodzi z innej listy.
Gdy fraza odzyskiwania jest niekompletna
Brakujące słowa to mniejszy problem, niż się wydaje. Każde brakujące słowo ma 2048 możliwych wartości, a w przypadku frazy z 12 słów wbudowana w BIP-39 suma kontrolna odrzuca około 15 z każdych 16 kombinacji kandydujących, zanim zostanie sprawdzony jakikolwiek adres. Pozostałe kombinacje sprawdza się względem adresu, o którym wiadomo, że portfel go używał. Crypto Recovers pracuje z frazami, w których brakuje do czterech słów; frazy utraconej całkowicie, bez pliku portfela ani innych materiałów, nie odzyska nikt. Artykuł Jak odzyskać brakujące słowa we frazie seed szczegółowo opisuje takie poszukiwania.
Odzyskiwanie usuniętego pliku portfela MultiBit
Usunięcie pliku nie kasuje od razu jego zawartości; zajmowane przez niego miejsce na dysku zostaje jedynie oznaczone jako dostępne do ponownego użycia. Jeśli od usunięcia na dysk niewiele zapisywano, dane mogą nadal tam być. Im intensywniej dysk jest potem używany, tym mniejsze są na to szanse.
Proszę od razu przestać korzystać z dysku. Każdy zapis grozi nadpisaniem sektorów, w których znajduje się plik portfela, a dysk systemowy, który pozostaje w użyciu, cały czas coś zapisuje.
Klonowanie dysku przed skanowaniem
Przed uruchomieniem jakiegokolwiek programu do odzyskiwania plików należy sklonować dysk na inny dysk lub do pliku obrazu i pracować na kopii. Zachowuje to dysk w obecnym stanie, a skanowanie można powtórzyć, jeśli coś pójdzie nie tak. W systemie Linux lub macOS do starszego sprzętu z podanych wyżej powodów nadaje się ddrescue, a jego podręcznik zaleca, by ratowanego dysku w ogóle nie montować, nawet w trybie tylko do odczytu. W systemie Windows należy użyć narzędzia do tworzenia obrazu dysku, które wykonuje pełną kopię sektor po sektorze.
Wyszukiwanie plików .wallet
Recuva (Windows) potrafi wyszukiwać usunięte pliki po nazwie: w trybie zaawansowanym należy wpisać *.wallet|*.wallet.aes w polu „Filename or path”. PhotoRec, bezpłatny program CGSecurity do odzyskiwania plików metodą file carvingu, działa inaczej. Pomija system plików i rozpoznaje pliki po zawartości, więc nazwa pliku nic mu nie daje. Jego lista rozpoznawanych formatów zawiera wprawdzie pozycję .wallet, ale chodzi w niej o portfel bitcoin programu Armory, nie MultiBit. Z kolei plik .wallet.aes jest w całości zaszyfrowany, więc nie ma nagłówka, po którym dałoby się go rozpoznać. Niezależnie od użytego narzędzia znalezione pliki należy zapisywać na innym dysku niż skanowany.
Jeśli skanowanie odnajdzie plik, przed jakimikolwiek dalszymi działaniami proszę sprawdzić jego rozmiar. Plik o wielkości zaledwie kilku bajtów jest niekompletny: sam pojedynczy klucz prywatny zajmuje 32 bajty, nie licząc reszty struktury portfela. Rozmiar warto porównać z inną kopią lub kopią zapasową, jeśli taka istnieje, a plik o sensownym rozmiarze spróbować otworzyć na kopii.
Jeśli plik jest uszkodzony lub częściowo nadpisany
Częściowo odzyskany plik .wallet może nie otworzyć się bez problemów. Niektóre uszkodzenia da się naprawić, zależnie od tego, który fragment pliku ucierpiał: w portfelach Classic obszar nagłówka ma większe znaczenie niż dane na końcu pliku. Potrzebne tu narzędzia wykraczają poza możliwości standardowego oprogramowania do odzyskiwania danych, a profesjonalni specjaliści od odzyskiwania danych będą prawdopodobnie skuteczniejsi niż kolejne próby na własną rękę. Co jeszcze da się odczytać z takiego pliku, wyjaśnia nasza strona o uszkodzonych plikach portfela.
Gdy powyższe kroki nie wystarczą
Jeśli znaleźli Państwo plik, ale powyższe kroki nie rozwiązały problemu (saldo się nie zgadza, odszyfrowanie się nie udaje, we frazie brakuje słów, ścieżka derywacji wciąż daje zero albo zachowały się tylko częściowe dane), Crypto Recovers oferuje bezpłatną wstępną ocenę. Pomagamy użytkownikom MultiBita od 2019 roku, na zasadzie „bez odzyskania, bez opłaty”.
Dla niektórych przypadków nie ma żadnej drogi, a lepiej wiedzieć o tym, zanim wyda się pieniądze. Zaszyfrowany plik Classic da się otworzyć wyłącznie jego hasłem. Całkowicie nadpisanego pliku zwykle nie da się odzyskać samym oprogramowaniem. A jeśli eksplorator pokazuje, że środki zostały już przeniesione, odzyskanie klucza ich nie przywróci.
Na żadnym etapie nie przechowujemy Państwa bitcoinów. Po odzyskaniu kluczy przenoszą Państwo środki (sweep) samodzielnie do nowego, utworzonego przez siebie portfela, a uzgodnione wynagrodzenie opłacają sami, osobną płatnością.
FAQ: stare pliki portfela MultiBit
Mój portfel MultiBit nie synchronizuje się. Czy moje saldo zniknęło?
Nie z powodu braku synchronizacji. Portfel, który nie może się zsynchronizować, pokazuje nieaktualne lub puste saldo, bo nie widzi sieci, a samo to nie przenosi żadnych monet. Aby w kilka sekund potwierdzić rzeczywiste saldo, proszę sprawdzić swój adres w eksploratorze bloków (wpisując adres, nigdy klucz).
Czy mogę użyć oryginalnego oprogramowania MultiBit do otwarcia pliku?
Technicznie jest to w niektórych przypadkach możliwe, ale niezalecane. Oryginalne oprogramowanie MultiBit nie jest już utrzymywane, dawna oficjalna strona go nie oferuje, a kopie znalezione w wynikach wyszukiwania mogą być zmodyfikowane tak, by kraść dane portfela. Wyodrębnienie kluczy za pomocą mbexport lub innego parsera Protocol Buffer albo użycie BTCRecover do odzyskania hasła jest bezpieczniejsze niż uruchamianie oryginalnej aplikacji.
Odzyskany plik się nie otwiera. Czy jest uszkodzony?
Być może, ale to nie znaczy, że jest bezużyteczny. Proszę zacząć od sprawdzenia rozmiaru pliku. Plik o wielkości zaledwie kilku bajtów jest na pewno niekompletny. Plik o normalnym rozmiarze, którego nie da się odczytać, może mieć uszkodzony nagłówek; czasem da się to naprawić, w zależności od tego, których bajtów dotyczy uszkodzenie. Całkowicie nadpisany plik to inny problem i zwykle nie da się go odzyskać samym oprogramowaniem.
Ile trwa potwierdzenie transakcji sweep?
W normalnych warunkach sieciowych transakcja Bitcoin z odpowiednią opłatą zostaje potwierdzona w ciągu jednego do trzech bloków, czyli mniej więcej w 10–30 minut. Jeśli ustawią Państwo niską opłatę, potwierdzenie może zająć godziny lub dni, a jeśli opłaty po wysłaniu znacząco wzrosną, może w ogóle nie nastąpić. Przed wysłaniem warto sprawdzić aktualne zalecane stawki opłat na mempool.space.
Plik portfela pochodzi z 2013 lub 2014 roku. Czy to wpływa na odzyskanie?
Format się nie zmienił, więc wiek pliku nie decyduje o tym, czy da się go odczytać. Wpływa natomiast na format adresu. Bardzo wczesne portfele MultiBit Classic używały skompresowanych i nieskompresowanych kluczy publicznych, które z tego samego klucza prywatnego dają różne adresy Bitcoin. Jeśli po zaimportowaniu klucza saldo wynosi zero, proszę porównać jego adres z dawnymi zapisami: mbexport wypisuje klucze w postaci skompresowanej, więc klucz, który portfel przechowywał jako nieskompresowany, pokazuje inny, nieużywany adres. Oba adresy należy sprawdzić, zanim uznają Państwo portfel za pusty.
