Ataki typu Replay – największa luka w zabezpieczeniach Bitcoinów?

17 lutego 2021
Category: Więc Możesz

Spis treści

  • Transakcje Bitcoin
  • Atak powtórkowyOchrona przed powtórkamiBitcoin kontra Bitcoin2xWniosekBitcoin, pomimo całej swojej pozytywnej prasy, jest obecnie wadliwym produktem, który bardzo cierpi z powodu problemów związanych ze skalowalnością i szybkością przetwarzania transakcji. Oczywiście, po zauważeniu udanego, ale wadliwego produktu, wiele osób będzie gromadzić się, aby spróbować naprawić te wady, jednocześnie zdobywając własny słodki udział w rynku. Coś takiego wydarzyło się w maju 2017 roku, kiedy Digital Currency Group opublikowało umowę nowojorską (NYA). Umowa nowojorska została podpisana przez dużą liczbę firm zajmujących się bitcoinami i przez górników reprezentujących ponad 80% mocy obliczeniowej Bitcoin. Umowa ta wymagałaby niemal natychmiastowej aktywacji SegWit, technologii oddzielającej dane transakcji od danych podpisu.Wprowadzenie SegWit skutecznie czterokrotnie zwiększyło liczbę transakcji, które można było zmieścić w jednym bloku i utorowało drogę do wprowadzenia nowych technologii, takich jak sieć Lightning.

    Zgodnie z powyższą umową, wdrożenie SegWit miało być kontynuowane w listopadzie w postaci hard forka Bitcoin. Ten fork, zwany SegWit2x lub Bitcoin2x, miał wziąć wszystkie dobre rzeczy z ulepszonego przez SegWit łańcucha bloków Bitcoin i ulepszyć go, zwiększając rozmiar bloku do 2Mb. Mimo że bardzo pomogłoby to w problemach ze skalowalnością Bitcoinów, podwajając pojemność bloków w nowym łańcuchu, projekt został bezceremonialnie anulowany w listopadzie, jako główny powód podając „brak konsensusu. Problem, który spowodował ten podział w społeczności Bitcoin, był bezpośrednio związany z niezdolnością Bitcoin2x do odparcia ataków typu Replay i brakiem planów twórców, aby dodać silną ochronę przed atakami typu Replay do ich łańcucha blokowego. Ataki typu Replay były częstym zjawiskiem, nie tylko w świecie kryptowalut,ale we wszelkiego rodzaju komunikacji internetowej od dłuższego czasu; teraz jest dobry moment na wyjaśnienie, czym są te ataki i jak możesz się przed nimi chronić.

    Transakcje Bitcoin

    Aby zrozumieć ataki typu replay, musimy najpierw zrozumieć, jak działają transakcje bitcoin. Są podobne do transakcji bankowych. Bitcoin można porównać do księgi, z wyjątkiem jej cyfrowej, zdecentralizowanej i globalnej; Transakcje Bitcoin to czeki bankowe. Ta księga jest przechowywana online i każdy, kto chce ją skontrolować, może to zrobić, pobierając całą kopię łańcucha bloków. Oznacza to również, że same czeki nie są prywatne. Poszczególne transakcje są widoczne dla każdego i każdy może je obserwować i weryfikować.

    Ta księga może zostać ulepszona (hard fork). Hard fork tworzy nową księgę, zachowując wszystkie stare dane księgi w stanie nienaruszonym. Po utworzeniu hard fork użytkownicy starszej sieci mają dwie możliwości: pozostać w starej księdze lub przejść do nowej. Jeśli wszyscy się przeprowadzą, nowa księga stanie się globalna, ponieważ stara jest odsuwana na bok. Jeśli poruszy się tylko część użytkowników, otrzymamy dwie księgi, starszą księgę i rozwidloną księgę. Po rozgałęzieniu zostaną znalezione nowe bloki dla każdego łańcucha bloków, a łańcuchy zaczną się różnić od siebie.

    Atak powtórkowy

    Atak powtórka występuje, gdy złośliwy kopie player strumień komunikatów między dwiema stronami i powtórki strumienia do jednego lub więcej stron. Ten problem jest częstym zjawiskiem w transakcjach typu blockchain. Załóżmy, że posiadasz krypto w starej księdze i wspomniana księga została podzielona przez hard fork. Po dokonaniu podziału będziesz teraz posiadać taką samą ilość zasobów w obu księgach, co oznacza, że ​​saldo w starej monecie pozostanie takie samo, podczas gdy saldo w nowej monecie będzie równe posiadanym dotychczasowym zasobom. Może to potencjalnie stanowić problem; Jeśli wyślesz zlecenie transakcji przez jedną księgę, złośliwy gracz może teoretycznie przechwycić twoją funkcję skrótu i ​​użyć jej do skopiowania zlecenia transakcji i zaprezentowania jej w drugiej księdze.

    Osoba, która powiela Twoje zamówienie (przedstawia kopię Twojego czeku) w drugiej księdze, odtwarza transakcję, czyniąc Cię ofiarą ataku powtórkowego . Na przykład, jeśli użytkownik chce wydać dwa Bitcoiny w starej księdze, atak powtórkowy może spowodować równą transakcję dwóch Bitcoinów również na rozwidlonej księdze. Chociaż skradziona waluta niekoniecznie trafiłaby na adres portfela atakującego, ta luka może opróżnić portfele ofiar w zaatakowanym łańcuchu. Atakujący zazwyczaj nie ma na myśli bezpośredniego zysku, a raczej ma na celu wywołanie chaosu w sieci. Pomysł jest podobny do tego, jak hakerzy tworzą wirusy do zniszczenia, zamiast pobierać poufne dane z komputera ofiar.

    Ochrona przed powtórkami

    Chociaż ataki typu Replay miały miejsce w przeszłości w sieci Bitcoin, były one przeprowadzane na małą skalę i nigdy tak naprawdę nie miały żadnych poważnych skutków. Podobne problemy wystąpiły w sieci Ethereum po jej podzieleniu na dwie oddzielne księgi, Ethereum i Ethereum Classic. Jako użytkownik indywidualny musisz być świadomy, że Twoje fundusze są narażone na ryzyko i musisz podjąć odpowiednie środki ostrożności, aby zapewnić ich ochronę. Wiele indywidualnych koncepcji opartych na użytkownikach zostało opublikowanych w eterze i można ich użyć do ochrony twoich funduszy przed atakiem typu replay:

    • Wybierz bezpieczny portfel Wybór portfela działającego w obu sieciach gwarantuje, że użytkownicy mogą korzystać z pełnej wartości i możliwości swojej waluty. Dlatego najlepszym wyborem jest użycie portfela, który zapewnia łatwą w obsłudze platformę i działa po obu stronach sieci. Jednak chociaż te czynniki są ważne, najważniejszym elementem portfela cyfrowego są jego standardy bezpieczeństwa – szczególnie w odniesieniu do ataków typu replay, które często towarzyszą twardym widelcom, takim jak SegWit2x. Usługi takie jak BTC.com, a nawet gigant giełdowy Coinbase tworzą swoje portfele z myślą o twardych forkach Bitcoina; ich produkty mają na celu zapewnienie poziomu ochrony, który będzie niezbędny do odparcia potencjalnych ataków typu Replay.

      • Łączenie transakcji z transakcjami Coinbase Transakcje Coinbase, które są tworzone po forku, są różne w każdym łańcuchu. Dlatego transakcji Coinbase nie można odtworzyć w żadnej innej księdze. Jeśli utworzysz transakcję, która miesza się z transakcją, której nie da się odtworzyć, nowa transakcja również będzie niemożliwa do odtworzenia. W ten sposób mieszanie transakcji z transakcjami Coinbase sprawia, że ​​nie można ich odtworzyć, a ponadto daje dodatkową korzyść polegającą na tym, że transakcje, które mieszają się z już mieszanymi transakcjami, również nie są odtwarzalne. Oczekuje się, że przyszłe portfele i giełdy będą oferować te „mieszane usługi, zarówno w celu pozyskania większej liczby użytkowników poprzez rozszerzenie zakresu oferowanych usług, jak również w celu zapewnienia, że ​​nieodtwarzalność rozprzestrzeni się w całym systemie.

        • NLocktime i doubleespend Jeśli jeden z łańcuchów bloków ma znacznie częstsze bloki niż drugi, można utworzyć dwie transakcje: jedną z czasem nLock dla następnego bloku w szybszym łańcuchu i drugą, która spędza co najmniej jedno wejście z pierwszej transakcji z bardzo wysoka opłata. Najpierw transmitujesz transakcję za pomocą nLocktime, który, miejmy nadzieję, zostanie włączony do następnego bloku w szybkim łańcuchu. Po potwierdzeniu podwójna kwota jest transmitowana z bardzo wysoką opłatą do wolniejszego łańcucha, mając nadzieję, że zostanie potwierdzona przed osiągnięciem maksymalnego czasu nLocktime pierwszej transakcji. Po odczekaniu kilku dodatkowych potwierdzeń dla bezpieczeństwa, dane wyjściowe tych dwóch transakcji mogą być teraz używane do tworzenia transakcji specyficznych tylko dla jednego łańcucha.

          • Podwajaj się Utwórz parę transakcji z różnymi adresami odbiorców, których jesteś właścicielem, i które wydają te same środki. Nadawaj oba w tym samym czasie i miej nadzieję, że jeden z nich zostanie potwierdzony w jednym łańcuchu w tym samym czasie, że drugi zostanie potwierdzony w drugim. Jeśli się nie powiedzie, powtórz.

            • Dwie transakcje – dwa ustawienia opłat Możliwe, że górnicy w łańcuchu bloków księgi wydobywają transakcje z innymi opłatami niż w przypadku forka, więc możesz transmitować niskopłatną wersję swojej transakcji w łańcuchu z niską opłatą, czekać na potwierdzenie, a następnie transmitować wyższą -fee wersja w łańcuchu z wysokimi opłatami.

              Wymienione metody wymagają do wdrożenia specjalistycznego oprogramowania i odpowiedniej wiedzy technicznej, dlatego nie nadają się do szerokiego zastosowania. Dobry blockchain, który ma nadzieję na komercyjne wdrożenie, musi mieć własne wbudowane mechanizmy, które będą chronić sieć przed atakami typu replay. Ochrona przed powtórkami jest dość łatwa do wdrożenia, ale wymaga twardego rozwidlenia oryginalnego łańcucha bloków. Jest to główny powód, dla którego Bitcoin go nie posiada, ponieważ wdrożenie tej ochrony wymagałoby rozwidlenia starej księgi Bitcoin, co spowodowałoby wiele problemów technologicznych z portfelami i aplikacjami kompatybilnymi z Bitcoin. Dlatego dobrej jakości widelec musi zaimplementować formę ochrony przed powtórzeniem, a jest kilka takich rozwiązań.Jedną z najlepszych technik zapobiegania atakom typu replay jest stosowanie silnych podpisów cyfrowych ze znacznikami czasu. Inną techniką, której można by użyć, jest tworzenie losowych kluczy sesji, które są ograniczone czasem i związane z procesem. Jednorazowe hasło dla każdego żądania pomaga również w zapobieganiu atakom typu replay i jest często używane w operacjach bankowych. Inne techniki stosowane przeciwko atakom typu replay obejmują sekwencjonowanie wiadomości i brak akceptacji zduplikowanych wiadomości.

              Dobry przykład ciężko rozwidlonej księgi zajmującej się atakami powtórek miał miejsce, gdy Bitcoin Cash oddzielił się od oryginalnego łańcucha blokowego Bitcoin. Obie sieci mogły być zagrożone atakami typu replay. Zagrożenie to zostało usunięte poprzez utworzenie nieco innych transakcji (czeków) dla BCH. Każda transakcja BCH jest oznaczona znakiem, który potwierdza, że ​​transakcja została utworzona specjalnie dla księgi BCH, a nie dla starszej księgi Bitcoin.

              Dzięki temu znakowi każdy węzeł przeprowadzający obecnie audyt Bitcoin automatycznie odrzuci transakcję Bitcoin Cash i odwrotnie. Ten specjalny znak to ochrona powtórek.

              Bitcoin kontra Bitcoin2x

              Mimo że SegWit2x obiecał rozwiązać wiele problemów, które nękają Bitcoin, jego twórcy stanowczo sprzeciwiali się dodawaniu ochrony przed powtórkami. Zamiast tego mówili, że sam Bitcoin Core powinien dodać ochronę przed powtórzeniami, jeśli jest to tak duże obawy. Twórcy Bitcoin Core nie byli przeciwni takiemu rozwidleniu per se. To, z czym mieli problemy, to ramy czasowe, które otrzymali, ponieważ potrzebowali więcej niż 3 miesiące czasu (czyli tyle było czasowych od ogłoszenia widelca Bitcoin2x do uruchomienia), aby przygotować się na własny fork. Wielu programistów Bitcoin Core uważało, że potrzebowaliby co najmniej 12 miesięcy na wykonanie pełnego zestawu korekt potrzebnych do udanego hard forka. Zbyt wczesne odłożenie rozwidlenia spowodowałoby, że nie wszyscy dokonaliby aktualizacji ze starej księgi, co spowodowałoby współistnienie dwóch różnych ksiąg i zmarnowanie zasobów.

              Wśród zwolenników Core było wiele głosów, które twierdziły, że Bitcoin2x jest tylko wyszukaną próbą przejęcia. Główni zwolennicy twierdzili, że przełączanie mocy skrótu w celu tworzenia kopii zapasowych reguł niezgodnych z konsensusem i łańcuchów bloków nie jest „aktualizacją, ale dosłowną definicją ataku 51%. Zgodnie z teoriami konsorcjum wokół Bitcoin2x chciało przełamać status quo i przekonać wszystkich, zarówno górników, jak i użytkowników, do porzucenia dotychczasowego łańcucha. Nazwanie tego „atakiem na Bitcoin może trochę przypominać konsorcjum składające się z wielu prawdziwych zwolenników Bitcoina, działających w tym, co uważali za dobrą wiarę. Deweloperzy Bitcoin2x w końcu dodali obsługę opt-in replay protection, dając użytkownikom możliwość decydowania, czy chcą, aby ich transakcja była chroniona czy nie. Jednak bez implementacji pełna ochrona przed powtórzeniami ich wysiłki musiały wywrzeć ogromny nacisk na księgę historyczną. Dlatego ta odmowa ustąpienia ze strony zespołu SegWit2x / Bitcoin2x słusznie podnosi brwi i obarcza ich winą za niepowodzenie ich projektu.

              Wniosek

              Każdy nadchodzący hard fork stanowi poważny test dla Bitcoina. Te rozwidlenia zapewniają ulepszenia, które są niezbędne do prawidłowego dostosowania łańcucha bloków do użytku komercyjnego, ale wiążą się z ryzykiem dla sieci i jej użytkowników. Największe ryzyko wiąże się z atakami typu replay, które mogą zmusić sieć do stawienia czoła potworowi „szefowi świata kryptowalut, czyli atakowi 51%. Jeśli, podobnie jak większość użytkowników Bitcoin, wolisz HODLing niż wydawanie, ataki typu Replay nie będą miały na Ciebie wpływu. Przechowywanie monet w chłodni wystarczy, aby zapewnić im bezpieczeństwo. Z drugiej strony, jeśli lubisz jeździć na niekończącej się przejażdżce handlu skalpami, widelec Bitcoin może spowodować ból głowy. Najlepszym sposobem postępowania w przypadku trudnego widelca będzie przeczekanie sprawy i upewnienie się, że nowy widelec jest w 100% kompletny i bezpieczny. Jak w przypadku wszystkiego związanego z kryptowalutami,graj bezpiecznie, bądź cierpliwy i zbadaj wyniki forka przed przystąpieniem do wysyłania, odbierania lub działania w sieci Bitcoin.

    We use cookies to provide you with the best possible experience. By continuing, we will assume that you agree to our cookie policy