Kurs4640

 

Osobisty adres Bitcoin - Jak wygenerować?

 

adres-osobisty

 

Jak wiadomo adresy Bitcoin  generowane są losowo. Jak to więc możliwe, że są adresy zaczynające się od słów np. od imienia? Jak można zrobić taki adres?

 

Samo zagadnienie jest dość skomplikowane, ale rozwiązanie jest proste: trzeba użyć odpowiedniego generatora adresów. Ponieważ wszystkie portfele dają nam możliwość importowania kluczy prywatnych, wystarczy znaleźć klucz pasujący do żądanego adresu i zaimportować go do naszego  portfela.


Załóżmy, że chcemy podarować komuś o imieniu Anna pewną kwotę bitcoinów. Możemy to zrobić w elegancki sposób, generując adres zaczynający się na 1Anna i przelać na niego odpowiednią kwotę a później wręczyć jej klucz prywatny np. na papierze.

 

Dlaczego "1" musi na początku? Otóż wszystkie adresy są tworzone na podstawie konkretnych algorytmów i muszą spełniać pewne warunki. Jednym z podstawowych jest cyfra "1" na początku jako identyfikacja, że jest to adres sieci Bitcoin.

 

Trzeba też dodać, że to co widzimy jako adres, jest przedstawieniem "numeru konta" w formacie Base58. Z liter których możemy użyć wykluczone są:

  • 0 (zero),
  • O (wielkie o),
  • I (wielkie i) ,
  • l (małe L).

 

Aby wygenerować pożądany adres należy użyć programu : Vanitygen. Wersję skompilowaną gotową do użytku znajdziemy na githubie. Możemy też samodzielnie skompilować program ze źródła.

 

Dla potrzeb tego poradnika założymy, że jesteś użytkownikiem Windows i nie masz pojęcia o kompilowaniu. Komendy są takie same jak pod Linuxem, jedyna różnica to standardowe  ./ z przodu i bez .exe w konsoli w przypadku systemów linuxowych.

 

 


 

Pobieramy i rozpakowujemy paczkę, najlepiej bezpośrednio na dysk C:\ lub inny jeśli mamy - unikniemy w ten sposób wpisywania długiej nazwy ścieżki.
Uruchamiamy konsolę cmd, najprościej kombinacją klawiszy WinKey + r, (klawisz windows + r) a następnie wpisując cmd i wciskając Enter.   Przechodzimy do katalogu w którym rozpakowaliśmy program poleceniem cd [ścieżka do vanitygey] np. cd C:\vanitygen-0.22-win. Następnie wpisujemy polecenie dir

 

image

 
Mamy do dyspozycji kilka programów, interesują nas oclvanitygen, vanitygen i vanitygen64.  W zależności od tego, czy do generowania chcemy użyć procesora czy karty graficznej będziemy używać innego programu. 


Na początek spróbujemy wygenerować adres procesorem czyli CPU. Wywołanie vanitygen.exe bez żadnych parametrów pokaże nam ekran pomocy ze wszystkimi poleceniami:
 

image2 


Wpisujemy więc vanitygen.exe 1Anna i rozpoczyna się generowanie:

 

image3
 
Jak widać, początek jest na tyle krótki że zajmie to raptem kilka sekund. Mamy 50% szans na znalezienie takiego adresu w ciągu 5 sekund.

Po chwili otrzymujemy wynik:

 

image4 
Jeżeli nie odpowiada nam, że po Anna jest V (w waszym przypadku prawdopodobnie będzie to coś innego), próbujemy coś bardziej eleganckiego: 1Anna1

 

image5
 
Jak widać, dodanie tylko jednej literki zwiększa czas potrzebny na wygenerowanie adresu ponad 60x. Pod Windows 64bit możemy użyć wersji 64 bitowej która powinna być szybsza. 

 

image6
 
Jak widać, ponad 2x szybciej. Jeśli chcemy jeszcze szybciej spróbujmy użyć wersji z biblioteką OpenCL (oclvanitygen.exe) - czyli do generowania zaprzęgniemy kartę graficzną (najwydajniejsze będę karty ATI). 

 

image7
 
W tym przypadku program wykrywa 3 urządzenia których może użyć: dwie karty graficzne i procesor. Program podpowiada, że opcja -D 0:0 spowoduje użycie karty graficznej (platforma 0 urządzenie 0). W waszym przypadku mogą to być inne wartości. 

 

imagea 
Zdecydowana poprawa wydajności! Rząd wielkości z Kkeys/s (tysięcy kluczy na sekundę) wzrósł do MKeys/s (milionów kluczy na sekundę). W zależności od posiadanej karty graficznej czy procesora, prędkości generowania adresów mogą być rożne, jednak przeważnie lepsze efekty uzyskamy na kartach graficznych pod warunkiem, że są to karty ze średniej lub wyższej półki, najlepiej ATI.

 

Jeżeli pojawiają nam się komunikaty tego typu:

 

imageb
 
Oznacza to, że karta graficzna generuje niepoprawne hasze. Musimy wtedy dodatkowo użyć przełącznika -S który ma spory wpływ na wydajność (zmniejszenie o około 50%-60%), ale zapewnia poprawne generowanie. 


Możemy też wygenerować kilka adresów z tym samym początkiem, służy do tego przełącznik -k. Dzięki temu możemy wygenerować dowolną ilość adresów z tym samym początkiem. Na przykład 1Bit. Tak krótki początek wysypuje nam natychmiast kilka adresów nawet na cpu 

 

imagec
 
Możemy też szybko dowiedzieć się, jak trudne jest wygenerowanie adresu zaczynającego się od większej liczny znaków. Zaczynamy generować słowa dłuższe o 1 znak:

 

imaged
 
Spróbujmy uzyskać dostęp do środków z dotacji portalu... 

 

imagee
 
Cały adres nie jest przyjmowany przez program, zmniejszenie o kilka znaków dało nam przewidywany czas 3`000`000`000`000`000`000`000`000`000`000 lat (3*10^30), Ii nadal będziemy mieli 7 znaków za mało. Włamanie na czyjś adres możemy sobie odpuścić, nawet gdybyśmy użyli mocy wszystkich komputerów na świecie przekroczymy biliony razy szacowaną długość życia naszego słońca a co za tym idzie Ziemi.

 

Co jeżeli chcemy wygenerować sobie adres dla jakiegoś altcona - czyli innej kryptowaluty opartej na bitcoinie? Ponieważ wszystkie monety są zasadniczo klonami Bitcoina to sposób generowania adresów jest taki sam. Do wyboru przedrostka służy przełącznik -X po którym musimy podać liczbę odpowiadającą początkowi adresu danej monety. Najprościej będzie założyć portfel i wygenerować w nim kilka adresów danej waluty oraz sprawdzić jaki mają początek (mogą to być dwa znaki lub więcej).

 

Jak widać w warunkach domowych bezproblemowo możemy więc wygenerować adres do 6 znaków (po "1"), na karcie 7970 zajmie to około 8 godzin. Dodanie kolejnego znaku to już 3 tygodnie. Krótsze adresy możemy generować w dowolnych ilościach.


Podczas całego procesu należy się upewnić, że robimy to wszystko na "bezpiecznym" komputerze (najlepiej offline, z programem antywirusowym) a klucz prywatny zapisujemy na dysku tylko w formie zaszyfrowanej  lub na papierze. 

 

 

Wszelkie kopiowanie, dystrybucja, elektroniczne przetwarzanie oraz przesyłanie zawartości ze stron bitcoin.pl wymaga uprzedniej zgody portalu.