Les règles empiriques ne s'appliquent plus, les personnes effectuant des transactions importantes doivent évaluer en temps réel le risque de transaction en fonction de l'écosystème de minage actuel.

Écrit par : Jameson Lopp, Cypherpunk Cogitations

Compilation : aididiaojp.eth, Foresight News

Si vous avez déjà effectué des transactions sur le réseau Bitcoin, vous avez probablement réalisé qu'accepter des transactions non confirmées (également appelées zéro confirmation) est risqué. En l'absence de confirmation, les destinataires Bitcoin sont facilement exposés à des attaques de course, à des attaques Finney et à des attaques à 51%.

Lorsque vous avez au moins une confirmation de transaction, il n'est plus aussi facile d'être victime d'une attaque de course ou d'une attaque Finney. Maintenant, ce qui vous préoccupe, c'est l'attaque à 51%. Quelle est la règle empirique quant au nombre acceptable de confirmations ?

  • 1 confirmation : Suffisante pour des paiements de moins de 1 000 $.

  • 3 confirmations : Pour des montants de paiement entre 1 000 et 10 000 $, la plupart des bourses exigent 3 confirmations de dépôt.

  • 6 confirmations : Pour des paiements importants entre 10 000 et 1 million de dollars. Six confirmations sont considérées comme la norme de sécurité.

  • 10 confirmations : Recommandées pour des paiements de plus de 1 million de dollars.

Approfondir

Naturellement, Bitcoin n'est pas si simple, et ce que nous appelons la règle empirique des confirmations est basée sur des hypothèses dont nous ne parlons pas vraiment.

Par exemple, les seuils de confirmation des règles empiriques énumérées ci-dessus sont en réalité basés sur un attaquant ayant un taux de hachage mondial de 10%. Dans ce cas, 6 confirmations peuvent garantir à 99,99% que l'attaquant ne peut pas réécrire une quantité importante d'historique dans le réseau blockchain.

Cependant, ces calculs (disponibles dans le livre blanc) ont été réalisés bien avant l'essor des pools de minage et du minage industriel, à une époque où il était raisonnable de supposer qu'il serait difficile pour quiconque de détenir plus de 10% du taux de hachage mondial. Depuis 2011, de nombreux entités de production de blocs (pools de minage) sont apparues sur le réseau, accumulant bien plus de 10% du taux de hachage mondial. Au moment de la rédaction de cet article, il y a 5 de ces pools.

Quantification des risques en temps réel

Les pages 6 et 7 du livre blanc Bitcoin décrivent la méthode de calcul du risque pour qu'un attaquant réécrive la blockchain après un certain nombre de confirmations de transaction.

La compétition entre la chaîne honnête et la chaîne de l'attaquant peut être décrite comme une marche aléatoire binomiale. Un événement réussi est que la chaîne honnête est prolongée d'un bloc, augmentant son avance de 1, tandis qu'un événement échoué est que la chaîne de l'attaquant est prolongée d'un bloc, réduisant l'écart de 1. La probabilité que la chaîne de l'attaquant rattrape la chaîne honnête donnée est similaire au problème de la faillite du joueur. En termes simples : un joueur (attaquant) a une espérance de gains négative la plupart du temps, donc plus il joue ce jeu à espérance négative longtemps, moins il a de chances de devenir gagnant.

Étant donné que nous supposons qu'un attaquant a moins de 50% du taux de hachage du réseau, la probabilité que l'attaquant rattrape diminue de façon exponentielle avec l'augmentation du nombre de blocs qu'il doit rattraper. Plus le temps passe, moins cela est favorable pour l'attaquant ; s'il ne parvient pas à sprinter en avant à un moment opportun, ses chances deviennent infinitésimales à mesure qu'il prend du retard.

Pour déterminer la probabilité qu'un attaquant puisse réécrire la blockchain à partir de z blocs en amont, nous multiplions la densité de Poisson pour chaque quantité de progrès que l'attaquant peut faire par la probabilité qu'il puisse rattraper à ce point, où :

  • p = Probabilité qu'un mineur honnête trouve le prochain bloc

  • q = Probabilité qu'un attaquant trouve le prochain bloc

  • z = Nombre de blocs (confirmations) à reconstituer

  • lambda = z * (q / p)

  • k = Entier de 0 à z

Ce n'est pas une formule de calcul intéressante, donc cela semble être un bon choix pour les projets open source.

Calculateur de risque de confirmation

J'ai créé l'outil suivant, qui calculera dynamiquement le risque de reconstitution de la chaîne actuelle en fonction des pools de minage avec les estimations de taux de hachage les plus élevées (provenant des blocs minés). Bien sûr, vous pouvez remplacer ce paramètre par n'importe quel autre pourcentage de taux de hachage ainsi que par le nombre de confirmations nécessaires pour obtenir un score de risque.

Il est maintenant facile de voir que si nous voulons avoir 99,9% de probabilité que notre transaction ne soit pas double dépensée, pour les attaquants ayant un pourcentage donné de taux de hachage du réseau, le nombre de confirmations augmente considérablement à mesure que le taux de hachage de l'attaquant se rapproche de 50%.

Pourquoi cela vous préoccupe-t-il ?

Au moment de la rédaction de cet article, Foundry détient 36% du taux de hachage mondial, ce qui signifie que si vous acceptez des paiements après 3 confirmations, Foundry a encore 49% de chances de réécrire la blockchain et de lancer une attaque de double dépense.

Supposons qu'un attaquant ait 10% de taux de hachage, la règle empirique de 6 confirmations de blocs garantit que le double dépense ne se produira pas à 99,99%, alors qu'il faut maintenant 60 confirmations de transaction pour atteindre le même niveau de confiance.

En ce qui concerne la faisabilité de ce type d'attaque : les pools de minage n'ont certainement pas d'incitation à attaquer, car s'ils le faisaient, ils pourraient perdre une grande part de leur activité. Les mineurs sont généralement des détenteurs à long terme, peu enclins à nuire à la confiance des gens dans l'écosystème. Cependant, les pools de minage peuvent toujours présenter un point de défaillance unique, quelqu'un pourrait exploiter une vulnérabilité pour prendre le contrôle d'un pool de manière transitoire. Des situations similaires se sont déjà produites, comme cette attaque BGP, qui a redirigé une grande quantité de trafic de pool pour miner des devises pour l'attaquant.

Résumé

Bien que Bitcoin présente une robustesse et une stabilité dans certains aspects, il est très instable dans d'autres. Pour ceux qui effectuent des transactions importantes sur la blockchain Bitcoin, il est essentiel qu'ils prennent conscience qu'ils doivent ajuster leur évaluation des risques en fonction de l'état actuel de l'écosystème de minage.

Il est important de préciser que les points de vue ci-dessus concernant Foundry ne doivent pas être interprétés comme une menace imminente ou systémique pour l'intégrité du réseau Bitcoin. Au cours de la dernière décennie, nous avons observé des fluctuations dans le degré de centralisation des mineurs en raison de divers facteurs. Par exemple :

Je reste optimiste en pensant que les incitations qui poussent les mineurs industriels de Bitcoin sont rationnelles. Ils continueront à chercher des sources d'énergie bon marché, sous-utilisées et excédentaires, car l'énergie est essentielle pour une utilisation efficace à travers le monde. À long terme, je m'attends à ce que la distribution du taux de hachage des pools de minage devienne plus décentralisée. En plus de cela, il existe des améliorations techniques, comme Stratum V2, qui retire le pouvoir des opérateurs de pools et le remet entre les mains des individus.