za
Bitcoin-Safe-2

Bitcoin – jest bezpiecznie

2014-11-20
Techniczne

 

Jednym z walorów Bitcoina, podkreślanych przez jego znawców, jest bezpieczeństwo. Dlaczego tak jest i co daje ekspertom tej technologii podstawy tak sądzić? Przekonajmy się sami.

 

 

Na początek trochę matematyki.

 

Klucz prywatny który daje nam dostęp do środków zgromadzonych w określonym adresie składa się z 256 bitów czyli 32 bajtów.

 

Klucz publiczny, wyliczany z prywatnego to już 520 bitów (65 bajtów).

 

Adres który jest skrótem klucza publicznego to 200 bitów (25 bajtów) z czego 5 bajtów to suma kontrolna.

 

Daje nam to dostępną przestrzeń 160 bitów adresów, czyli 2160 miejsc w których można przechowywać bitcoiny.

 

Chcąc zobrazować tę liczbę, będzie to:

 

 1 461 501 637 330 902 918 203 684 832 716 283 019 655 932 542 976 

 

Korzystając z innego sposóbu zapisu, w przybliżeniu 1,46 * 1048   

 

Jak duża jest to liczba? Kiedy skończą się dostępne adresy? 

 

Zakładając: 

  • 10 miliardów ludzi, z których każdy używa Bitcoina (10 * 109
  • każdy z nich wykonuje 1000 transakcji dziennie, za każdym razem generując nowy adres (103

 

 Liczymy: 1,46 * 1048 / (10 * 109 * 103) = 1,46 * 1035 dni. 

 

Daje nam to w przeliczeniu, około… 14 miliardów lat. To 2-3x dłużej niż będzie świecić nasze słońce. Tą kwestią zatem nie musimy się przejmować.

 

Technologia

 

Załóżmy, że ktoś chciałby generować kolejne klucze, sprawdzając czy któryś z nich zawiera jakieś bitcoiny. Czy jest to wykonalne?

 

Na chwilę obecną nie istnieją dedykowane urządzenia ASIC do generowania adresów. Dlatego na początek spróbujmy wygenerować wszystkie adresy za pomocą kart graficznych.

 

Stosowany obecnie w programie vanitygen algorytm, pozwala na generowanie około 20 milionów adresów na sekundę na karcie klasy Radeon 7970. Przy pełnym obciążeniu karta pobiera około 200W energii.

 

Dajmy sobie 10 lat na wygenerowanie wszystkich adresów. Ile energii rocznie musielibyśmy zużyć, aby to osiągnąć?

 

Policzmy ile kart graficznych będziemy potrzebować do tego zadania: 

 

 1,46 * 1048 / (20 * 106 * 60 * 60 * 24 * 365 * 10) = 2,314 * 1032 kart. 

 

Wszystkie one zużywałyby 4 * 1035 kWh rocznie. W ciągu 10 lat byłoby to około 15% energii wyzwalanej podczas wybuchu supernowej. Takiej ilości energii ani też technologii jeszcze długo nie będziemy w stanie wytworzyć.

 

supernova

 

Załóżmy jednak, że ktoś podjąłby się zadania i stworzył układy ASIC zdolne do wykonywania tego zadania.

 

Układy ASIC które zastąpiły GPU w kopaniu Bitcoin mają obecnie wydajność nieco poniżej 1 W/1 Gh/s (1 Watt energii potrzebny do wykonania miliona obliczeń). Dajmy im znacznego kopa i zwiększmy ich wydajność 1000x czyli 1W będzie w stanie wygenerować 1 miliard adresów.

 

Ile energii będziemy potrzebowali żeby policzyć wszystkie adresy przy takim założeniu?

 

 1,46 * 1048 / 109 = 1,46 * 1039

 

Czyli 0.4 energii typowego kwazara. Nadal kosmos.

 

kwazar

 

Powierzchnia dyskowa

 

Samo liczenie to jednak nie wszystko, trzeba jeszcze gdzieś te dane przechowywać.

 

Każdy klucz prywatny to 256 bitów. Przestrzeń dyskowa, którą zajmowałyby wszystkie możliwe do wygenerowania klucze wynosiłaby 4,672 × 1049 bajtów. 1TB to 1012 bajtów, czyli potrzebowalibyśmy:

 

  46`720`000`000`000`000`000`000`000`000`000`000`000 (4,672 * 1037) przeciętnego rozmiaru dysków. 

 

Ważyłyby one ponad 230 000 razy więcej niż wynosi masa słońca (zakładając 100g masy każdego dysku).

 

slonce

 

Spróbujmy użyć jakiejś nowszej technologii niż magnetyczna. Obecne prace nad pamięcią holograficzną dają gęstość zapisu około 1 bita na 1 mikrometr3. Jaka byłaby wielkość takiej pamięci?

 

 1,46 * 1048 * 8µm3 czyli 1,168 * 1034 km

 

Byłaby to kula o promieniu równym odległości Ziemi od Słońca. Minie jeszcze sporo czasu, zanim będziemy w stanie zapisywać takie ilości informacji.

 

Prawdopodobieństwo

 

Podejdźmy do zagadnienia z innej strony. Jak wiadomo każdy sposób generowania liczb losowych teoretycznie daje możliwość wygenerowania ponownie takiej samej kombinacji. Zwiększmy sobie wydatnie szanse poprzez dwa założenia:

 

  • wszystkie bitcoiny są już wykopane (21 000 000)
  • każde satoshi jest na innym adresie (1 satoshi = 0.00000001 BTC)

 

Mamy w ten sposób 12 * 106 * 108 zajętych adresów.

 

Jaka jest szansa na trafienie JEDNEGO zajętego już adresu?

 

 1 : 1,46 * 1048 / 12 * 106 * 108 czyli 1 : 1,22 * 1049 

 

Spróbujmy uzmysłowić sobie prawdopodobieństwo takiego zdażenia:

 

  • wygrana w totka – 1 : 13 983 816, około 156 losowań w roku
  • szansa na trafienie piorunem raz w roku – 1 : 775 000, rok ma 365 dni
  • serce bije w tempie do 200 uderzeń na minutę, rok to 525 600 minut

 

Domyślacie się dokąd zmierzamy? Nie? Policzmy zatem.

 

Prawdopodobieństwo wygrania każdego losowania lotka w ciągu roku i do tego bycia rażonym piorunem przy każdym uderzeniu swojego galopującego serca wynosi:

 

 1 : (13983816 * 156) * (775000 * 365) * (525600 * 200) 

 

czyli

 

 1 : 6,48 * 1025 

 

Jest to nadal ponad 18`000`000`000`000 razy BARDZIEJ prawdopodobne niż trafienie ponownie już używanego adresu!

 

piorun

 

 

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

 

Bitcoina i inne kryptowaluty kupisz w prosty i bezpieczny sposób na giełdzie zondacrypto.

Tagi
Autor

Na rynku kryptowalut od 2013 r. Współorganizowałem pierwsze w Polsce konsultacje społeczne w Sejmie dotyczące technologii blockchain, a także Polski Kongres Bitcoin, w ramach którego wystąpił Andreas Antonopoulos. Współpracowałem z posłami na Sejm RP, w celu przygotowania interpelacji na temat takich kwestii jak: kryptowaluty, CBDC czy technologia blockchain. Interesuje się historią, ekonomią, polityką i oczywiście technologią blockchain.

Newsletter Bitcoin.pl

Więcej niż bitcoin i kryptowaluty. Najważniejsze newsy i insiderskie informacje prosto na Twój email.

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności