ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Les fourches dans le réseau Bitcoin - Par : Yahya Shahsavari, Kaiwen Zhang, Chamseddine Talhi,

Les fourches dans le réseau Bitcoin


Yahya Shahsavari
Yahya Shahsavari Profil de l'auteur(e)
Yahya Shahsavari a obtenu une maîtrise en technologies de l’information et des communications de l’Université des sciences et technologies de l’Iran. Il poursuit actuellement ses études de doctorat à l’ÉTS, au laboratoire FUSÉE.
Laboratoires de recherche : FUSÉE 

Kaiwen Zhang
Kaiwen Zhang est professeur au Département de génie logiciel et informatique de l’ÉTS et le chef du laboratoire FUSÉE. Ses recherches portent notamment sur les chaînes de blocs et les systèmes de publication/abonnement,

Chamseddine Talhi
Chamseddine Talhi Profil de l'auteur(e)
Chamseddine Talhi est professeur au Département de génie logiciel et informatique de l’ÉTS. Ses recherches portent sur les solutions de sécurité d’ingénierie pour les environnements mobiles, IdO et nuagiques

Apparition de fourches dans le réseau bitcoin

Achetée sur Istock.com. Droits d’auteur.

RÉSUMÉ:

Le présent article décrit brièvement un modèle théorique servant à l’analyse des fourches dans le réseau Bitcoin. Ce modèle estime la probabilité qu’une fourche survienne dans un système selon différents paramètres comme la taille des blocs, la bande passante moyenne et le nombre moyen de connexions par nœud. Il peut servir aux chercheurs et aux mineurs de Bitcoin à prévoir et à comprendre la dynamique des incohérences dans le réseau. Il peut également aider à concevoir des systèmes de chaînes de blocs tolérant les incohérences.

Les fourches : une incohérence dans la chaîne de blocs

Un réseau de cryptomonnaie comme le Bitcoin peut subir certaines incohérences qui découlent de sa nature décentralisée. Par exemple, le Bitcoin est fondé sur un vaste réseau de pairs (peer-to-peer ou P2P) non structuré, sujet à des incohérences survenant sous forme de fourches lors de la propagation des blocs. Une fourche se produit quand différents nœuds renferment des données différentes dans leur copie de chaîne de blocs, alors que ces données devraient être les mêmes partout. Elle est représentée par un arbre de blocs dirigé. Ce concept est illustré à la figure 1, où deux ensembles différents de nœuds présentent des données différentes dans la chaîne de blocs. Dans ce cas, l’arbre dirigé contient deux branches distinctes. Les fourches sont causées par des délais de propagation ou une mauvaise connectivité entraînant des partitions de réseau. Dans cet article, nous faisons la distinction entre ces types de fourches et celles qui se produisent quand les mineurs s’écartent du protocole, ou lorsque des modifications au code ou au protocole créent un nouveau réseau indépendant.

Les fourches sont indésirables, car elles créent des incohérences entre les copies locales d’une chaîne de blocs, réduisant la fiabilité des réponses aux requêtes sur les données de la chaîne de blocs. Ainsi, l’apparition de fourches peut indiquer des incohérences dans les réseaux et ébranler la notion d’immutabilité des chaînes de blocs. Par conséquent, les utilisateurs doivent attendre un certain temps, habituellement mesuré en confirmations de blocs, pour être raisonnablement certains qu’une transaction est finalement entrée dans la chaîne de blocs. Dans le réseau Bitcoin actuel, les utilisateurs attendent généralement 6 confirmations, mais chaque utilisateur est libre de choisir son propre seuil.

Deux branches d’une fourche dans le réseau Bitcoin

Figure 1. Vue d’ensemble d’une fourche à deux branches concurrentes N_1 et N_2

Origines des fourches

En général, une fourche se produit dans l’un des cas suivants :

Isolement du réseau : Une mauvaise connexion entre les différents nœuds peut cloisonner le réseau temporairement. Ce cas peut se produire si certains liens très faibles causent un engorgement, ou s’il n’y a pas suffisamment de connexions réseau dans le système.

Changements dans les composants principaux du protocole de la chaîne de blocs : Toute modification des composants principaux du protocole (format d’un bloc ou d’une transaction valides), un problème de reciblage des fonctions, ou une mise à jour du logiciel de minage, peuvent créer une fourche dans le système. Les modifications incompatibles avec les versions précédentes (rétrocompatibilité) génèrent une fourche permanente, par opposition aux fourches rétrocompatibles.

