Wat is Race Attack?
Een Race Attack is wanneer iemand bijna gelijktijdig twee conflicterende cryptotransacties uitzendt, in de hoop dat de verkeerde als eerste wordt geaccepteerd. Het is een klassieke zet tegen handelaren die zero conf betalingen aannemen. Zie het als het versturen van twee cheques vanaf dezelfde rekening en inzetten dat de kassamedewerker degene verwerkt die jij wilt.
“Race Attack needs Replace by Fee.” Niet helemaal. Hoewel RBF verwant is, kan een Race Attack plaatsvinden zelfs zonder expliciete vervangingsregels, daarom is het anders dan een Transaction Replacement Attack.
Hoe Race Attack werkt
Stel je iemand voor die aan de kassa met crypto betaalt. Ze willen de koffie en tegelijk hun munten behouden. Dit is hoe het gaat.
- Stap 1: De aanvaller maakt twee transacties aan die dezelfde munten besteden, maar naar verschillende ontvangers.
- Stap 2: Ze sturen er één naar de handelaar en zenden tegelijkertijd de andere naar verschillende nodes in de hoop dat die sneller wordt verspreid.
- Stap 3: De handelaar ziet de eerste binnenkomen, beschouwt het als betaald en geeft de goederen af.
- Stap 4: Miners bevestigen één van de conflicterende transacties. De andere wordt door het netwerk afgewezen zodra een blok wordt gevonden.
- Stap 5: Als de bevestigde versie die van de aanvaller is, blijft de handelaar zonder betaling achter en heeft hij een les geleerd.
Ja, het is zo simpel en ja, timing is de truc.
Waarom Race Attack belangrijk is
Wat als iemand dit probeert?
- Voordeel: Kennis van een Race Attack stelt je in staat om verstandige betalingsregels te hanteren, zodat je geen goederen afgeeft voor een belofte die niet wordt afgerond.
- Perspectief: Het is een variant van een bredere Double Spending Attack, maar het vereist geen dure apparatuur of grote middelen.
- Relevantie: Je komt dit tegen bij point of sale wallets, e-commerce en elke dienst die zero conf betalingen overweegt.
Als je iets verkoopt dat wordt verzonden of echte waarde heeft, wacht dan op één of meer transaction confirmations voordat je levert. Voor kleine aankopen in persoon, stel limieten in en gebruik wallets die conflicten aangeven.
Belangrijkste kenmerken van Race Attack
Wat een Race Attack onderscheidt:
- Direct: Het speelt zich af voordat de eerste blokbevestiging plaatsvindt.
- Conflicterend: Twee transacties besteden dezelfde inputs, maar slechts één kan worden bevestigd.
- Snelheid: Verspreiding en selectie door miners bepalen de winnaar, niet dure hardware.
- Verschillend: Het heeft geen 51% attacks of controle over mining nodig.
Varianten
Race Attack heeft enkele varianten die je kunt tegenkomen:
- Klassiek: Twee conflicterende transacties worden bijna gelijktijdig uitgezonden.
- Finney: Een miner premijnt een blok met een uitgave, betaalt vervolgens een handelaar en publiceert daarna het blok.
- Vector76: Combineert elementen van vooraf gemijnde blokken en timing om beurzen te misleiden.
- RBF: Zelfde doel maar steunt op op fees gebaseerde vervangingsregels in plaats van een zuivere propagatiewedloop.
Netwerktopologie doet ertoe. Aanvallers kunnen hun kansen vergroten als ze veel peers of valse identiteiten controleren, daarom komen Sybil attacks vaak ter sprake bij verdedigingen tegen Race Attack.
Voorbeeld
Een oplichter betaalt een kiosk met een zero conf overboeking, racet vervolgens een conflicterende transactie naar miners en wint, waardoor de kiosk onbetaald achterblijft, ook al stond er kort 'betaald' op het scherm.
Leuk weetje
Race Attack werd besproken in de vroegste Bitcoinforums, en Satoshi's ouderwetse advies om op meerdere bevestigingen te wachten is nog steeds het aanbevolen advies. Rolex ontmoet Reddit threads.
Samenvatting
In één zin: een Race Attack is een timingzet tegen zero conf, dus wacht even en het is snel voorbij.
