… Et pour quelques bitcoins de plus : les attaques contre la blockchain & la puissance des pools (2/2)

Léo Denis
4 min readSep 9, 2017

--

Note : si vous ne l’avez pas encore fait, nous vous invitons à aller lire la première partie de cet article ici : https://medium.com/futurs-io/pour-une-poign%C3%A9e-de-bitcoins-la-validation-des-transactions-sur-une-blockchain-1-2-d740497d8108

Le principe même de la blockchain est que c’est un réseau décentralisé, fonctionnant sans autorité régulatrice. Par conséquent, le protocole se doit d’être robuste et capable de surmonter les différentes attaques auquel il devra faire face.

Les différente attaques possibles connues contre le protocole de validation des transactions : pourquoi la blockchain est-elle considérée sécurisée ?

Considérons les différents types d’attaques possibles contre le réseau pour montrer sa fiabilité :

  • Première attaque (la plus basique) : un agent malveillant émet deux transactions incompatibles (une double dépense par exemple) et parvient à fournir sa preuve de travail et donc valider le bloc les contenant. Ce type d’attaque est voué l’échec : lors de la vérification de la preuve de travail et du contenu du bloc, les noeuds décèleront l’anomalie, ce qui entraînera une invalidation du bloc et donc des transactions.
  • Deuxième attaque : un agent malveillant réalise une double dépense. Les deux transactions sont validées dans une bifurcation (une dans chaque nouvelle chaîne). Ainsi, une transaction sera à terme invalidée. En revanche, l’agent émetteur aura peut-être pu percevoir la contrepartie de cette transaction invalidée. Il est donc conseillé d’attendre environ 6 blocs après l’enregistrement du paiement avant d’envoyer la contrepartie.
  • Troisième attaque (la plus vicieuse, connue sous le nom d’attaque à 51%) : un agent malveillant possède plus de 50% de la puissance de calcul du réseau et émet une double transaction : à destination de A et de B. Elle attend que le réseau confirme la transaction vers A, puis se met à miner une branche qui débute juste avant le bloc nouvellement validé (ce qui est techniquement possible si elle ne met pas à jour sa copie avec le nouveau bloc) dans laquelle elle valide uniquement la transaction vers B. Sa branche deviendra ensuite inévitablement la plus longue puisqu’elle détient plus de 50% de la puissance de calcul du réseau. Ainsi elle validera la transaction vers B et invalidera celle vers A. A ne recevra donc pas de paiement. Encore une fois, c’est pour cela qu’il est conseillé d’attendre que 6 blocs soient minés après celui contenant sa transaction avant de considérer un paiement comme valide. On pourrait très bien imaginer que B est en réalité une autre adresse de l’agent malveillant, ainsi, il n’aura jamais payé A et gardera sa monnaie.

Il paraît en réalité irréalisable de détenir une puissance de calcul aussi conséquente, mais ce qui va suivre peut inquiéter.

Les pools & usines de minages : les superpuissances du bitcoin

Il a été dit dans l’article précédent qu’il était quasiment impossible pour des particuliers de réussir à miner un bloc de la blockchain Bitcoin.. Mais pourquoi ?

Tout simplement parce qu’en plus des usines à bitcoins qui réunissent une très grande puissance de calcul, il existe aussi ce qui est appelé des “pools”. Concrètement, ce sont des coopérations de mineurs. Les membres réunissent leur puissance de calcul afin d’augmenter leurs chances de coder un bloc. Chaque membre est ensuite rémunéré proportionnellement à la puissance de calcul qu’il a apporté.

Pour vous donner une idée, voici la répartition de la puissance de calcul entre les différentes pools au 24/07/2017 :

Il apparaît alors qu’une vingtaine de pools minent en réalité pour tout le réseau. Il suffirait donc que quelques pools s’allient pour pouvoir réaliser des attaques à 51%.

Cependant elles n’ont absolument aucun intérêt de le faire et de l’utiliser pour attaquer le réseau. Pourquoi ? Tout simplement car la confiance en la monnaie de tous les autres agents chuterait : tout le monde vendrait et le cours dégringolerait.

Si vous avez bien suivi, vous savez que la rémunération de ces organisations vient de la validation des blocs. Concrètement, ils sont payés en bitcoins : la valeur de leur rémunération dépend donc largement de son cours. On peut en revanche se demander s’il est possible pour eux de détenir une telle puissance de calcul de manière indolore, i.e. de la partitionner pour qu’elle ne soit pas visible aux yeux du grand public : à la manière des ventes massives d’actions en plusieurs paquets de 100 actions à travers différents portefeuilles.

Un peu comme eux.

--

--

Léo Denis

Étudiant en économie - Gestion à l’ENS Paris Saclay, blockchain-addict