Attaque de Double-spending est une utilisation réussie de mêmes fonds à deux fois. Bitcoin est protégé contre l'attaque de Double-spending grâce à vérification de chaque transaction, qui est ajoutée à la chaîne de blocs (Block chain), pour la plupart des fonds, contenus dans cette transaction, ne pas être dépensés auparavant.
Autres systèmes numériques empêchent les attaques de Double-spending avec l'aide de la source centrale autorisée qui suit certaines règles d'affaires pour l'autorisation de chaque transaction. Si on parle de Bitcoin il utilise un système décentralisé, où un grand nombre de nœuds, en suivant les mêmes règles, confirment la transaction sans nœud de contrôle.
Bitcoin est vulnérable aux attaques de Double-spending à étape initiale de recherche d'une transaction dans le réseau. Plus de confirmations de transactions, moins le risque qu'on l'utilisera pour la fraude.
Si la transaction n'a pas des confirmations, magasins et services qui acceptent le paiement peuvent être soumis à ce qu'on appelle "Race attaque". Par exemple, on crée deux transaction sur les mêmes fonds, puis elles sont envoyées aux différents magasins/services. Dans ce cas, juste l'un des magasins va recevoir des fonds - le magasin une transaction duquel sera première dans la chaîne de blocs.
Les magasins peuvent prendre de nombreuses précautions pour réduire le risque de ce type d'attaques, mais il est toujours bon de rappeler si vous acceptez les transactions sans aucune confirmation.
Un autre type d'attaque. Magasins ou services qui acceptent les transactions sans aucune confirmation y sont soumis. "Attaque de Finney" est une attaque qui exige la participation de l'expert de mining pour ajouter les transactions répétées dans le bloc. On n'exclure pas le risque de cette attaque sans tenue en compte n'importe quelles mesures de protection appliquées par magasins ou services, mais elle exige une participation d'un expert de mining et bon concours de circonstances. Elle coûte beaucoup d'argent et n'est pas une tâche triviale. Tout comme avec le type précédent d'attaque, magasin ou service doit analyser sérieusement sa politique concernant les transactions sans aucune confirmation.
On l'appelle aussi "attaque avec une confirmation". C'est une combinaison de 2 attaques précédentes, ce qui donne au malfaiteur une possibilité de dépenser les fonds de transaction avec juste une confirmation à deux fois.
Cette attaque est possible, même si le magasin ou le service attend plusieurs confirmations de transactions. Elle exige d'attaquant un matériel d'une performance assez haute (fréquence de hash) . Malfaiteur envoie une transaction dans le magasin, qui rétribue un produit/service, et continue à ce moment de chercher branchement de la chaîne de blocs (forque de la chaîne de bloc), qui comprend cette transaction. Après des certaines confirmations ce magasin envoie le produit. Si le malfaiteur a trouvé plus de blocs à proportion d'un nombre N à ce moment, il casse sa branche de la chaîne de blocs et récupérer son argent, mais si le malfaiteur n'a pas réussi à faire ça, l'attaque se considère manquée, et fonds se sont envoyés au magasin, comme il faut. Le succès de cette attaque dépend de la vitesse (fréquence de hash) d'attaquant et du nombre des confirmations pour le magasin/service. Par exemple, si l'attaquant possède 10% de la puissance de calcul (frequence de hash) du réseau Bitcoin et magasin pour une transaction réussie attend 6 confirmations, la probabilité de succès d'une telle attaque sera 0,1%.
Si le malfaiteur contrôle plus de 50% de la puissance du réseau Bitcoin, la probabilité de succès de l'attaque précédente sera 100%. En vertu du fait que malfaiteur peut générer les blocs plus souvent que la partie restante du réseau, il peut créer sa propre chaîne de blocs jusqu'à ce qu'elle soit plus longue que la partie "intègre" du réseau.