Déviances des mineurs quant au protocole normalisé : La fourche la plus connue causée par les mineurs déviants est l’attaque en double dépense (ou attaque des 51 %). Autres exemples : la retenue temporaire (temporary withholding), le minage égoïste (selfish mining), la censure (feather forking), etc.

Délai de propagation du bloc : En pratique, deux ou plusieurs mineurs peuvent trouver un bloc valable presque simultanément. Une fourche se produit si un premier mineur n’a pas entièrement diffusé son bloc en raison d’un délai de propagation pendant qu’un deuxième mineur commence à propager son propre bloc (gossiping). Augmenter la taille du bloc pour inclure plus de transactions a pour effet d’accroître le délai de propagation, ce qui augmente le risque de produire une fourche.

Modèle théorique

Cet article, en prolongement de nos travaux précédents, propose un modèle théorique d’analyse des fourches dans les réseaux de chaînes de blocs, en particulier le Bitcoin. Notre modèle peut servir à prédire les retombées à long terme des changements proposés au Bitcoin et à évaluer la santé du réseau sur la base des fourches permanentes du code Bitcoin.

Nous avons estimé la probabilité de fourches par rapport à la taille des blocs et l’avons comparée à l’historique de données. Les résultats sont présentés à la figure 2. Nous avons réalisé cette expérience pour trois valeurs d’intervalle de temps entre les blocs. La probabilité de fourches augmente proportionnellement avec la taille du bloc. À noter également qu’une diminution du temps de traitement d’un bloc augmente la probabilité de fourches et vice versa. Par conséquent, les probabilités de fourches peuvent être diminuées en ajustant la difficulté de minage.

Incidence de fourches créées par la taille d’un bloc

Figure 2. Incidence de la taille du bloc sur la probabilité de fourche dans un réseau Bitcoin

Lors d’une autre expérience, nous avons estimé le poids des branches des fourches, c’est-à-dire le nombre de nœuds participants dans les différentes branches. Les nœuds d’une branche peuvent prendre connaissance d’une fourche s’ils reçoivent les paquets de données provenant d’autres branches. Dans le cas contraire, ils n’en auront pas conscience. Notre modèle a également servi à estimer le nombre de nœuds qui n’ont pas connaissance de l’existence de la fourche.

Conclusion

Dans cet article, nous avons présenté un modèle analytique servant à estimer la probabilité de fourches apparaissant dans le réseau Bitcoin au moyen d’un graphique aléatoire pour modéliser le réseau de superposition Bitcoin, et des vagues de diffusion pour modéliser le protocole de propagation des blocs de données. Nous avons étudié l’effet de plusieurs paramètres de la chaîne de blocs et du réseau sur les probabilités de fourche. Nos résultats ont démontré que la réduction du temps de traitement du bloc compromet la sécurité de la chaîne de blocs en augmentant la probabilité de fourche.

Information supplémentaire

Pour plus d’information sur cette recherche, consulter l’article de conférence suivant : Shahsavari, Y. ; Zhang, K. ; Talhi, C. 2019. « A theoretical model for fork analysis in the Bitcoin network ». IEEE BLOCKCHAIN. Atlanta, USA.

Yahya Shahsavari

Profil de l'auteur(e)

Yahya Shahsavari a obtenu une maîtrise en technologies de l’information et des communications de l’Université des sciences et technologies de l’Iran. Il poursuit actuellement ses études de doctorat à l’ÉTS, au laboratoire FUSÉE.

Programme : Génie des technologies de l'information 

Laboratoires de recherche : FUSÉE 

Profil de l'auteur(e)

Kaiwen Zhang

Profil de l'auteur(e)

Kaiwen Zhang est professeur au Département de génie logiciel et informatique de l’ÉTS et le chef du laboratoire FUSÉE. Ses recherches portent notamment sur les chaînes de blocs et les systèmes de publication/abonnement,

Programme : Génie des technologies de l'information  Génie logiciel 

Laboratoires de recherche : FUSÉE- Fast Unified Scalable Event processing Event messaging 

Profil de l'auteur(e)

Chamseddine Talhi

Profil de l'auteur(e)

Chamseddine Talhi est professeur au Département de génie logiciel et informatique de l’ÉTS. Ses recherches portent sur les solutions de sécurité d’ingénierie pour les environnements mobiles, IdO et nuagiques

Programme : Génie logiciel  Génie des technologies de l'information 

Laboratoires de recherche : LASI – Laboratoire en architecture de systèmes informatiques 

Profil de l'auteur(e)


Laboratoires de recherche :

FUSÉE 

Domaines d'expertise :

Technologie de chaîne de blocs