Czym jest Transaction Replacement Attack?
Transaction Replacement Attack to sytuacja, gdy ktoś wysyła płatność kryptowalutową, a następnie szybko rozgłasza inną wersję tej transakcji ze zmienionymi danymi zanim zostanie potwierdzona. Celem jest oszukanie osoby, która zaakceptowała pierwszą oczekującą płatność. To jak obiecać zapłatę przy kasie, a potem pobiec i wymienić banknoty, gdy kasjer odwróci wzrok.
Jeżeli transakcja widnieje jako oczekująca, można ją uznać za opłaconą. Nie do końca. Dopóki górnik nie umieści jej w bloku, wciąż mogą zajść zamiany i Transaction Replacement Attack może odwrócić wynik.
Jak działa Transaction Replacement Attack
Krótka relacja krok po kroku na przykładzie prostego zakupu.
- Krok 1: Atakujący wysyła ci płatność z niską opłatą. Widząc ją jako oczekującą, możesz poczuć się uspokojony.
- Krok 2: Przed potwierdzeniem atakujący tworzy nową transakcję wydającą te same środki, często za pomocą Replace by Fee (RBF) lub przez ponowne wysłanie z tym samym nonce na łańcuchach opartych na kontach.
- Krok 3: Zamiennik oferuje wyższą opłatę i jest atrakcyjniejszy dla górników, więc zostaje wydobyty, podczas gdy pierwotna wersja zostaje odrzucona.
- Krok 4: Łatwiej to zrobić przy dużym obciążeniu sieci, gdy górnicy priorytetowo traktują wyższe opłaty.
- Krok 5: Wydajesz produkt lub usługę na podstawie oczekującej płatności i zostajesz bez zapłaty, gdy łańcuch potwierdzi zastępczą transakcję.
Oto ten manewr. Prosty, nieco podstępny i da się temu zapobiec.
Dlaczego Transaction Replacement Attack ma znaczenie
Dlaczego warto na to zwrócić uwagę, niezależnie od tego, czy prowadzisz kasę, czy tylko przesyłasz monety znajomemu.
- Korzyść: Mechanizm zastępowania pozwala uczciwym użytkownikom przyspieszać zablokowane płatności przez podbicie opłaty, co bywa przydatne, gdy potrzebujesz szybkiego potwierdzenia.
- Perspektywa: Te same narzędzia, które pomagają, mogą być wykorzystane przeciwko tobie, jeśli zaufasz oczekującej płatności przy wydawaniu towarów lub przyznawaniu dostępu.
- Znaczenie: Spotkasz to w systemach sprzedaży punktowej, przy biciach NFT, w transakcjach OTC i wszędzie tam, gdzie akceptuje się oczekujące transakcje.
Używaj portfela kryptowalutowego, który wyraźnie oznacza transakcje możliwe do zastąpienia i pokazuje liczbę potwierdzeń. Przy płatnościach wymagaj kilku potwierdzeń zanim przekażesz cokolwiek istotnego.
Główne cechy Transaction Replacement Attack
Co to wyróżnia, prostymi słowami:
- Czas: Dzieje się przed potwierdzeniem, gdy transakcja wciąż znajduje się w mempoolu.
- Zachęty: Wyższa opłata lub lepsze warunki skłaniają górników lub walidatorów do uwzględnienia zamiennika zamiast oryginału.
- Sygnały: Niektóre transakcje są oznaczone jako możliwe do zastąpienia, a łańcuchy oparte na kontach pozwalają na zastąpienia z tym samym nonce.
- Cel: Sprzedawcy lub partnerzy, którzy akceptują płatności oczekujące, są najbardziej narażeni.
Odmiany
To samo założenie, nieco inne mechanizmy w zależności od łańcucha.
- RBF: Nadawca oznacza płatność jako możliwą do zastąpienia, a potem rozgłasza wersję z wyższą opłatą, która zmienia wyjście lub odbiorcę.
- Zamiana nonce: Na łańcuchach opartych na kontach użytkownik ponownie wysyła transakcję z tym samym nonce, ale wyższym gazem, co unieważnia lub zmienia wcześniejszy zamiar.
- Sztuczka z refundacją: Najpierw nadawca płaci sprzedawcy, potem zastępuje oczekującą płatność taką, która wysyła środki na adres, który kontroluje.
Nie traktuj płatności jako ostatecznej, dopóki twój węzeł nie oznaczy transakcji jako rozliczonej. Transaction Replacement Attack traci na sile po odpowiedniej liczbie potwierdzeń.
Przykład
Kawiarnia akceptuje oczekującą płatność za latte, kupujący natychmiast rozgłasza zamiennik z wyższą opłatą, który wysyła środki gdzie indziej, a barista później odkrywa, że kupujący wykorzystał możliwość zastąpienia.
Ciekawostka
Podbicie opłaty wprowadzono, aby pomóc uczciwym użytkownikom ratować zablokowane transakcje, na długo zanim stało się to memem o oszustwach. Jak wiele rozwiązań technologicznych, to kwestia prestiżu: Rolex spotyka wątki na Reddicie w zależności od tego, kto trzyma klucze.
Podsumowanie
Krótko: nie wydawaj towaru w oparciu o niepewną płatność. Poczekaj jeden lub dwa bloki, potem możesz być spokojny.
