W ostatnich dniach wypłynęły dość niepochlebne informacje na temat procesorów produkowanych przez Intel i AMD. Błędy na poziomie architektury CPU mogą skutkować wyciekiem informacji. Sposobem na zabezpieczenie się jest albo instalacja łatki spowalniającej działanie systemu albo zakup nowego sprzętu. Dla użytkowników kryptowalut może to oznaczać, że klucze prywatne przechowywane na ich komputerach (podłączonych do Internetu) nie są w pełni bezpieczne. W tym artykule podaję metody przechowywania kryptowalut i portfele, które zapewnią nam stuprocentową pewność, że klucze prywatne nie wyciekną. Zapraszam do lektury.
Portfele sprzętowe
Jednym ze sposobów, który zapewni nam bezpieczne przechowywanie kryptowalut jest korzystanie z portfela sprzętowego. Są to urządzenia, które przechowują nasze klucze prywatne i to na nich wykonywane są podpisy cyfrowe. Oznacza to, że nigdy nie opuszczają one urządzenia i nie ma możliwości, by dostały się do sieci. Zabezpieczone są również za pomocą kodu PIN i dodatkowych haseł. Można je wykorzystywać w połączeniu z portfelami mobilnymi ( jak Mycelium ) do potwierdzenia transakcji. W przypadku jeśli zgubimy urządzenie, możemy odzyskać dostęp poprzez wcześniej zapisany kod mnemoniczny („mnemonic seed”).
Jest to bardzo wygodny sposób przechowywania kryptowalut. Popularnymi portfelami są obecnie Trezor marki SatoshiLabs, Nano S produkowany przez LedgerWallet i KeepKey ( zainteresowanych zachęcam do przeczytania przygotowanego przeze mnie porównania ). Różnią się one ilością obsługiwanych walut, zastosowanymi rozwiązaniami i wykonaniem. Jedyną wadą portfeli sprzętowych jest koszt. Takie urządzenia to wydatek rzędu kilkuset złotych.
Portfele papierowe
Są one zdecydowanie najbezpieczniejszym sposób przechowywania kryptowalut. Portfelem jest zwyczajna kartka papieru z nadrukowanym adresem i kluczem prywatnym. Na nasz adres przesyłamy środki i w momencie kiedy chcemy je użyć musimy zaimportować klucz prywatny do portfela z dostępem do sieci. Nasze środki są w pełni, ponieważ klucz prywatny nie jest zapisany na komputerze podpiętym do sieci i nie ma jak wyciec. Wadą takiego rozwiązania jest niestety mała mobilność środków.
Do utworzenia takiego portfela można użyć różnych losowych generatorów. Zalecam ściągnięcie strony na dysk i wygenerowanie klucza w trybie offline.
Cold storage
Oba rozwiązania gwarantują nam bezpieczeństwo przechowywania środków. Co jednak jeśli nie chcemy wydawać pieniędzy na portfel sprzętowy, a zależy nam na nieco większej wygodzie niż w przypadku portfela papierowego? Rozwiązaniem tego dylematu jest „Cold Storage”. Korzystamy w takim wypadku z tego samego portfela na dwóch komputerach. Na sprzęcie podpiętym do sieci tworzymy transakcję i wpuszczamy ją do sieci. Drugie urządzenie, które nie ma dostępu do internetu, wykorzystujemy do przechowywania klucza prywatnego i wykonywania podpisu. Używając analogii, na komputerze online wypisujemy czek i go nadajemy, a na komputerze offline go podpisujemy. W ten sposób możemy wykorzystać stary komputer, który już od dawna się kurzy i nie płacić za portfel sprzętowy. Zademonstruję jak stworzyć taki portfel i wysyłać środki korzystając z Electrum. Potrzebne nam do tego będą dwa komputery i pendrive. Pamiętajcie, by używać Electrum w wersji conajmniej 3.0.4.
Założenie portfela offline
Otwieramy Electrum na komputerze nie podpiętym do sieci i tworzymy nowy portfel (dla przykładu nazwałem go OFFLINE WALLET).
Wybieramy rodzaj portfela i klikamy „Next.” W naszym przypadku wystarczy „Standard Wallet”.
Upewnijcie się, że macie zaznaczoną opcję „Create a new seed” zanim przejdziecie do kolejnego kroku. Jeśli tak, klikamy „Next”. W następnym oknie zalecam wybranie opcji “legacy”. Nie wszystkie portfele obsługują typ adresów SegWit “bech32”, co może powodować błędy przy przesyłaniu środków.
Program wygeneruje dla was kod mnemoniczny („mnemonic seed”) składający się z 12 losowych słów. Zapiszcie go w i przechowujcie w bezpiecznym miejscu! Będzie niezbędny do ewentualnego odzyskania dostępu do portfela. Po zapisaniu wszystkich słów klikamy „Next”.
W następnym kroku musicie przepisać seed. Po kliknięciu „Next” nasz portfel offline jest gotowy. Potrzebujemy teraz uzyskać dostęp do głównego klucza publicznego („master public key”), by móc utworzyć portfel online. W tym celu wybieramy z menu „Wallet” i klikamy „Master Public Keys”.
Kopiujemy klucz publiczny i przechodzimy do utworzenia portfela online.
Założenie portfela online
Na komputerze podpiętym do Internetu zakładamy nowy portfel. Z uwagi na fakt, że tworzymy go w oparciu klucz publiczny jest to portfel typu „watch-only”. Oznacza to, że nie przechowuje on klucza prywatnego i nie ma możliwości tworzenia podpisów cyfrowych. W skrócie, nie można za jego pomocą wysyłać środków.
Portfel tworzy się podobnie jak poprzednio. Tym razem nazywiemy go np. ONLINE WALLET. Jedyną różnicą jest fakt, że zamiast opcji „Create a new seed” wybieramy „Use public or private keys”. Po wykonaniu tej czynności klikamy „Next” i w następnym oknie wpisujemy wcześniej skopiowany klucz publiczny i zatwierdzamy.
Portfel informuje nas właśnie o tym, że utworzyliśmy portfel „watch-only”. Będzie on nam potrzebny, by utworzyć transakcję i później wpuścić ją do sieci. Żeby móc to zrobić, musimy najpierw tą transakcję podpisać na portfelu offline.
Tworzenie transakcji
Na portfelu online przechodzimy do zakładki „Send”, wypełniamy transakcję i klikamy „Preview”.
Pojawi się nam okienko z detalami transakcji, takimi jak opłata transakcyjna, ilość wysyłanych BTC czy adres odbiorcy.
Klikamy w przycisk „Save” i zapisujemy plik na pendrive.
Podpis transakcji
W tym momencie musimy wykonać podpis cyfrowy, by nasza transakcja mogła zostać przyjęta przez sieć. W tym celu przechodzimy do portfela offline z menu „Tools” wybieramy „Load transaction”. Używamy opcji „From file” i wybieram plik, który zapisaliśmy na pendrive.
Żeby wykonać podpis klikamy „Sign”. Jeśli zabezpieczyłeś portfel hasłem, możesz zostać poproszony o jego podanie. Po wykonaniu tej czynności transakcja jest gotowa do wpuszczenia do sieci. Klikamy więc „Save” i zapisujemy ponowie na pendrive.
Nadanie transakcji
Do wykonania tej czynności musimy skorzystać ponownie z portfela online. Z menu „Tools” wybieramy „Load transaction” i „From file”.
Pojawi się nam znane już dobrze okno. Po sprawdzeniu wszystkich danych transakcji klikamy „Broadcast”. Transakcja zostanie przesłana do kolejnych węzłów sieci i w końcu przechwycona przez górnika.
Podsumowanie
Wydawać się może, że taki sposób przechowywania i wysyłania środków jest żmudny. W cieniu ostatnich wydarzeń związanych z procesorami Intel i AMD jest to jeden z niewielu w pełni bezpiecznych przechowywania BTC. Radzę traktować taki portfel jak sejf, do większych ilości BTC. „Cold storage” stanowi więc dobry kompromis pomiędzy portfelami sprzętowymi i paper waletami.
PS. Co jeśli posiadam inne kryptowaluty?
Podobnie można postąpić w przypadku kilku innych kryptowalut. Dash i Litecoin są tutaj dobrym przykładem. LTC powstał na podstawie Bitcoina, a Dash bazuje Litecoina. Dla tych kryptowalut również istnieją portfele Electrum (Electrum-DASH i Electrum-LTC) i również można je wykorzystać do „Cold storage”.
Dla posiadaczy kryptowalu Ethereum, Ethereum Classic, Expanse i Ubiq polecam MyEtherWallet, portfel do którego logujemy się przez przeglądarkę. Osobiście odradzam portfele online tak jak blockchain.info dla BTC, ale MEW jest pod jednym względem wyjątkowy. Korzystając MyEtherWallet to użytkownik jest w posiadaniu klucza prywatnego. Logujemy się poprzez bezpośrednie wpisanie klucza, bądź załadowanie pliku Keystore. Zapisując plik na szyfrowanym pendrive jesteśmy więc kompletnie bezpieczni. W przypadku klucza prywatnego musimy zapisać go na kartce. Pamiętajcie o backupie. Ponadto, plik Keystore można później zaimportować do Mist, natywnego portfela Ethereum. Pamiętajcie, że MyEtherWallet służy również do przechowywania tokenów ERC20, czyli takich krypto jak Golem, EOS czy OmiseGO.
Bez kategorii, Bitcoin, Blockchain, Dash, Ethereum, Expanse, Golem, Kryptowaluty, Litecoin, News, Przypięty post