Kolizja Adresów Bitcoin – Czy Jest Możliwa?
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.
[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.