Do kolizji adresów Bitcoin dochodzi wówczas, gdy dwie różne osoby wygenerują losowo ten sam adres Bitcoin. Osoby te miałyby dostęp do wszelkich funduszy ulokowanych pod tym adresem. Czy takie coś jest w ogóle możliwe?

Odpowiedź brzmi: tak

Szanse zaistnienia takiej sytuacji są bliskie zeru, ale zachęcam do dalszego czytania.

Adres Bitcoin składa się z dwóch nadrzędnych części; adresu (klucz publiczny) oraz klucza adresu (klucz prywatny). W adresie zawarte są fundusze, a klucz umożliwia do nich dostęp.

Działa to tak, że w chwili utworzenia nowego adresu Bitcoin, tworzy się jednocześnie parę kluczy. Klucz prywatny generowany jest jako pierwszy, a przynależny do niego adres jest matematycznie wyliczany z klucza prywatnego – w ten sposób dla każdego klucza powstaje tylko jeden adres.

Klucze oraz ich adresy mogą być generowane bez ograniczeń. Owszem, można stworzyć ich tyle ile się chce. 100, 1000, 100.000? ? jasne, nie ma przeciwwskazań.  Co więcej, kiedy tworzymy portfel za pomocą któregoś z bardziej znanych Bitcoinowych klientów, otrzymujemy z nim domyślne 100 adresów, nawet jeśli mamy zamiar używać tylko jednego.

Należy pamiętać, że o ile prywatny klucz należy do ciebie, możesz korzystać z funduszy przypisanych do adresu.

Wspomniałem wcześniej, że możliwe jest stworzenie dowolnej ilości kluczy (oraz przypisanych do nich adresów). Nieuchronnie nasuwa się więc pytanie: Jeśli będę tworzył nowe prywatne klucze wystarczająco długo, w końcu natknę się na istniejący już adres zawierający Bitcoiny? A skoro miałbym do niego klucz, mógłbym je sobie wziąć? Czyż nie?

Tak, to prawda.

Ale zaraz… To by oznaczało, że gdyby ktoś stworzył przypadkiem klucz prywatny pasujący do mojego wraz z moim adresem, mógłby wyczyścić mój adres z Bitcoinów? Owszem, to prawda – ten ktoś mógłby to zrobić, jeśli miałby wystarczająco szczęścia by stworzyć ten sam klucz prywatny. ?Sczęście? to w tej sytuacji czynnik kluczowy.

Adresy Bitcoin są 160-bitowymi hashami 256-bitowych kluczy publicznych. Istnieje więc 2^160 lub 1,460,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 możliwych adresów.

Powiedzmy, że jest rok 2045, a populacja Ziemi liczy 9 miliardów ludzi. W ramach niezbyt realistycznego scenariusza, każda osoba na ziemi korzysta z Bitcoina i każda z nich stworzyła i korzysta z 10 milionów adresów – czemu nie? Przesada jest tu na miejscu: W rezultacie mielibyśmy 90,000,000,000,000,000 wykorzystanych adresów.

W tej sytuacji prawdopodobieństwo kolizji wynosiłoby 90,000,000,000,000,000 / 2^160 = 0.00000000000000000000000000000000615%. Wyraźnie widać, 2^160 istotnie jest olbrzymią liczbą. Znacznie przekraczającą możliwości analityczne naszych mózgów.

fYFBsqp

[tłumaczenie grafiki]:

Wyobraź sobie, że zbudowałeś komputer doskonały: zapomnij o Gigahashach i Megahertzach.

Twój komputer korzysta z teoretycznego minimum energii koniecznej by zanotować zmianę w pojedynczym bicie (z 1 na 0, lub 0 na 1)

W grę wchodzą tu ograniczenia termodynamiki- dalsze usprawnienia nie są możliwe.

Teraz wyobraź sobie, że z wykorzystaniem większości surowców naturalnych w naszym układzie gwiezdnym tworzysz Sferę Dysona, a całą jej powierzchnię pokrywasz pojedynczym super-komputerem wielkości układu gwiezdnego. Teraz wyobraź sobie, że możliwe jest utrzymanie jego temperatury na poziomie zera absolutnego bez wykorzystania dodatkowej energii.

Jeśli miałbyś to wszystko i udałoby ci się (bez jakichkolwiek strat) wychwycić całość energii generowanej przez naszą gwiazdę (nie w ciągu dnia, ani tygodnia, a raczej aż do czasu jej wygaśnięcia), niemożliwe byłoby doliczenie do 2^256 przed wyczerpaniem energii.

Pamiętajmy, że mowa tu wyłącznie o wyliczeniach.

Wyłącznie – bez hashowania, porównywania, wyszukiwania; tylko liczymy.. 1..2..3?.2^256-1.

Działania te nie mają nic wspólnego z technologią urządzeń; Są to maxima, na które pozwala termodynamika.

Wynika z nich, że brutalne ataki na klucze 256-bitowe będą nieopłacalne tak długo jak komputery będą składać z czegoś innego niż materii i zajmować coś innego niż przestrzeń.

Bitcoin – Twoich pieniędzy strzegą prawa wszechświata.

Owszem, ktoś mógłby zaprogramować odpowiednio superkomputer zbudowany specjalnie po to, by przeprowadzać wspomniane wyliczenia i przez cały dzień łamać adresy. W takim wypadku, znacznie bardziej opłacalne byłoby jednak wykorzystanie aparatury do kopania Bitcoinów, biorąc pod uwagę, że działania w przypadku kopania są dość zbliżone. Nagroda jest jednak wyższa, co sprawia, że całą zabawa nie jest warta wysiłku i kosztów elektryczności.

