Qu’est-ce que la double-dépense (double-spending) ?

Une fraude spécifique aux monnaies digitales

Un des problèmes qui se posait avec l’invention de la monnaie digitale est celui de la double-dépense. Avec la monnaie liquide (ou pour parler plus généralement, la monnaie fiduciaire), vous pouvez dupliquer, par exemple, un billet de banque. Ce faisant, vous créez un doublon, qui peut être utilisé. Vous pouvez créer une quantité indéfinie de doublon, ce qui aura pour effet d’augmenter le nombre de billets en circulation.

Avec les monnaies électroniques, cela est un peu différent. Une « pièce » digitale est en effet un agrégat de code. Elle porte en elle une signature qui permet de retracer l’historique de ses propriétaires. Ce que peut faire un fraudeur, ce n’est pas dupliquer la pièce mais le dépenser deux fois. Cela ne crée pas un doublon, mais permet tout autant d’utiliser plusieurs fois la valeur d’une seule pièce. Le fraudeur ne crée par alors deux bitcoins, mais fait croire à chacune des personnes auxquelles il a payé au moyen de cet unique bitcoin, qu’elle en est l’unique récipiendaire.

 

Une solution : chaque bitcoin est traçable

Bitcoin est le premier système décentralisé à proposer une solution efficace et durable à ce problème. La première partie de la solution consiste dans  à le fait que chaque bitcoin es unique – de même que chaque billet monétaire n’est imprimé qu’une seule fois mais peut circuler indéfiniment et être ré-utilisé, mais il ne peut pas être dupliqué et c’est pour cela qu’existent les numéros de série.

Chaque bitcoin possède donc un historique de transaction dans la blockchain, qui est le registre des comptes des bitcoins. Chaque transaction y est archivée et possède une datation qui l’identifie à jamais parmi toutes les autres. Il est ainsi impossible de contrefaire un bitcoin, puisque dès qu’un bitcoin est utilisé, il est archivé dans la blockchain et est écrit dans son code toutes les transactions dans lesquelles il a été utilisé.

En vérité il faut aussi dire que ce qui est signé, ce sont les « pièces » contenant de la valeur en bitcoins, ce que l’on appelle dans le jargon des unspent transaction outputs our UTXOs. Pour en savoir plus sur ce sujet, vous pouvez consulter ces pages :

Combien coûtent les frais de transfert ?

Qu’est-ce que le change ?

 

Une seconde solution : les clés privées

La seconde grande idée de Bitcoin est sa cryptographie, qui utilise à la fois des clés publiques et des clés privées. Ce système fait que la personne que l’on paie ne peut pas accepter notre transaction, à moins que nous l’ayons d’abord signée avec notre clé privée. Si quelqu’un essayait de dépenser deux fois le même bitcoin, il faudrait qu’il signe deux fois ce bitcoin, ce que son wallet Bitcoin ne le laissera pas faire.

C’est comme si vous rentriez chez vous, essayiez de rentrer votre clé dans votre serrure avant de vous rendre compte que cela ne marche pas parce que la porte est déjà ouverte : on ne peut pas ouvrir deux fois la même porte avec la même clé et cela signifie que quelqu’un est entré par effraction chez vous.

Néanmoins, l’imagination humaine n’a réellement pas de limite et des prodiges de l’informatique ont mis au point des stratagèmes fort ingénieux et dont la complexité technique ne nous permet pas de les développer dans le présent article. Tout ça pour dire qu’il demeure possible de frauder la blockchain via la double-dépense, quoique les instances de fraude réussie soient extrêmement rares dans l’histoire de Bitcoin et que pour y parvenir il faut se lever tôt. Vraiment tôt.

 

Pour les lecteurs maîtrisant l’anglais, vous trouverez de plus amples informations techniques sur le fonctionnement de la double-dépense ici : https://en.bitcoin.it/wiki/Irreversible_Transactions