Vad är Transaction Replacement Attack?
En Transaction Replacement Attack är när någon skickar en kryptobetaling och snabbt sänder ut en annan version av samma transaktion med ändrade uppgifter innan den bekräftas. Syftet är att lura den som tar emot den första väntande betalningen. Tänk dig att lova kontanter i kassan och sedan rusa tillbaka för att byta sedlar medan kassören tittar bort.
Om en transaktion visas som väntande är det säkert att betrakta som betald. Inte helt. Tills en miner inkluderar den i ett block kan byten fortfarande ske och en Transaction Replacement Attack kan ändra resultatet.
Hur Transaction Replacement Attack fungerar
En snabb genomgång med en enkel kassasituation i åtanke.
- Step 1: En angripare skickar dig en betalning med låg avgift. Du ser den som väntande och känner dig trygg med det.
- Step 2: Innan bekräftelse konstruerar angriparen en ny transaktion som spenderar samma medel, ofta via Replace by Fee (RBF) eller genom att skicka om med samma nonce på kontobaserade kedjor.
- Step 3: Ersättningen erbjuder en högre avgift och är mer attraktiv för miners, så den bryts medan den första versionen släpps.
- Step 4: Detta är lättare vid kraftig network congestion när miners prioriterar högre avgifter.
- Step 5: Du levererar produkten eller tjänsten baserat på en väntande betalning och blir obetald när kedjan bekräftar ersättningen.
Det är greppet. Enkelt, lite lurigt och går att förebygga.
Varför Transaction Replacement Attack är viktig
Här är varför du bör bry dig, oavsett om du driver en kassa eller bara flyttar mynt till en vän.
- Fördel: Ersättningsmekanismer låter ärliga användare snabba upp fastnade betalningar genom att höja avgiften, vilket är praktiskt när du behöver snabb bekräftelse.
- Perspektiv: Samma verktyg som hjälper dig kan också användas mot dig om du litar på en väntande betalning för varor eller åtkomst.
- Relevans: Du kommer att stöta på detta i kassalösningar, NFT-mintningar, OTC-affärer och överallt där man accepterar väntande transaktioner.
Använd en cryptocurrency wallet som tydligt markerar transaktioner som kan ersättas och visar antal bekräftelser. För betalningar, kräv några bekräftelser innan du lämnar över något av värde.
Viktiga kännetecken för Transaction Replacement Attack
Vad som skiljer detta åt, i klartext:
- Tid: Det sker före bekräftelse, medan transaktionen fortfarande flyter i mempoolen.
- Incitament: En högre avgift eller bättre villkor lockar miners eller validatorer att inkludera ersättningen istället för originalet.
- Signaler: Vissa transaktioner markeras som ersättningsbara, och kontobaserade kedjor tillåter ersättningar med samma nonce.
- Mål: Handlare eller motparter som accepterar väntande betalningar är den svaga punkten.
Variationer
Samma tema, något olika mekaniker beroende på kedja.
- RBF: En avsändare markerar en betalning som ersättningsbar och sänder senare en version med högre avgift som ändrar utgång eller mottagare.
- Nonce swap: På kontobaserade kedjor skickar en användare om en transaktion med samma nonce men högre gas, vilket avbryter eller ändrar den tidigare avsikten.
- Refund trick: En avsändare betalar först en handlare, och ersätter sedan den väntande betalningen med en som skickar medlen tillbaka till en adress de kontrollerar.
Behandla inte en betalning som slutgiltig förrän din nod markerar transaction as settled. En Transaction Replacement Attack tappar kraft efter tillräckliga bekräftelser.
Exempel
Ett café accepterar en väntande betalning för en latte, köparen sänder omedelbart en ersättningsversion med högre avgift som skickar pengarna någon annanstans, och baristan inser senare att köparen höll på att exploiting ersättningsbarheten.
Rolig fakta
Avgiftshöjning infördes för att hjälpa ärliga användare att rädda fastnade transaktioner, långt innan det blev ett skämt för trick. Som många tekniska lösningar är det Rolex möter Reddittrådar beroende på vem som håller nycklarna.
Sammanfattning
Kort version: skicka inte varor baserat på ett kanske. Vänta ett eller två block, och slappna sedan av.
