Vad är Finney Attack?
En Finney Attack är när en miner tyst förbereder ett block som skickar mynt tillbaka till sig själv, och sedan betalar en handlare med samma mynt via en obekräftad transaktion. Om handlaren lämnar över varorna innan en bekräftelse kommer, publicerar minern sitt förberedda block, vilket ogiltigförklarar betalningen. Tänk på det som att visa en väntande överföring i kassan och sedan få banken att spola tillbaka den.
Folk antar ofta att en Finney Attack kräver majoritetskontroll över nätverket. Det gör den inte. Det är en 51% attack, vilket är något annat. En Finney Attack kräver bara att en enskild miner hittar ett block i hemlighet och planerar ett köp i rätt ögonblick innan blocket publiceras.
Hur Finney Attack fungerar
Så här går det till, rakt upp och ner. En miner lägger in en självbetalning i ett block, håller det privat, och spenderar sedan samma mynt hos en säljare som accepterar obekräftade betalningar. Efter att ha lämnat butiken publicerar de det privata blocket, vilket avbryter köpet.
- Förberedelse: Angriparen är del av mining, så de kan hitta block och välja vad som ingår.
- Privat: De miner i hemlighet ett block som skickar mynten tillbaka till dem själva. Sannolikheten att hitta det blocket beror på nätverkets hash rates och tur.
- Betala: De betalar en handlare med samma mynt via en obekräftad transaktion i kassan.
- Acceptera: Om handlaren lämnar över varorna innan någon bekräftelse kommer, sänder angriparen ut sitt privata block.
- Omorganisation: Nätverket accepterar det privata blocket, bekräftar självbetalningen och handlarens betalning försvinner. Angriparen behåller både mynt och varor.
Snabbt, smygande, och fungerar endast när nollbekräftelser accepteras.
Varför Finney Attack är viktigt
Vad bör du ta med dig från detta?
- Fördel: Att veta att den finns hjälper dig att undvika att bedragare får varor gratis och att du mister pengar.
- Perspektiv: Det är en riktad form av double spending, och det utnyttjar otålighet vid punkt för försäljning.
- Relevans: Du kommer se det diskuteras i detaljhandelsbetalningar med krypto, personliga byten och marknadsplatser som accepterar obekräftade transaktioner.
För allt som vore dyrt att förlora, vänta minst en bekräftelse eller använd en escrowtjänst eller en Lightning-betalning. Nollbekräftelse är okej för mycket småköp, men sätt gränser och utbilda personal att aldrig rusa igenom den där bekräftelsen.
Kännetecken för Finney Attack
Kännetecknen är ganska lättigenkännliga när du känner till dem:
- Förladdning: Ett privat block innehåller en självbetalning innan butiksköpet genomförs.
- Miner: Fungerar bara om angriparen kan mina ett block, inte vem som helst med en plånbok.
- Tidpunkt: Tidsfönstret är kort, mellan försäljningen och publiceringen av det privata blocket.
- Mål: Handlare eller motparter som accepterar obekräftade transaktioner.
- Omfattning: Det kräver inte majoritetskontroll, det är en riktad metod.
Variationer
Relaterade metoder du kan höra talas om och en vanlig förväxling:
- Kapplöpning: Angriparen sänder ut två konfliktande betalningar och hoppas att handlarens transaktion vinner först, men sedan förlorar när den andra blir bekräftad.
- Vector76: En blandning som kombinerar privat blockbyggnad med en nätverkskapplöpning, vanligtvis riktad mot börser eller stora säljare.
- Premine: Inte samma som pre mining mynt, vilket avser att allokera utbud innan lansering.
- Verktyg: Vissa angripare skapar skript som ett exploit, som automatiserar blockpubliceringen i samma ögonblick som försäljningen godkänns.
Bekräftelser finns av en anledning. Om du accepterar en obekräftad betalning från en främling är en Finney Attack en möjlighet, särskilt om personen verkar för angelägen att du ska trycka på bekräfta nu.
Exempel
En liten elektronikbutik accepterar en nollbekräftelsebetalning för en laptop, köparen lämnar, och sedan dyker ett privat minerat block upp som ogiltigförklarar försäljningen. Det är ett klassiskt exempel på en Finney Attack.
Kul fakta
Den är uppkallad efter Hal Finney, en tidig Bitcoinprofil och mottagare av den första transaktionen från Satoshi. Han skrev om just detta trick för att förklara varför det är viktigt att vänta på bekräftelser.
Sammanfattning
Om du kommer ihåg en sak, kom ihåg detta: Finney Attack stämmer bara när du litar på en obekräftad betalning.
