Blog
Odzyskiwanie portfela Mist: keystore Ethereum i hasło
W skrócie
Do odzyskania konta z portfela Mist nie trzeba uruchamiać Mista: konta te nie mają frazy odzyskiwania, więc punktem wyjścia jest zaszyfrowany plik keystore z hasłem albo wcześniej wyeksportowany klucz prywatny. Plików UTC-- warto szukać w starym katalogu keystore Ethereum i zabezpieczyć ich kopie przed testami. ETH z kontraktów portfela utworzonych w Mist nie pojawią się automatycznie po imporcie klucza właściciela.
Jeśli hasło zostało zapomniane lub jest odrzucane, zachowany keystore i zapamiętane szczegóły mogą pozwolić na ukierunkowane poszukiwania. Ich wykonalność zależy od haseł do przetestowania i parametrów szyfrowania pliku. Adres publiczny pozwala sprawdzić saldo, ale nie zastępuje klucza ani pliku keystore.

Pozostał stary komputer, folder z kopią zapasową albo mgliste wspomnienie używania lata temu oficjalnego portfela Ethereum. Gdzieś tam jest ETH, do którego nie mają już Państwo dostępu. Mist został wycofany w 2019 roku, oprogramowanie dziś ledwo działa, a hasło można w najlepszym razie zgadywać. Przed instalowaniem czegokolwiek i przed zgadywaniem warto poświęcić dwie minuty na zrozumienie, czego naprawdę wymaga odzyskanie dostępu do starego portfela Ethereum.
Mist nie jest potrzebny, aby odzyskać portfel Mist
To błędne przekonanie kosztuje sporo czasu. Ludzie szukają starych instalatorów, całymi dniami walczą z błędami synchronizacji, a gdy aplikacja się zawiesza, dochodzą do wniosku, że ich ETH przepadło. Nic z tego nie jest konieczne.
Mist był tylko oknem na blockchain. ETH nigdy się w nim nie znajdowało. To, co Mist przechowywał na Państwa komputerze, to plik keystore: mały zaszyfrowany plik zawierający klucz prywatny, czyli sekret, który daje kontrolę nad adresem. Ten plik wraz z hasłem otwiera portfel w nowoczesnym portfelu Ethereum, który obsługuje import plików keystore. To, że program już nie działa, nie ma znaczenia. ETH nadal jest na blockchainie, nietknięte. Odbudować trzeba tylko drogę dostępu.
Najpierw jedno ostrzeżenie. Jeśli pliki Mista znajdują się na starym dysku, należy przestać go używać. Zanim zrobi się cokolwiek innego, trzeba skopiować wszystko na dwa osobne nośniki. Stare dyski się psują, a uszkodzony dysk może sprawić, że sprawa, którą dało się rozwiązać, stanie się nierozwiązywalna.
Gdzie znajduje się plik keystore
Plik znajduje się w folderze danych Ethereum, a nie we własnym folderze Mista:
- Windows:
%APPDATA%\Ethereum\keystore - macOS:
~/Library/Ethereum/keystore - Linux:
~/.ethereum/keystore
Standardowa nazwa pliku keystore zaczyna się od UTC--, po czym następują znacznik czasu i adres, na przykład UTC--2017-06-08T08-33-59.135699700Z--d728e1873ed53618c467ce06b6f20163eb39eaf5. Plik o zmienionej nazwie lub skopiowany może wyglądać inaczej, dlatego warto sprawdzić też małe pliki .json. Standardowy wzorzec pomaga na dwa sposoby:
- Można przeszukać cały dysk pod kątem „UTC--”. Ludzie znajdują pliki keystore w załącznikach e-maili, na pendrive’ach i w kopiach w chmurze, do których od lat nie zaglądali.
- Jeśli plik został usunięty, narzędzia takie jak PhotoRec czy Recuva często potrafią go odnaleźć na dysku, który od tamtej pory był mało używany. Należy pracować wyłącznie na kopii dysku.
W tej standardowej nazwie pliku część po drugim podwójnym myślniku to adres Ethereum. Prosimy sprawdzić go najpierw w serwisie etherscan.io. Dzięki temu wiadomo, czy w portfelu jest coś, co warto odzyskiwać, i to bez dotykania hasła.
Dwa pliki, na które można przy okazji trafić, nie są plikami keystore Mista. Pojedynczy plik ethereum_wallet_backup.json z 2014 roku to portfel presale, czyli inny format z własną procedurą odzyskiwania. Z kolei fraza z 12 lub 24 słów należy do jakiegoś innego portfela, co prowadzi nas do następnego punktu.
Konta Mist nie mają frazy odzyskiwania
Poszukiwanie frazy odzyskiwania w notatkach można przerwać. Konta Mist nie miały kopii zapasowej w postaci frazy odzyskiwania. Standard 12 lub 24 słów, który przyjęły później portfele Ethereum (zwany BIP-39), nigdy nie był częścią formatu kont Mist. W przypadku konta Mist plik keystore i jego hasło stanowią kompletną kopię zapasową; nigdy nie było niczego innego do zapisania.
To działa w obie strony. Żadna fraza nie zaginęła, bo żadna nie istniała. Oznacza to jednak również, że wszystko zależy od pliku keystore: bez niego lub bez kopii niezaszyfrowanego klucza prywatnego żadna wiedza o haśle nie pomoże.
To, co pozostało, określa, co jest możliwe
Plik jest, a hasło pozostało w pamięci
Najlepsza sytuacja. Odzyskanie zajmuje kilka minut.
- Plik keystore należy zaimportować do nowoczesnego portfela. Rozszerzenie przeglądarkowe MetaMask przyjmuje plik keystore JSON wraz z jego hasłem (aplikacja mobilna – nie), jak opisuje przewodnik MetaMask dotyczący importu; Enkrypt obsługuje import klucza prywatnego Ethereum.
- Nigdy nie należy wgrywać pliku keystore na stronę internetową ani wklejać na żadnej stronie klucza prywatnego. Keystore na stronie internetowej to keystore w cudzych rękach.
- Po odzyskaniu dostępu należy wykonać sweep, czyli przenieść całe saldo do świeżo utworzonego portfela, zamiast dalej używać klucza, który latami leżał na starym sprzęcie. Tokeny ERC-20 pod tym adresem kontroluje ten sam klucz, więc można je również przenieść — każdy osobną transakcją. W MetaMask plik keystore staje się zaimportowanym kontem, które nie jest objęte własną tajną frazą odzyskiwania MetaMask.
Jeśli droga prowadzi przez MyEtherWallet, a problemy sprawia sama aplikacja, ten scenariusz omawia nasz przewodnik po odzyskiwaniu MEW.
Zapamiętane hasło zostaje odrzucone
Dwie przyczyny wyglądają tu identycznie, a rozróżnienie ma znaczenie.
Przyczyna 1: hasło jest bliskie właściwemu, ale nie identyczne. Stara wielka litera, dopisany rok, zamiana znaku porzucona z czasem. Przed testowaniem przypuszczeń prosimy zapisać wszystko, co pozostało w pamięci o haśle: jego prawdopodobną długość, słowa lub daty, z których wtedy tworzono hasła. Te wspomnienia to surowiec. Format keystore jest celowo powolny w sprawdzaniu: w zależności od maszyny i ustawień pliku pojedyncza próba może zająć około sekundy na zwykłym komputerze i właśnie dlatego metoda wygrywa z ręcznym zgadywaniem. Narzędzia takie jak BTCRecover oraz oprogramowanie GPU, które systematycznie testuje duże zbiory kandydatów, zamieniają dobrą pamięć struktury hasła w listę do przeszukania. Poszukiwania w zawężonym zakresie są często wykonalne. Nieograniczone – nie, niezależnie od tego, co ktoś obiecuje. Jak przygotowuje się takie poszukiwania, wyjaśnia nasz przewodnik po odzyskiwaniu hasła do pliku keystore.
Przyczyna 2: błąd Mista. Niektóre wersje Mista źle obsługiwały hasła ze znakami diakrytycznymi lub innymi niestandardowymi znakami: hasło zapisane w pliku nie było tym, które zostało wpisane. Jeśli samo hasło nie budzi wątpliwości, a mimo to jest odrzucane i zawierało takie znaki, należy najpierw wykluczyć ten błąd, a dopiero potem podawać w wątpliwość własną pamięć. Rozwiązaniem jest testowanie wariantów kodowania poprawnego hasła, a nie zgadywanie nowych. To zadanie dla specjalistów, ale jeden z przypadków, w których szanse na odzyskanie są większe, bo samo hasło jest znane.
Jedna uwaga o bezpieczeństwie przy korzystaniu z pomocy specjalistów: nic nie omija szyfrowania, a poszukiwania nadal wyznaczają zaszyfrowane dane i strategia doboru kandydatów. Tam jednak, gdzie jest to technicznie możliwe, pracujemy na hashu hasła wyodrębnionym z pliku, zamiast prosić o samo hasło, dzięki czemu próby odzyskania przebiegają bez tego, by ktokolwiek widział, co naprawdę jest wpisywane.
Portfel otwiera się, ale pokazuje 0 ETH
Najpierw należy sprawdzić adres w etherscan.io. O saldzie rozstrzyga blockchain, a nie jakakolwiek aplikacja.
Jeśli Etherscan również pokazuje zero, a obecność ETH nie budzi wątpliwości, warto sprawdzić pułapkę typową dla Mista: kontrakty portfeli. Mist pozwalał tworzyć obok zwykłych kont „portfele kontraktowe” i wiele osób je zasilało. ETH znajduje się wtedy pod własnym adresem kontraktu, innym niż adres konta w pliku keystore. Import klucza do MetaMask pokazuje konto, a nie kontrakt, więc saldo wynosi zero, choć w rzeczywistości nic nie zniknęło.
- Warto przejrzeć starą historię transakcji w Etherscan pod kątem utworzenia kontraktu.
- Następnie należy ustalić adres tego kontraktu i sprawdzić jego saldo.
- Aby wypłacić ETH, trzeba wywołać własną funkcję wypłaty kontraktu i podpisać to wywołanie kontem keystore jako właścicielem. Sposób działania zależy od kodu i zasad własności konkretnego kontraktu. W przypadku standardowego kontraktu portfela tworzonego przez Mista często jest to nadal wykonalne; to bardziej złożone niż zwykła transakcja i przypadek wart oceny przed samodzielną próbą.
Brak pliku keystore i klucza prywatnego
Tu uczciwość liczy się bardziej niż nadzieja. Najpierw warto przeszukać stare dyski, pendrive’y, skrzynki e-mail, kopie w chmurze i wydruki. Dzięki nazwie pliku z UTC-- wiadomo, czego dokładnie szukać, a próba odzyskania usuniętych plików z oryginalnego dysku jest warta zachodu, jeśli dysk nadal istnieje.
Jeśli jednak nigdzie nie zachowała się żadna kopia pliku ani niezaszyfrowanego klucza, nie ma drogi do odzyskania dostępu. Klucza nie da się odtworzyć z adresu i żadna usługa tego nie zmieni: matematyka, która chroni ETH przed wszystkimi innymi, chroni je także przed Państwem. Wolimy powiedzieć to wprost, niż pozwolić Państwu spędzić miesiące na czymś, co nie może się udać. Każdy, kto w tym scenariuszu obiecuje coś innego, opisuje coś, co nie istnieje. To samo dotyczy każdego, kto twierdzi, że potrafi odwrócić lub przekierować transakcje blockchainowe.
Nie należy ufać „pobraniom Mista” ani internetowym weryfikatorom
Nie ma dziś żadnego uzasadnionego powodu, by uruchamiać Mista, za to są wszelkie powody, by tego nie robić: porzucone oprogramowanie ze znanymi lukami bezpieczeństwa oraz wyniki wyszukiwania dla „pobierz portfel Mist”, które prowadzą do łudząco podobnych stron, stworzonych po to, by kraść pliki keystore i hasła. To samo dotyczy narzędzi internetowych, które proszą o wgranie pliku lub wpisanie klucza. Adres jest publiczny. Plik keystore i hasło – nigdy. Salda należy sprawdzać w etherscan.io wyłącznie na podstawie adresu.
Po odzyskaniu dostępu i przeniesieniu środków do nowego, samodzielnie utworzonego portfela frazę odzyskiwania tego portfela należy traktować staranniej, niż Mist traktował plik keystore: zapisać ją na papierze lub metalu, przechowywać w dwóch miejscach, nigdy jej nie fotografować i nigdy nie wpisywać na żadnej stronie internetowej.
Kiedy oddać sprawę profesjonalistom
Jeśli Państwa sytuacja dotyczy odrzuconego hasła, błędu kodowania, uszkodzonego dysku albo kontraktu portfela, do którego nie da się dostać, warto zacząć od bezpłatnej oceny: uczciwej odpowiedzi na pytanie, czy odzyskanie jest wykonalne, zanim dojdzie do jakiegokolwiek zobowiązania. Praca zaczyna się dopiero po podpisaniu umowy. Odbywa się na maszynach odciętych od sieci (air-gapped) na zasadzie bez odzyskania, bez opłaty, a ponieważ nigdy nie dotykamy tego ETH i nie mamy do niego dostępu, przenoszą je Państwo samodzielnie po odblokowaniu pliku keystore. Od 2019 roku odzyskaliśmy dostęp do ponad 200 portfeli.
Środki trafiają przy tym do nowego portfela utworzonego przez Państwa, a uzgodnione wynagrodzenie płaci się osobno, zgodnie z umową. ETH w żadnym momencie nie przechodzi przez nasze ręce.
FAQ dotyczące odzyskiwania portfela Mist
Gdzie znajduje się plik kopii zapasowej portfela Mist?
Plik kopii zapasowej portfela Mist znajduje się w folderze keystore Ethereum, a nie w folderze aplikacji Mist. Nazwa pliku zaczyna się od UTC--, po czym następują znacznik czasu i adres portfela.
Czy portfel Mist ma frazę odzyskiwania?
Nie. Portfel Mist pojawił się, zanim frazy odzyskiwania stały się standardem w portfelach Ethereum. Zaszyfrowany plik keystore i jego hasło stanowią kompletną kopię zapasową portfela, więc nie istnieje żadna 12- ani 24-wyrazowa fraza odzyskiwania.
Czy mogę odzyskać portfel Mist, używając tylko publicznego adresu?
Nie. Publiczny adres Ethereum pozwala jedynie zobaczyć saldo portfela i historię transakcji. Aby odzyskać dostęp, potrzebny jest plik keystore lub klucz prywatny.
Czy mogę odzyskać portfel Mist, jeśli folder keystore został usunięty?
To możliwe. Jeśli plik keystore zachował się także gdzie indziej – w kopii zapasowej, na pendrivie lub innym urządzeniu – portfel nadal można przywrócić. Jeśli plik został usunięty, należy natychmiast przestać używać dysku i spróbować odzyskać plik, zanim nowe dane go nadpiszą.
Czy muszę pobrać blockchain Ethereum, aby odzyskać portfel Mist?
Nie. Nowoczesne portfele Ethereum mogą zaimportować plik keystore lub klucz prywatny bez pobierania całego blockchainu, dzięki czemu dostęp do portfela można uzyskać znacznie szybciej.
Dlaczego mój zaimportowany portfel Mist pokazuje 0 ETH?
Zerowe saldo nie zawsze oznacza, że środki zniknęły. Najpierw należy sprawdzić adres portfela w eksploratorze bloków. Jeśli ETH znajduje się w kontrakcie portfela, uzyskanie do niego dostępu może wymagać dodatkowych kroków.
Czy mogę odzyskać portfel Mist bez hasła?
To możliwe: poszukiwanie hasła prowadzi się na zaszyfrowanym pliku keystore, a wszystko, co pozostało w pamięci o haśle (jego długość, słowa lub daty, na których się opierało), zawęża te poszukiwania. Dopiero pełna ocena pliku i zapamiętanych szczegółów pozwala nam powiedzieć, czy jest to realne. Bez żadnych informacji o haśle odzyskanie zwykle nie jest możliwe.
