Co je Finney Attack?
Finney Attack nastane, když těžař tiše připraví blok, který pošle mince zpět sobě, a pak zaplatí obchodníkovi těmi samými mincemi pomocí nepotvrzené transakce. Pokud obchodník vydá zboží dřív, než dorazí potvrzení, těžař uvolní připravený blok a platbu zruší. Představte si to jako ukázání probíhajícího převodu u pokladny a následné vrácení transakce bankou.
Lidé často předpokládají, že Finney Attack vyžaduje většinovou kontrolu nad sítí. Není tomu tak. To je 51% attack, což je jiný případ. Finney Attack vyžaduje jen jednoho těžaře, který v soukromí najde blok a načasuje nákup před zveřejněním toho bloku.
Jak Finney Attack funguje
Popis přímo. Těžař vytvoří v bloku platbu sám sobě, udrží ji v soukromí, a pak utratí ty samé mince u prodejce, který přijímá nepotvrzené platby. Po odchodu se zbožím zveřejní soukromý blok, čímž se prodej zruší.
- Příprava: Útočník se věnuje mining, takže může nacházet bloky a rozhodovat, co do nich vloží.
- Soukromě: V tajnosti vytěží blok, který posílá mince zpět útočníkovi. Šance najít takový blok závisí na hash rates sítě a na štěstí.
- Transakce: Zaplatí obchodníkovi těmi samými mincemi pomocí nepotvrzené transakce u pokladny.
- Přijetí: Pokud obchodník vydá zboží dřív než přijde potvrzení, útočník zveřejní svůj soukromý blok.
- Reorganizace: Síť přijme soukromý blok, potvrdí platbu zpět sobě a platba obchodníkovi zmizí. Útočník si ponechá mince i zboží.
Rychlé, nenápadné a funguje pouze při akceptaci nulových potvrzení.
Proč je Finney Attack důležitý
Co si z toho vzít?
- Přínos: Vědět o něm vám pomůže vyhnout se tomu, že podvodníci odnesou zboží zadarmo nebo že přijdete o prostředky.
- Pohled: Je to cílená forma double spending a spoléhá na netrpělivost na místě prodeje.
- Výskyt: Setkáte se s tím u maloobchodních kryptoplateb, při osobních obchodech a na tržištích, která přijímají nepotvrzené transakce.
U věcí, které by vás bolely ztratit, vyčkejte alespoň jedno potvrzení nebo použijte úschovu či platební kanál jako Lightning. Nulové potvrzení je přijatelné u drobných nákupů, ale stanovte limity a proškolte personál, aby nikdy nespěchal s potvrzením na obrazovce.
Hlavní znaky Finney Attack
Charakteristické rysy jsou snadno rozpoznatelné, jakmile je znáte:
- Přednahrání: Soukromý blok obsahuje platbu sobě dřív, než v obchodě proběhne nákup.
- Těžař: Funguje jen pokud útočník může těžit blok, ne stačí jen peněženka.
- Časování: Okno je krátké, mezi prodejem a zveřejněním soukromého bloku.
- Cíl: Obchodníci nebo protistrany, které přijímají nepotvrzené transakce.
- Rozsah: Nevyžaduje většinovou kontrolu, jde o chirurgický trik.
Varianty
Související postupy, o kterých můžete slyšet, a časté zmatení:
- Race: Útočník vysílá dvě konfliktní platby a doufá, že ta pro obchodníka bude přijata první, pak prohraje, když druhá dostane potvrzení.
- Vector76: Kombinace soukromého budování bloku a síťového závodu, obvykle namířená proti burzám nebo velkým prodejcům.
- Premine: Nejde o to samé jako pre mining mincí, což znamená přidělování zásob před spuštěním.
- Nástroje: Někteří útočníci to skriptují jako exploit, automatizují zveřejnění bloku ve chvíli, kdy prodej projde.
Potvrzení mají svůj důvod. Pokud přijmete nepotvrzenou platbu od úplného neznámého, může hrozit Finney Attack, zvlášť pokud působí, že vás tlačí, abyste teď potvrdili.
Příklad
Malý obchod s elektronikou přijme platbu bez potvrzení za notebook, kupující odejde a pak se objeví soukromě vytěžený blok, který prodej zruší, klasický Finney Attack.
Zajímavost
Je pojmenovaný po Halovi Finneym, rané bitcoinové legendě a příjemci první transakce od Satoshiho. Napsal o tomto triku, aby vysvětlil, proč má smysl čekat na potvrzení.
Shrnutí
Zapamatujte si jednu věc: Finney Attack uškodí jen tehdy, když důvěřujete nepotvrzené platbě.
