Atak typu race, zwany również atakiem podwójnego wydania, stanowi lukę w zabezpieczeniach powszechną w sieciach blockchain, szczególnie tych wykorzystujących mechanizmy konsensusu Proof-of-Work (PoW). Atak ten obejmuje próbę dwukrotnego wydania tej samej kryptowaluty, zanim sieć będzie mogła potwierdzić transakcje, wykorzystując opóźnienie czasowe w potwierdzeniach transakcji.
Ataki typu race polegają na zainicjowaniu przez osobę dokonującą ataku dwóch kolidujących ze sobą transakcji, mających na celu wydanie tej samej puli monet. Jedna transakcja jest kierowana do sprzedawcy lub usługodawcy, natomiast druga jest wysyłana na inny adres kontrolowany przez atakującego. Obie transakcje są przesyłane do sieci prawie jednocześnie, wykorzystując opóźnienia w propagacji sieci i powodując różne sekwencje przetwarzania transakcji w różnych węzłach. Atakujący wykorzystuje czas potrzebny na potwierdzenie transakcji, dbając o to, by transakcja wysłana na jego adres została potwierdzona jako pierwsza. Jeśli sprzedawca zaakceptuje niepotwierdzoną transakcję i dostarczy towary lub usługi, atakujący odniesie korzyści, ponieważ druga transakcja, podczas której te same monety zostaną wysłane z powrotem do atakującego, zostanie potwierdzona przez sieć i skutecznie unieważni początkową transakcję.
– Wrażliwość czasowa: Wykorzystanie opóźnienia czasowego między rozpoczęciem transmisji transakcji a jej potwierdzeniem, w dużym stopniu zależnego od opóźnień czasowych i opóźnień propagacji w sieci.
– Propagacja sieciowa: Opiera się na założeniu, że różne obszary sieci otrzymują transakcje w nieco innym czasie, co prowadzi do zróżnicowanej akceptacji kolidujących ze sobą transakcji.
– Podwójne wydawanie: Głównym celem jest podwójne wydanie, w którym osoba atakująca wydaje te same monety w dwóch różnych transakcjach, czerpiąc korzyści z jednej i unieważniając drugą.
– Wymagania dotyczące potwierdzeń: Sprzedawcy i dostawcy usług mogą ograniczyć ryzyko wystąpienia ataków typu race, wymagając wielu potwierdzeń przed zaakceptowaniem transakcji jako ostatecznej, co sprawia, że jej odwołanie staje się trudniejsze.
– Monitorowanie sieci: Ciągłe monitorowanie sieci pod kątem prób podwójnego wydawania może pomóc w wykrywaniu i zapobieganiu atakom typu race, wykorzystując systemy wykrywania do oznaczania podejrzanych transakcji.
– Wydłużony czas bloku: Skrócenie czasu między blokami może ograniczyć okna czasowe do przeprowadzenia ataku typu race, pomimo konieczności pójścia na kompromis w zakresie wydajności sieci i bezpieczeństwa.
– Ulepszone protokoły bezpieczeństwa: Wdrożenie zaawansowanych protokołów bezpieczeństwa i mechanizmów wykrywania oszustw w celu identyfikacji i przeciwdziałania atakom typu race, takich jak wdrożenie dodatkowych etapów walidacji w celu zwiększenia bezpieczeństwa.
Ataki typu race stanowią poważne zagrożenie dla integralności sieci blockchain, ponieważ wykorzystują opóźnienia w potwierdzaniu transakcji do podwójnego wydawania środków. Rozumiejąc mechanikę ataków typu race i wdrażając solidne środki zapobiegawcze, zarówno sieci blockchain, jak i ich użytkownicy mogą skutecznie zabezpieczyć się przed tego typu zagrożeniami.