Ce este un atac Finney?
Un atac Finney are loc atunci când un miner pregătește în secret un bloc care trimite monedele înapoi către el, apoi plătește un comerciant cu aceleași monede, folosind o tranzacție neconfirmată. Dacă comerciantul predă marfa înainte să sosească o confirmare, minerul publică blocul pregătit, anulând plata. E ca și cum ai arăta la casă un transfer în așteptare, apoi ai face banca să-l anuleze.
Mulți cred că un atac Finney necesită controlul majorității rețelei. Nu este așa. Acela este un atac de 51%, cu totul altă poveste. Pentru un atac Finney este suficient ca un singur miner să găsească un bloc în secret, apoi să facă o achiziție înainte de a-l publica.
Cum funcționează un atac Finney
Iată cum se desfășoară, pe scurt. Un miner include într-un bloc o plată către sine, îl ține secret, apoi cheltuiește aceleași monede la un comerciant care acceptă plăți neconfirmate. După ce pleacă cu marfa, publică blocul secret, anulând vânzarea.
- Pregătire: Atacatorul participă la minare, așa că poate găsi blocuri și alege ce includ acestea.
- În secret: Minează în secret un bloc care trimite monedele înapoi către el. Șansa de a găsi acel bloc depinde de hash rate-ul rețelei și de noroc.
- Cheltuire: La casă, plătește comerciantului cu aceleași monede, folosind o tranzacție neconfirmată.
- Acceptare: Dacă comerciantul predă marfa înainte de orice confirmare, atacatorul își publică blocul secret.
- Reorganizare: Rețeaua acceptă blocul secret, confirmă plata către sine, iar plata comerciantului dispare. Atacatorul păstrează atât monedele, cât și marfa.
Rapid, șiret și posibil doar dacă sunt acceptate plăți cu zero confirmări.
De ce contează atacul Finney
Așadar, ce ar trebui să reții?
- Beneficiu: Dacă știi că există, poți evita ca escrocii să plece cu marfa fără să plătească și să rămâi tu fără bani.
- Perspectivă: Este o formă țintită de cheltuire dublă, care profită de nerăbdarea de la punctul de vânzare.
- Relevanță: Vei întâlni discuții despre acest atac în contextul plăților crypto în magazine, al tranzacțiilor față în față și al marketplace-urilor care acceptă tranzacții neconfirmate.
Pentru orice lucru pe care ți-ar părea rău să-l pierzi, așteaptă cel puțin o confirmare sau folosește un serviciu escrow ori o plată de tip Lightning. Plățile cu zero confirmări sunt acceptabile pentru achiziții mici, dar stabilește limite și instruiește personalul să nu se grăbească niciodată să apese pe ecran.
Caracteristicile principale ale atacului Finney
Odată ce le cunoști, trăsăturile distinctive sunt ușor de recunoscut:
- Preîncărcare: Un bloc privat include o plată către sine înainte ca achiziția din magazin să aibă loc.
- Miner: Funcționează doar dacă atacatorul poate mina un bloc, nu pentru oricine are un wallet.
- Momentul: Fereastra de oportunitate este scurtă, între vânzare și publicarea acelui bloc privat.
- Țintă: Comercianți sau contrapărți care acceptă tranzacții neconfirmate.
- Anvergură: Nu necesită controlul majorității; este un truc de precizie.
Variante
Alte tehnici similare despre care ai putea auzi, plus o confuzie frecventă:
- Race: Atacatorul publică două plăți incompatibile și speră ca plata comerciantului să fie prima, apoi să fie anulată când cealaltă este confirmată.
- Vector76: O combinație de creare a unui bloc privat și cursă în rețea, de obicei împotriva exchange-urilor sau a vânzătorilor mari.
- Preminare: Nu este același lucru cu preminarea monedelor, care se referă la alocarea ofertei înainte de lansare.
- Instrumente: Unii atacatori îl automatizează prin scripturi, ca pe un exploit, publicând blocul în momentul în care vânzarea este finalizată.
Confirmările există cu un motiv. Dacă accepți o plată neconfirmată de la un necunoscut, un atac Finney te poate pândi, mai ales dacă pare prea nerăbdător să apeși chiar acum pe confirmare.
Exemplu
Un mic magazin de electronice acceptă o plată cu zero confirmări pentru un laptop, cumpărătorul pleacă, apoi apare un bloc minat în secret, care anulează vânzarea — scenariul clasic al unui atac Finney.
Curiozitate
Atacul poartă numele lui Hal Finney, o legendă din primele zile ale Bitcoin și destinatarul primei tranzacții de la Satoshi. El a scris despre acest truc tocmai pentru a explica de ce este important să aștepți confirmările.
Pe scurt
Dacă reții un singur lucru, reține-l pe acesta: atacul Finney funcționează doar atunci când ai încredere într-o plată neconfirmată.