Bitcoin

Évolutivité du Bitcoin et problème de propagation de bloc

Le manque d’évolutivité est connu pour être le principal obstacle à l’adoption massive de la technologie blockchain. Tous les projets blockchain existants recherchent des solutions qui pourraient améliorer les performances de leur réseau. De nombreux projets émergents affirment avoir une solution miracle qui pourrait résoudre le problème. Cependant, de telles affirmations ne sont pas toujours valables. Malheureusement, de nombreux observateurs et investisseurs ne se rendent pas compte du cœur et de la racine de ce problème. Sans une enquête approfondie et une expérience technique considérable, il est difficile de déterminer les goulots d’étranglement cachés et les compromis. Dans cet article, nous allons discuter d’un goulot d’étranglement bien connu qui empêche Bitcoin Code de se mettre à l’échelle.

Peu de temps après l’invention du réseau peer-to-peer décentralisé Bitcoin, les chercheurs se sont intéressés à ce qui détermine les limites de la mise à l’échelle de Bitcoin

Bientôt, le problème principal a été déterminé et décrit en termes de temps de propagation de bloc ou de délai de propagation de bloc.

C’est un temps moyen nécessaire pour que le nouveau bloc atteigne la majorité des nœuds du réseau. Dans un grand réseau décentralisé comme Bitcoin, chaque fois que le nouveau bloc est généré, il est diffusé selon le protocole Gossip. Si un nœud a le nouveau bloc valide, il informe les nœuds qui lui sont connectés de sa nouvelle possession. Ensuite, le nœud transfère ce bloc aux nœuds qui lui ont demandé de le faire. Avant que le bloc n’atteigne chaque nœud complet du réseau, il passe par sept nœuds intermédiaires. Il est important que chaque nœud honnête vérifie le bloc avant de le relayer à d’autres pairs. De toute évidence, tout cela prend du temps. Chaque nouveau bloc secoue le réseau et fait fonctionner les nœuds et les connexions Ethernet entre eux à pleine puissance.

On pourrait affirmer que depuis le lancement du réseau, de nombreuses améliorations ont été apportées au protocole Gossip. Par exemple, la proposition d’amélioration Bitcoin BIP 0152 a introduit l’option de ne transférer que des identifiants de transaction courts, au lieu de la liste complète des transactions, dans le corps du bloc. Cependant, si le nœud n’a pas cette transaction dans son mempool, il doit demander à ses pairs de la transférer dans un message séparé. S’il y a un grand nombre de telles transactions dans le bloc, alors l’amélioration par rapport à BIP 0152 disparaît.

Étant donné que la transmission de données est la partie la plus longue du relais de bloc, les chercheurs se sont intéressés à déterminer le temps nécessaire pour qu’un paquet de données d’une certaine taille atteigne 50%, 90% ou 95% des nœuds du réseau. Il a été constaté que pour les blocs de plus de 20 Ko, le délai de propagation des blocs est presque proportionnel à la taille du bloc.

Selon une étude publiée en 2013, chaque Ko de données supplémentaire dans le bloc a entraîné un délai de propagation de bloc supplémentaire de 80 ms

Depuis lors, quelques articles universitaires et enquêtes sur ce sujet ont été publiés chaque année. Ils mettent à jour les données susmentionnées et discutent de diverses propositions d’amélioration. De plus, le site surveille l’état actuel du réseau Bitcoin et le temps de propagation des blocs. En outre, il fournit des graphiques avec des données historiques sur ce sujet.

La majorité des réseaux blockchain bien établis ont le même design que Bitcoin. En conséquence, le temps de propagation des blocs dans ces réseaux obéit aux mêmes règles. Malheureusement, le temps de propagation des blocs a un effet énorme sur la sécurité de la blockchain. Plus le temps de propagation sur le réseau est long, plus les mineurs exploitent souvent d’anciens blocs. En conséquence, la bifurcation de la chaîne principale se produit plus souvent et le pourcentage de blocs orphelins augmente. Le long délai de propagation conduit au dénommé dilemme des vérificateurs.

Certains nœuds peuvent trouver que sauter l’étape de vérification des blocs peut être une stratégie rentable. Dans ce cas, ils courent le risque de miner au-dessus du mauvais bloc. Cependant, si le temps de vérification des blocs est important, cette stratégie pourrait être rentable. Les chercheurs ont découvert qu’un long délai de propagation réduit la résistance du nœud contre 51% des attaques et des mines égoïstes.

Afin de résoudre le problème susmentionné, les développeurs de blockchain essaient souvent de maintenir le temps de propagation des blocs à moins de 1% du temps de blocage moyen.

Cela est vrai pour Bitcoin, Ethereum et d’autres grands réseaux de blockchain basés sur un consensus de preuve de travail. Pour cette raison, le temps de propagation des blocs vers 50% des nœuds du réseau Bitcoin est souvent inférieur à 6 secondes.