Czym jest Finney Attack?
Finney Attack to sytuacja gdy górnik potajemnie przygotowuje blok, w którym przesyła monety z powrotem do siebie, a następnie płaci sprzedawcy tymi samymi monetami korzystając z niepotwierdzonej transakcji. Jeśli sprzedawca wyda towar zanim pojawi się potwierdzenie, górnik publikuje przygotowany blok, anulując płatność. Wyobraź to sobie jak okazanie oczekującego przelewu przy kasie, a potem cofnięcie go przez bank.
Ludzie często zakładają że Finney Attack wymaga kontroli większości sieci. To nieprawda. To jest atak 51%, który to inna sprawa. Finney Attack potrzebuje tylko jednego górnika który znajdzie blok prywatnie i zgra zakup z momentem przed publikacją tego bloku.
Jak działa Finney Attack
Oto przebieg wprost. Górnik umieszcza w bloku płatność dla siebie, utrzymuje ją w tajemnicy, a potem wydaje te same monety u sprzedawcy który akceptuje niepotwierdzone płatności. Po odejściu z towarem publikuje prywatny blok który unieważnia sprzedaż.
- Przygotowanie: Atakujący bierze udział w wydobyciu, dzięki czemu może znajdować bloki i wybierać co się w nich znajdzie.
- Prywatne: W tajemnicy kopią blok który wysyła monety z powrotem do nich samych. Szansa na znalezienie takiego bloku zależy od mocy hashowania sieci i szczęścia.
- Wydanie: Płacą sprzedawcy tymi samymi monetami używając niepotwierdzonej transakcji przy ladzie.
- Akceptacja: Jeśli sprzedawca wyda towar zanim pojawi się jakiekolwiek potwierdzenie, atakujący nada swój prywatny blok.
- Reorganizacja: Sieć zaakceptuje prywatny blok, potwierdzi płatność do siebie, a płatność sprzedawcy zniknie. Atakujący zachowuje jednocześnie monety i towar.
Szybkie, podstępne i działa tylko gdy akceptowane są transakcje bez potwierdzeń.
Dlaczego Finney Attack ma znaczenie
Co warto z tego zapamiętać?
- Korzyść: Świadomość jego istnienia pomaga uniknąć sytuacji że oszuści zabiorą towar za darmo a ty stracisz środki.
- Perspektywa: To ukierunkowana forma podwójnego wydawania i wykorzystuje niecierpliwość przy punkcie sprzedaży.
- Gdzie się pojawia: Będzie o tym mowa przy płatnościach kryptowalutowych w handlu detalicznym, transakcjach osobistych i na platformach które akceptują transakcje bez potwierdzeń.
Jeśli chodzi o przedmioty których utrata boli, poczekaj na co najmniej jedno potwierdzenie lub skorzystaj z depozytu powierniczego albo płatności w sieci Lightning. Transakcje bez potwierdzeń są akceptowalne przy drobnych zakupach, ale ustal limity i przeszkól personel aby nigdy nie spieszył się z potwierdzeniem na ekranie.
Główne cechy Finney Attack
Charakterystyczne cechy są łatwe do rozpoznania gdy już je znasz:
- Wstępne przygotowanie: Prywatny blok zawiera płatność do siebie zanim nastąpi zakup w sklepie.
- Górnik: Działa tylko jeśli atakujący może kopać blok, nie wystarczy tylko portfel.
- Czas: Okno jest krótkie między sprzedażą a publikacją prywatnego bloku.
- Cel: Sprzedawcy lub partnerzy którzy akceptują niepotwierdzone transakcje.
- Zakres: Nie wymaga kontroli większości, to raczej chirurgiczny manewr.
Warianty
Powiązane metody które możesz spotkać i częste pomyłki:
- Wyścig: Atakujący nada dwie sprzeczne płatności i liczy że ta przyjęta przez sprzedawcę wygra, a potem przegra gdy potwierdzi się druga.
- Vector76: Mieszanka budowy prywatnego bloku i wyścigu w sieci, zwykle wymierzona w giełdy lub dużych sprzedawców.
- Wstępne wydobycie: To nie to samo co pre mining monet które dotyczy przydziału podaży przed startem.
- Narzędzia: Niektórzy atakujący skryptują to jak eksploit, automatyzując publikację bloku w momencie gdy sprzedaż jest zakończona.
Potwierdzenia istnieją z konkretnego powodu. Jeśli przyjmujesz niepotwierdzoną płatność od całkiem obcej osoby, Finney Attack może być zagrożeniem, zwłaszcza jeśli ta osoba naciska żebyś natychmiast potwierdził.
Przykład
Mały sklep elektroniczny przyjmuje płatność bez potwierdzeń za laptopa, kupujący wychodzi, potem pojawia się prywatnie wydobyty blok który unieważnia sprzedaż, klasyczny przykład Finney Attack.
Ciekawostka
Nazwa pochodzi od Hal Finney który był jednym z wczesnych działaczy Bitcoina i odbiorcą pierwszej transakcji od Satoshiego. Pisał o tej sztuczce aby wyjaśnić dlaczego warto czekać na potwierdzenia.
Podsumowanie
Jeśli zapamiętasz jedną rzecz niech to będzie: Finney Attack działa tylko wtedy gdy ufasz niepotwierdzonej płatności.
