ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Modélisation des performances du réseau Bitcoin - Par : Yahya Shahsavari, Kaiwen Zhang, Chamseddine Talhi,

Modélisation des performances du réseau Bitcoin


Cet article s’est mérité le prix du Best Paper Award à la 1re conférence internationale de l’IEEE portant sur les applications et les infrastructures décentralisées (DAPPCON 2019).

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

Le réseau Bitcoin

L’image d’en-tête a été achetée sur Istock.com et est protégée par des droits d’auteur.

RÉSUMÉ:

Nous vous présentons ici un modèle théorique du réseau Bitcoin pour aider à comprendre l’impact de paramètres importants (volume des blocs, nombre de connexions dans un nœud) sur les performances du système comme, par exemple, le temps nécessaire à la propagation complète de nouvelles informations dans le réseau. Ce modèle permet aux chercheurs de mieux saisir les fonctions de Bitcoin et d’en prévoir la réaction si des modifications sont apportées à la configuration du réseau. Il peut également servir à concevoir de meilleurs réseaux de chaines de blocs pour des applications autres que Bitcoin.

Introduction

Dans le monde universitaire et l’industrie, une attention croissante est accordée à la technologie émergente qu’est la chaîne de blocs ou le blockchain,: cryptomonnaie, applications décentralisées (stockage en nuage) et utilisation généralisée dans des cas précis (IdO, soins de santé, droit et application de la loi). Bien qu’elle a le potentiel d’être une technologie de rupture, les systèmes de chaînes de blocs présentent toutefois des problèmes majeurs de performance, limitant leur adoption généralisée par rapport à d’autres solutions de gestion de données. Par conséquent, les développeurs de chaînes de blocs doivent choisir la technologie de registre distribué (DLT« registre simultanément enregistré et synchronisé sur un réseau d’ordinateurs (…) Un registre distribué n’a ni administrateur central ni stockage de données centralisé. » Ref. Wikipedia. https://fr.wikipedia.org/wiki/Registre_distribué) appropriée et en optimiser les performances à l’intérieur d’une application et d’une infrastructure déterminées. Pour aider les architectes de chaînes de blocs dans ce processus de conception, il est nécessaire d’analyser ces réseaux du point de vue théorique afin de prévoir et de comparer les performances de différents concepts.

Un modèle théorique aidera les concepteurs à mieux comprendre la dynamique et les caractéristiques sous-jacentes de la chaîne de blocs ayant une incidence sur ses performances. Un modèle théorique peut également accélérer le développement d’un système de ce type en produisant rapidement un concept initial théoriquement optimal, ce qui est préférable à un concept incrémental découlant d’une longue évaluation de performance itérative.

Bien que la portée de cet article (et donc son contexte) soit limitée au Bitcoin, notre modèle théorique peut être appliqué à d’autres chaînes de blocs comme Ethereum.

 Contexte du réseau Bitcoin

L’anatomie du réseau Bitcoin est illustrée à la figure 1. Le Bitcoin fonctionne sur un réseau public pair à pair, où tout poste peut se connecter à tout autre poste présent sur le réseau [1]. Lorsqu’un nœud reçoit une transaction ou un bloc, il effectue une vérification. Si le bloc est valide, le nœud le transmet à d’autres nœuds.

Schéma de l’architecture Bitcoin

Figure 1. Anatomie du Bitcoin

Chaque nœud du réseau de la chaîne de blocs gère une réserve de connexions, soit des connexions à d’autres postes activées en tout temps. Le nombre par défaut de ces connexions joue un rôle important dans les performances de Bitcoin.

Diffusion de l’information

Pour mettre à jour la chaîne de blocs, les transactions et les blocs doivent être diffusés dans tout le réseau. Pour ce faire, le Bitcoin et la plupart des autres chaînes de blocs utilisent un protocole épidémique. Afin d’éviter de saturer le réseau avec des copies redondantes de transactions et de blocs, le Bitcoin a recours à l’approche de partage de données par extraction, où chaque nœud demande des copies des données manquantes à d’autres.

Les nœuds expéditeurs informent les nœuds voisins de la disponibilité d’une transaction ou d’un bloc, vérifié au préalable, en envoyant un message d’inventaire (inv) à tous les nœuds de leur réserve de connexions. Un message inv contient des hachages de transactions ou de blocs désormais disponibles et prêts à l’envoi.

Lorsqu’un nœud reçoit un message inv pour un bloc ou une transaction qu’il ne possède pas, il répond avec le message get data. Ce message contient le hachage des transactions ou blocs demandés.

Quand le nœud émetteur reçoit le message get data, il envoie la transaction ou le bloc demandé au destinataire. Ce processus est décrit à la figure 2.

Échange de blocs dans une chaîne de blocs

Figure 2 : Échange de blocs dans l’inventaire

Modèle analytique

Pour modéliser un réseau Bitcoin, nous avons utilisé le modèle de graphe proposé par Erdős et Rényi [2]. Ce type de graphe présente les propriétés nécessaires à la modélisation des réseaux pair à pair dans les systèmes de chaînes de blocs.

Nous définissons un réseau superposé comme étant un graphe G(V,L), où V est l’ensemble des sommets et L, l’ensemble des liens entre les nœuds. Par exemple, s’il existe un lien entre le nœud i  et le nœud j, alors (i,j) ∈ L. De plus, nous représentons un graphe aléatoire par Gp(N), où N est le nombre total de nœuds et p la probabilité indépendante qu’il existe un lien entre deux nœuds ciblés dans le réseau superposé pair à pair. Dans ce travail, nous supposons que N est très volumineux, comme dans le réseau Bitcoin (actuellement N≅10 000).

Construction du graphe aléatoire

En général, nous établissons les caractéristiques suivantes pour notre graphe : (i) Si p > 1/N , alors un composant géant existe avec une probabilité élevée (w.h.p.). (ii) Si p ≥ (log N)/N, alors tous les nœuds font partie du composant géant et Gp(N) devient un graphe connecté.

Ces propriétés de connectivité sont essentielles au bon fonctionnement d’un réseau de chaîne de blocs. Si la valeur  est suffisante, chaque nœud dispose vraisemblablement de plusieurs chemins pour atteindre un autre nœud, par différents liens sortants. Dans un tel réseau, la suppression d’un lien n’entraîne pas de partition du réseau, car tout le système reste connecté. Il faut éviter les partitions dans un réseau de chaîne de blocs, car elles empêchent la résolution des fourches (forks) d’être résolues tant que les partitions restent isolées, ce qui compromet l’intégrité des données du registre virtuel (ledger).

Vérification et validation

Nous avons élaboré ce modèle à l’aide du simulateur de réseau bien connu OMNET ++. Une courte démonstration de cette simulation est illustrée dans la vidéo suivante.

 

Nous avons validé la précision du modèle théorique et sa mise en œuvre à l’aide d’un ensemble de données extrait du réseau Bitcoin. Les résultats sont illustrés à la figure 3. Les boîtes à moustache indiquent le délai de propagation des blocs dans le réseau Bitcoin réel par rapport au volume des blocs. Les résultats de la simulation et les valeurs théoriques sont presque identiques et conformes aux résultats empiriques. Le délai de propagation d’un bloc augmente de façon quasi linéaire par rapport à l’augmentation de volume du bloc. Pour les plus petits blocs, les quartiles sont proportionnellement plus petits. La raison principale est que, dans les blocs de petit volume, le retard est causé par le temps de propagation du signal. Quant aux gros blocs, le retard est lié à la limite de la bande passante. La figure 4 illustre l’influence d’un nombre de connexions par défaut sur le temps de propagation de blocs dans des réseaux de différentes tailles. Augmenter le nombre de connexions mènera toujours à un réseau plus rapide.

Vitesse de propagation des blocs selon leur volume

Figure 3. Résultats du modèle : délai de propagation des blocs c. leur volume

Vitesse de propagation des blocs selon la taille du réseau

Figure 4. Délai de propagation de bloc de 100 % c. la taille du réseau pour différents nombres de connexions

Conclusion

Dans cet article, nous avons élaboré un modèle de calcul des performances Bitcoin selon le volume des blocs et le nombre de connexions par défaut dans un nœud. Nous avons validé notre modèle analytique par simulations et l’avons comparé aux données réelles mesurées dans le réseau Bitcoin. Bien que le débit du Bitcoin puisse être augmenté à l’aide de blocs de plus grand volume, une augmentation importante du temps de propagation des blocs pourrait en résulter. Ce délai peut être réduit en augmentant le nombre moyen de connexions par défaut dans un nœud, mais aurait pour conséquence une surcharge de trafic sur le réseau.

Nos travaux futurs porteront sur l’emploi de ce modèle pour étudier l’impact de différents paramètres sur la probabilité d’apparition de fourches dans le système.

Information supplémentaire

Pour plus d’information sur cette recherche, consulter l’article de conférence suivant : Shahsavari, Y.; Zhang, K.; Talhi, C. 2019. « Performance Modeling and Analysis of the Bitcoin Inventory Protocol ». IEEE DAPPCON. San Francisco, États-Unis.

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 

commentaires

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *