Mi az a Finney-támadás?
Finney-támadásról akkor beszélünk, amikor egy bányász titokban előkészít egy blokkot, amelyben saját magának utalja vissza az érméket, majd ugyanezekkel az érmékkel fizet egy kereskedőnek egy még meg nem erősített tranzakcióval. Ha a kereskedő átadja az árut, mielőtt megérkezne a megerősítés, a bányász közzéteszi az előkészített blokkot, ezzel érvénytelenítve a fizetést. Olyan, mintha a pénztárnál felmutatnál egy függőben lévő utalást, aztán a bank visszavonná.
Sokan azt feltételezik, hogy a Finney-támadáshoz a hálózat többsége feletti irányítás szükséges. Ez nem igaz. Az egy 51%-os támadás, ami egészen más. A Finney-támadáshoz elég egyetlen bányász, aki titokban talál egy blokkot, majd időzíti a vásárlást, mielőtt közzétenné azt.
Hogyan működik a Finney-támadás?
Így zajlik a támadás, kertelés nélkül. A bányász saját magának szóló fizetést helyez el egy blokkban, titokban tartja a blokkot, majd ugyanazokkal az érmékkel fizet egy olyan eladónak, aki elfogadja a meg nem erősített tranzakciókat. Miután megszerezte az árut, közzéteszi a titkos blokkot, amivel érvényteleníti az adásvételt.
- Előkészület: A támadó részt vesz a bányászatban, így találhat blokkokat, és megválaszthatja, mi kerüljön beléjük.
- Titokban tartás: Titokban kibányászik egy blokkot, amelyben visszautalja magának az érméket. A blokk megtalálásának esélye a hálózat hashrátájától és a szerencsétől függ.
- Fizetés: Ugyanezekkel az érmékkel fizet a kereskedőnek a pénztárnál, egy még meg nem erősített tranzakcióval.
- Elfogadás: Ha a kereskedő átadja az árut, mielőtt bármilyen megerősítés érkezne, a támadó közzéteszi a titkos blokkját.
- Láncátrendeződés: A hálózat elfogadja a titkos blokkot, megerősíti a saját magának indított fizetést, a kereskedőnek küldött fizetés pedig eltűnik. A támadó megtartja az érméket és az árut is.
Gyors, sunyi, és csak akkor működik, ha nulla megerősítéssel is elfogadnak fizetést.
Miért fontos a Finney-támadás?
Mit érdemes tehát megjegyezned?
- Előny: Ha tudsz a támadás létezéséről, elkerülheted, hogy csalók ingyen árut szerezzenek, te pedig pénz nélkül maradj.
- Nézőpont: A dupla költés célzott formája, amely a fizetéskor tapasztalható türelmetlenséget használja ki.
- Jelentőség: Kiskereskedelmi kriptófizetések, személyes tranzakciók és meg nem erősített tranzakciókat elfogadó piacterek kapcsán találkozhatsz vele.
Ha olyan dologért fizetsz, amelynek elvesztése fájna, várj legalább egy megerősítésre, vagy használj letéti szolgáltatást, illetve Lightning-típusú fizetést. Apró vásárlásoknál elfogadható a nulla megerősítés, de szabj korlátokat, és tanítsd meg a munkatársaknak, hogy ne siessenek a képernyő megérintésével.
A Finney-támadás fő jellemzői
Ha ismered őket, a támadás jellegzetességei könnyen felismerhetők:
- Előzetes blokk: Egy titkos blokk még az üzletbeli vásárlás előtt tartalmazza a támadó saját magának szóló fizetését.
- Bányász: Csak akkor működik, ha a támadó ki tud bányászni egy blokkot; egy tárcával rendelkező felhasználó ehhez nem elég.
- Időzítés: Rövid időablak áll rendelkezésre az adásvétel és a titkos blokk közzététele között.
- Célpont: Olyan kereskedők vagy partnerek, akik meg nem erősített tranzakciókat is elfogadnak.
- Hatókör: Nem szükséges hozzá a hálózat többsége feletti irányítás; célzott trükkről van szó.
Változatok
Néhány kapcsolódó módszer, amiről hallhatsz, valamint egy gyakori félreértés:
- Versenyfutás: A támadó két egymásnak ellentmondó fizetést tesz közzé, és abban bízik, hogy először a kereskedőnek szóló érkezik meg, majd az veszít, amikor a másik megerősítést kap.
- Vector76: Olyan kombinált módszer, amely a titkos blokk létrehozását hálózati versenyfutással ötvözi; jellemzően tőzsdék vagy nagyobb eladók ellen vetik be.
- Előbányászat: Nem azonos az érmék előbányászatával, ami a kínálat indulás előtti elosztását jelenti.
- Eszközök: Egyes támadók exploitként automatizálják, például szkriptekkel, amelyek az adásvétel lezárultakor azonnal közzéteszik a blokkot.
A megerősítéseknek megvan az okuk. Ha egy vadidegentől érkező, még meg nem erősített fizetést fogadsz el, számolnod kell a Finney-támadás lehetőségével – különösen, ha a másik fél túlságosan sürget, hogy azonnal nyomd meg a megerősítés gombot.
Példa
Egy kisebb elektronikai üzlet nulla megerősítésű fizetést fogad el egy laptopért. A vevő távozik, majd megjelenik egy titokban kibányászott blokk, amely érvényteleníti az adásvételt: ez a klasszikus Finney-támadás.
Érdekesség
A támadás Hal Finneyről kapta a nevét, aki a Bitcoin korai legendás alakja volt, és ő kapta Satoshitól az első tranzakciót. Pontosan erről a trükkről írt, hogy megmagyarázza, miért fontos megvárni a megerősítéseket.
Összefoglalás
Ha csak egy dolgot jegyzel meg, ez legyen az: a Finney-támadás csak akkor működik, ha megbízol egy még meg nem erősített fizetésben.