Blockstream Minisketch : réduction des besoins en bande passante des nœuds bitcoin
Blockstream a présenté Minisketch, une librairie pour le langage C ayant comme principal objectif de réduire les besoins en bande passante des nœuds Bitcoin et plus généralement des nœuds systèmes décentralisés.
Bitcoin & la problématique bande passante
L’un des nerfs de la guerre dans l’écosystème blockchain ainsi que des systèmes distribués réside dans la décentralisation. Celle-ci peut être classée en trois grandes catégories :
- Décentralisation physique : copies de la blockchain stockées dans des lieux différents.
- Décentralisation du développement : projet open source alimenté par plusieurs parties.
- Décentralisation du processus de minage : diversité dans les acteurs s’occupant du minage afin d’éviter les attaques 51%.
Avec Minisketch, Blockstream tente de résoudre un des sous-problèmes de la décentralisation physique : l’utilisation de la bande passante. En effet, en plus d’utiliser une importante quantité de mémoire physique – environ 200go pour Bitcoin – les nœuds complets de la blockchain Bitcoin consomment énormément de bande passante dans les processus d’envoi des transactions ainsi que dans la communication avec les autres nœuds du réseau, qui représente entre 40% et 70% de l’utilisation de la bande passante d’un nœud.
La solution Minisketch
Contrairement aux autres algorithmes de réconciliation de données efficaces en termes de bande passante – tels que CPISync et l’implémentation originale de Pinsketch – Minisketch permet d’avoir des performances 20 à 100 fois meilleures qu’avec PinSketch et 1000 fois meilleurs qu’avec CPISync.
Lorsque les autres algorithmes vont simplement envoyer la liste complète des données aux autres nœuds, Minisketch leur permet de produire des sketch – esquisse – mathématiques de leurs listes de données. Ces sketch sont ensuite envoyés aux autres nœuds afin qu’ils le comparent avec le sketch de leurs listes local. Cela permet aux nœuds de savoir les modifications à effectuer sans avoir à comparer la totalité de la liste.
Dans son article de présentation, Blockstream nous expose un exemple simple permettant de comprendre succinctement comment l’algorithme fonctionne :
« Si nous simplifions les choses à une seule différence – entre les deux nœuds, il est facile de voir comment cela peut fonctionner : Disons que le nœud A ai l’ensemble de données : {3,5,7,11}
, et que le nœud B ait l’ensemble {3,5,7,9,11}
, donc la différence est {9}
. Nous calculons tous les deux la somme de nos éléments, donc j’obtiens 3+5+7+11=26
, et vous obtenez 3+5+7+9+11=35
. Je vous envoie ma somme 26, et vous la soustrayez de votre somme ; la différence est de 9. »
Nous voyons ici qu’au lieu d’envoyer l’intégralité des données seul un checksum – total de contrôle – est envoyé afin que les nœuds fassent uniquement transiter les modifications après mises en évidence de ces dernières.
[arve model= »gif » url= »https://journalducoin.com/app/uploads/2019/01/Video-Blockstream-Minisketch.mp4″ align= »center » promote_link= »no » autoplay= »yes » maxwidth= »850″ controlslist= »nodownload » controls= »no » loop= »yes » muted= »yes » /]
Pour le moment cette solution n’est encore qu’au stade de projet de recherche, et son adoption sur le réseau Bitcoin pourrait prendre un certain temps. Cependant, des avancées comme Minisketch représentent un développement très important pour améliorer l’adoption et l’accessibilité du nœud complet Bitcoin.