David Perry wyjaśnia to w ten sposób:

Załóżmy, że masz super-ASICA opartego na procesorze 12nm (wyprzedzającym dzisiejszą technologię o 4 generacje), który może tworzyć, zatwierdzać oraz kraść 1 trylion pary kluczy na sekundę (1TK/s). Oznaczałoby to moc 50,000 razy większą, niż najszybsze dzisiejsze procesowy. Załóżmy jednocześnie, że masz takich maszyn tysiąc i pracują one 24/7/365 bez przerwy. W ciągu roku mógłbyś wykraść 3*10^28 możliwych adresów.

Przy 1 kwadrylionie obciążonych funduszami adresów, twoja szansa na kolizję z losowym adresem wynosiłaby ~1% na przestrzeni 1,000 lat. Dla porównania wspomnę, że prawdopodobieństwo porażenia piorunem wynosi 1 do 280,000. Jest więc
500,000,000,000,000,000,000 bardziej prawdopodobne, że oberwiesz piorunem, niż znajdziesz odpowiedni adres w ciągu pierwszego roku prób. Ponieważ liczba ta wciąż jest dość duża, dodam, że przekłada się to na prawdopodobieństwo oberwania piorunem 4.6 razy w ciągu życia.

 Więc, czy jest to możliwe? Tak. Nieprawdopodobne? Ekstremalnie.

Wróć do łóżka i nie bój się, że to się kiedykolwiek wydarzy.

Autor wpisu: Miguel Moreno

Źródło oryginału: http://www.miguelmoreno.net/bitcoin-address-collision/

Tłumaczenie: Mateusz Kocot

Artykuł został przetłumaczony i opublikowany za wiedzą i zgodą autora.

92 KOMENTARZE

  1. Może i nie jest to możliwe, ale coś innego jest bardziej niepokojące. To, iż generowane są klucze i adres jednocześnie. Jeśli ktoś wymyślił procedurę generowania tej pary, to zapewne istnieje też metoda odwrócenia tego procesu. Tak więc bitcoin nigdy nie był i nie jest bezpieczny. Dlaczego nie można do adresu przypisać własnego klucza prywatnego? Byłoby to z pewnością dużo bardziej bezpieczne.

  2. Pomijając informatykę komputery kwantowe ataki itd zagrożenie istnieje w matematyce przydzie jakiś oszołom matematyk siwy dziad i policzy te krzywe eleiptyczne bo znajdzie na to sposób cały projekt BTC leży i kwiczy i dwa to ze liczba ma tyle i tyle bitów nie oznacza to że nalezy brać pod uwagę wszystkie mozliwe kombinacje przykładowy klucz prywatny 5K29ea17cN8TqLBAMs7kfrPHcK4LDRqHhdu6NJazc3VPXsMinY*r* zmina ost litery z “r” na “a” taki klucz nie spelnia warunków poprostu takowy nie istnieje wiec nie są to wszytskie mozliwe kombinacje na zasadzie aaaaa aaaaab aaaac aaaad zgoda jest tego dużo i tak w h…

  3. co się dziej ze zgubionymi bitcoinami np. w skasowanej nie zbackupowanej portmonetce.
    Czy jak bym miał w takiej portmonetce 100 B to czy znaczy że w obiegu by było już o te 100 B mniej?
    Czy można je ponownie wykopać ? Czy zapiszą się na czyjeś konto ?
    Nie rozumiem czym jest Bitcoin i jestem laikiem tej idei. Proszę o wytłumaczenie.

    Druga sprawa czy mylę się sądząc, że koparki B zużywają energię bezsensownie licząc hasze i podgrzewając atmosferę? Czy nie można by wpleść w to rozwiązanie jakiegoś rzeczywistego problemu. np. szukać leku na raka etc.?
    piotr38

    • Zużywają prąd równie bezsensownie co ludzie oglądający koty na YT, przy okazji zabezpieczając sieć bitcoin.

      Jeśli ktoś zgubił portfel to tak jak w realnym życiu musi znaleźć go ponownie lub czekać aż ktoś go znajdzie. Oczywiście po przeczytaniu tego artykułu wiesz że to niemal niemożliwe.
      Te bitcoiny po prostu przepadają i będzie ich o tyle mniej w obiegu.

  4. Niestety w tłumaczenie grafiki wkradł się błąd. Powinno być:

    “Wynika z nich, że brutalne ataki na klucze 256-bitowe będą nieopłacalne *aż do momentu*, w którym komputery będą składać z czegoś innego niż materii i zajmować coś innego niż przestrzeń.”

    (Nie “dopóki” ? znaczenie jest odwrotne, bo przecież teraz komputery nie składają się z czegoś innego niż materii)

    • Satoshi wszystko przewidział i z góry wiedział jakie jest prawdopodobieństwo takiego zdarzenia. Myślę, że nie ma potrzeby zabezpieczania się przed taką ewentualnością. Gdyby to stanowiło jakiekolwiek zagrożenie to twórca wymyśliłby inne rozwiązanie. On naprawdę wiedział co robi i myślę, że powinniśmy mu zaufać. Dużo większe jest prawdopodobieństwo, że ktoś zainstaluje nam keyloggera, albo włamie się nam do komputera i dobierze się do naszych Bitcoinów.

      Najlepiej, jeśli mamy dużo Bitcoinów, jest zainwestować w bezpieczny portfel Trezor i rozkładać większe sumy pomiędzy kilkoma adresami.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj