Qu'est-ce que Finney Attack?
Un Finney Attack se produit lorsqu'un mineur prépare en silence un bloc qui envoie des pièces vers lui-même, puis paie un commerçant avec ces mêmes pièces via une transaction non confirmée. Si le commerçant remet la marchandise avant l'arrivée d'une confirmation, le mineur publie son bloc préparé, annulant le paiement. Pensez-y comme à montrer un virement en attente à la caisse, puis voir la banque faire marche arrière.
Beaucoup pensent qu'un Finney Attack nécessite le contrôle de la majorité du réseau. Ce n'est pas le cas. C'est une 51% attack, qui est une autre affaire. Un Finney Attack n'a besoin que d'un seul mineur pour trouver un bloc en privé, puis synchroniser un achat avant de publier ce bloc.
Comment fonctionne Finney Attack
Voici le procédé, simplement. Un mineur prépare un paiement vers lui-même dans un bloc, le garde privé, puis dépense ces mêmes pièces chez un vendeur qui accepte des paiements non confirmés. Après être parti avec la marchandise, il publie le bloc privé, ce qui annule la vente.
- Installation: L'attaquant participe au mining, il peut donc trouver des blocs et choisir ce qu'ils contiennent.
- Privé: Il mine un bloc en secret qui renvoie les pièces au mineur. La probabilité de trouver ce bloc dépend des hash rates du réseau et de la chance.
- Dépense: Il paie un commerçant avec ces mêmes pièces via une transaction non confirmée au comptoir.
- Acceptation: Si le commerçant remet la marchandise avant toute confirmation, l'attaquant diffuse son bloc privé.
- Réorganisation: Le réseau accepte le bloc privé, confirme le paiement vers le mineur, et le paiement du commerçant disparaît. L'attaquant conserve à la fois les pièces et la marchandise.
Rapide, furtif, et ne fonctionne que lorsque l'on accepte des paiements sans confirmation.
Pourquoi Finney Attack est important
Que retenir de tout cela ?
- Avantage: Savoir qu'il existe permet d'éviter de livrer des biens gratuitement à des escrocs et de perdre des fonds.
- Perspective: C'est une forme ciblée de double spending, et elle profite de l'impatience au point de vente.
- Pertinence: Vous en entendrez parler dans les paiements crypto en boutique, les échanges en personne et les places de marché qui acceptent des transactions non confirmées.
Pour tout ce qui serait douloureux à perdre, attendez au moins une confirmation ou utilisez un dépôt de garantie ou un paiement de type lightning. Accepter des paiements sans confirmation est acceptable pour de très petits achats, mais fixez des limites et formez le personnel à ne jamais précipiter l'appui sur le bouton de confirmation.
Caractéristiques clés de Finney Attack
Les traits distinctifs sont assez reconnaissables une fois qu'on les connaît :
- Préchargement: Un bloc privé contient un paiement vers le mineur avant l'achat en magasin.
- Mineur: Ne fonctionne que si l'attaquant peut miner un bloc, pas n'importe quel détenteur de portefeuille.
- Synchronisation: La fenêtre est courte, entre la vente et la diffusion du bloc privé.
- Cible: Commerçants ou pairs qui acceptent des transactions non confirmées.
- Portée: Cela ne requiert pas le contrôle de la majorité, c'est une manœuvre chirurgicale.
Variations
Mouvements connexes dont vous entendrez parler, plus une confusion fréquente :
- Course: L'attaquant diffuse deux paiements conflictuels et espère que celui du commerçant passe en premier, puis perde lorsque l'autre est confirmé.
- Vector76: Un mélange qui combine la construction de blocs privés avec une course sur le réseau, généralement contre des échanges ou de gros vendeurs.
- Premine: Ce n'est pas la même chose que le pre mining de pièces, qui renvoie à l'allocation d'offre avant le lancement.
- Outils: Certains attaquants automatisent cela comme un exploit, programmant la publication du bloc dès que la vente est validée.
Les confirmations existent pour une raison. Si vous acceptez un paiement non confirmé d'un parfait inconnu, un Finney Attack est possible, surtout s'il insiste trop pour que vous validiez immédiatement.
Exemple
Une petite boutique d'électronique accepte un paiement sans confirmation pour un ordinateur portable, l'acheteur part, puis un bloc miné en privé apparaît et annule la vente, classique scénario de Finney Attack.
Anecdote
Il porte le nom de Hal Finney, pionnier de Bitcoin et destinataire de la première transaction de Satoshi. Il a écrit sur cette astuce pour expliquer pourquoi attendre des confirmations est important.
Conclusion
Si vous ne retenez qu'une chose, retenez ceci : Finney Attack frappe uniquement quand vous faites confiance à un paiement non confirmé.
