Představte si to: vstoupíte do útulné kavárny, objednáte si dvojité espresso, přiložíte kryptopeněženku k platebnímu terminálu a odcházíte s dobrým pocitem. Transakce proběhne hladce — všechno v pořádku, ne? Co když ale někdo dokáže získat svůj nápoj a zároveň své mince zpět? Přesně to umožňuje málo známá technika zvaná Finneyho útok. Zní to šíleně, že? Pojďme si to rozebrat, v klidu a upřímně.
Není to jen městská legenda — co je vlastně Finneyho útok?
Kdo se pohybuje v kryptosvětě — třeba i okrajově — možná už slyšel o tricích s dvojím utracením mincí. Finneyho útok leží v samotném jádru prvních hádanek blockchainu. Nese jméno podle Hala Finneyho, skutečného průkopníka v oboru (vlastně až legendy). S tímto útokem se nesetkáte každý den, ale riziko je reálné hlavně pro ty, kdo chtějí obchodovat rychle, zejména pro obchodníky, kteří neradi čekají na potvrzení a zboží vydávají okamžitě [Ledger Academy].
Tři kroky ke dvojím útratám: jak Finneyho útok funguje?
Představme si útočníka, který také těží kryptoměny — dáme mu třeba jméno Alex. Alex postupuje takto:
- První krok: Alex vytvoří transakci, při které pošle mince ze své peněženky A do jiné své peněženky B. Pomocí svého těžebního zařízení zařadí tuto platbu do bloku, který těží — tento blok však zatím neodešle do sítě a tedy ho nikdo jiný nevidí.
- Druhý krok: Alex přijde do zmíněné kavárny a zaplatí za espresso další transakcí ze stejné peněženky A. Platební terminál platbu přijme ihned bez čekání na potvrzení. Proč čekat, když celý systém působí důvěryhodně?
- Třetí krok: Jakmile má kávu hotovou, Alex konečně zveřejní svůj skrytý blok v síti. Blockchain porovná obě transakce, ale protože blok, který Alex vytěžil, je dřívější, platba za espresso je zamítnuta. Alex odchází s mincemi i svým kofeinovým osvěžením. Není to taková dvojitá výhra?
Celé je to o správném načasování a nenápadnosti — ne o síle. A teď to vtipné (a trochu děsivé): Alex nepotřebuje ovládat polovinu celého těžebního výkonu v síti — stačí mít jen trochu štěstí a vybavení, aby vytěžil tajný blok dřív než ostatní. Proto je Finneyho útok mnohem mazanější než dobře známý útok 51 %, kde už je larm kolem a všem je jasné, že je něco špatně [WeSecureApp].
Staré triky, nová rizika: kdo je v ohrožení?
Upřímně, největší riziko mají ti, kteří nechtějí čekat. Obchodníci, kteří přijímají neověřené (zero-confirmation) platby, riskují. U každodenní kávy, kde není ztráta velká, to asi přežijete. Ale u dražších výrobků či služeb? To si koledujete. Hardwarové peněženky jako Trezor nebo Ledger chrání vaše soukromé klíče (vaše digitální trezory), ale kavárnu před dvojím utracením při přeskočení potvrzení neochrání. Útokům nejde o vaše zařízení, ale o pořadí v transakčním toku.
Trocha reality
Nebuďme naivní: Finneyho útoky jsou vzácné, protože útočník potřebuje těžební vybavení i správně „nastaveného“ obchodníka. Ale s tím, jak se kryptoměny častěji objevují v běžném životě, zaslouží si i tyto okrajové hrozby pozornost. Bitcoin wiki a bezpečnostní blogy jsou plné příkladů — často hypotetických, ale přehledně ukazují, jak by taková zneužití mohla dopadnout na nepozorné obchodníky přijímající zero-confirmation platby [Bitcoin Wiki]. A i jediná káva může znamenat rozdíl, že?
Nenechte to dojít daleko — jak na prevenci
Správné návyky vás ochrání lépe než nejnovější zařízení. Co opravdu funguje?
- Počkejte na potvrzení transakce: Jedno potvrzení je lepší než nic, šest je naprostá jistota. Bitcoin toto doporučení neuvádí bezdůvodně. S každým dalším potvrzením je menší šance, že vám někdo zruší prodej díky nově vytěženému bloku.
- Důvěřujte, ale ověřujte: Zero-confirmation je rychlé, ale pokud neprodáváte drobnosti za pár korun, větší riziko vám nestojí za to. Opravdu ne.
- Znát své nástroje: Pokud držíte kryptoměnu na Trezoru nebo Ledgeru, můžete být v klidu — vaše mince jsou v bezpečí. Ale obchodníci by měli používat pokladní systémy sledující zero-confirmation transakce a proškolit obsluhu, na co dávat pozor.
Samozřejmě, komplikací může přibýt — třeba pomalé připojení k síti nebo snaha obchodníka odbavit frontu co nejrychleji. Ale když vidíte, čeho je šikovný útočník schopný, proč riskovat zkratky?
Máte kvůli tomu spát neklidně?
Někteří tvrdí, že svět je jedna velká časovaná bomba plná rizik, ale většina lidí s Finneyho útokem nikdy nepřijde do kontaktu. Přesto je lepší být si vědom než žít v nevědomosti. Každý rok přibývá obchodníků, kteří přijímají kryptoměny, a ani tyto vzácné exploity nestojí za podcenění. Čím víc o tom víte, tím méně vás něco překvapí — i když je to jen malá hra jako tři karty u podvodného hráče [Bit2Me Academy].
Přehledná tabulka pro porovnání — protože kontext je důležitý
| Typ útoku | Jak funguje | Náročnost || ------------- | -------------------------------------------------------------------- | --------------------------------- || Finneyho útok | Těžař tajně vytěží blok, utratí ty samé mince dvakrát načasováním | Střední — potřebuje těžební výkon || Race attack | Pošle dvě transakce, doufá, že jeho bude zpracována dříve | Snadný — těžba není potřeba || 51% útok | Ovládne více než 50 % těžby, může přepisovat bloky | Velmi těžký — obrovský výkon |
Závěrem: zodpovědná práce s kryptem není paranoia, ale rozum
Krypto se vyvíjí pomalu, ale občas nám starý trik jako Finneyho útok připomene, proč je potřeba být ve střehu. Mějte své peněženky Ledger a Trezor po ruce, znalosti ještě blíž a doklady z KYC kavárny nejblíž. Uvědomte si, že síť (a vaše espresso) se dá důvěřovat jen do té míry, jak dobře dodržujete tyto návyky. A až vám příště někdo nabídne kávu za platbu bez potvrzení, možná ho poproste o chvilku strpení. Vaše bezpečí — stejně jako dobrá káva — stojí za to čekání.
Odkazy: Ledger Academy, Bitcoin Wiki, Bit2Me Academy, WeSecureApp Blog