Erlay, un protocole qui pourrait accélérer le réseau Bitcoin

1
746

Traduction d’un article de Omar Faridi Et Aaron Van Wirdum publié hier sur bitcoinmagazine.com

Les utilisateurs de Bitcoin sont davantage en sécurité s’ils utilisent des nœuds complets, et le réseau Bitcoin est en meilleure santé s’ils le font. Pour encourager cela, les ressources nécessaires à l’exécution d’un nœud complet doivent être faibles, y compris la bande passante requise.

Erlay est une nouvelle proposition qui pourrait aider à réduire les besoins en bande passante. Il a été développé par les chercheurs Gleb Naumenko, Alexandra Fedorova et Ivan Beschastnikh de l’Université de la Colombie-Britannique, Pieter Wuille, ingénieur chez Blockstream, et Gregory Maxwell, contributeur indépendant à Bitcoin Core. La proposition repose sur une amélioration de la transmission des identifiants de transaction afin de réduire le nombre de messages envoyés entre les nœuds sans affecter la transmission de nouvelles transactions à tous les nœuds.

 

Le problème

Lorsqu’une nouvelle transaction Bitcoin est diffusée, elle doit être envoyée à tous les nœuds du réseau. Techniquement, cela se passe en deux étapes. Le noeud qui a reçu la transaction envoie tout d’abord l’identifiant de transaction – l’ID de transaction – à tous les pairs auxquels il est connecté (à l’exception de celui qui a lui envoyé la transaction). Tous ces pairs vérifient ensuite cet ID pour voir s’ils ont déjà reçu cette transaction d’un autre pair. Sinon, ils demandent la transaction complète au nœud qui a envoyé l’identifiant. Ensuite, le processus se répète : ce nœud envoie l’ID de transaction à tous ses homologues.

Comme les nœuds partagent les mêmes identifiants de transaction, même avec les pairs auxquels la transaction a déjà été envoyée, de nombreux messages redondants sont partagés sur le réseau Bitcoin. Cette redondance consomme beaucoup de bande passante. On constate notamment que 50% de la bande passante requise pour exécuter un nœud Bitcoin est actuellement utilisée pour annoncer des transactions, 45% sont nécessaires pour relayer le corps des transactions et 5% sont utilisé pour divers autres messages, tels que les informations d’en-tête de bloc. Les auteurs du document de recherche d’Erlay estiment que 44% de tout le trafic entre les nœuds Bitcoin sont des messages redondants. Utiliser beaucoup de bande passante peut empêcher de nombreux utilisateurs d’exécuter un nœud complet.

 

Connectivité et risques

Apparaît ici un problème connexe plus subtil. La sécurité de Bitcoin repose en partie sur le niveau de connectivité entre les nœuds du réseau Bitcoin. Si cette connectivité est trop faible (si les nœuds ne se connectent pas avec suffisamment de pairs), cela ouvre la porte aux attaques « éclipse ». Il s’agit d’attaques dans lesquelles un attaquant contrôle plusieurs adresses IP et les utilise pour se connecter à un nœud Bitcoin particulier. Si tous les nœuds que la cible aperçoit sont des homologues contrôlés par le même attaquant, ce dernier pourrait créer une chaîne de blocs alternative, uniquement pour ce nœud. Les possibilités de nuisance sont alors nombreuses.

Dans leur document, Naumenko, Fedorova, Beschastnikh, Wuille et Maxwell affirment que la connectivité actuelle entre les nœuds du réseau Bitcoin est trop faible pour assurer un niveau de sécurité adéquat de la blockchain Bitcoin. Les travaux des chercheurs Ethan Heilman, Alison Kendler, Aviv Zohar Sharon et Goldberg de l’Université de Boston et de l’Université hébraïque/MSR d’Israël aboutissent à la même conclusion.

Le problème pourrait être résolu en augmentant la connectivité entre les nœuds. Toutefois, dans l’état actuel des choses, la bande passante requise par chaque nœud augmenterait considérablement : l’utilisation de la bande passante augmente actuellement de façon linéaire si les nœuds souhaitent se connecter à davantage d’homologues. Un protocole de relais plus efficace serait très utile.

 

Erlay

Pour résoudre les problèmes liés au protocole actuel de relais de transaction de Bitcoin, Naumenko et son équipe suggèrent d’utiliser Erlay, un nouveau protocole de diffusion des transactions. Selon les recherches qu’ils ont menées, Erlay pourrait réduire considérablement la quantité de bande passante nécessaire (d’environ 40%) pour maintenir les niveaux actuels de connectivité entre les nœuds Bitcoin.

Le protocole Erlay réduit le nombre de messages échangés entre les nœuds Bitcoin à l’aide d’une solution appelée « Minisketch » [1] , proposée [en janvier 2019] par Naumenko, Wuille et Maxwell. Outre les identifiants de transaction, les nœuds Bitcoin partagent des « sketchs » [NdT : « schémas »] de transactions.

Cela se fait en deux phases. Dans la première phase, les nœuds partageront les nouveaux ID de transaction avec leurs homologues, comme d’habitude. Cependant, ils choisiront un maximum de huit pairs avec qui les partager, même s’ils ont des liens avec plus de pairs. Dans la deuxième phase, les nœuds demandent un « sketch » à leurs pairs.

Ce schéma contient sous une forme compacte des identificateurs pour toutes les transactions acceptées par un nœud. À l’aide des « sketchs », un nœud peut déterminer les transactions qu’il ne possède pas. Il peut requérir ensuite ces transactions, et uniquement celles-là, chez ses homologues. Cette approche consomme beaucoup moins de bande passante que le partage de tous les identifiants de transaction.

La solution offrirait également, dans bien des cas, davantage de confidentialité. Étant donné que les identifiants de transaction ne sont initialement pas partagés avec tous les nœuds connectés, il est de plus en plus difficile pour les « nœuds espions » de surveiller le réseau et de retracer l’origine d’une transaction particulière.

Il convient de noter que la comparaison les différents « sketchs » et la recherche de transactions manquantes présente un inconvénient : il faut un temps relativement long – environ deux secondes de plus – pour qu’une transaction trouve son chemin dans l’ensemble du réseau. Cependant, le réseau Bitcoin fonctionne sur des émissions de blocs de 10 minutes en moyenne, cette approche en vaut donc la peine, car elle pourrait réduire considérablement le nombre de messages reçus par chaque nœud.

 

Prochaines étapes

Naumenko a l’intention de rédiger un BIP [NdT : une proposition d’amélioration de Bitcoin] pour Erlay quand les développeurs d’applications, les testeurs de logiciels et les chercheurs auront examiné et approuvé sans objection les spécifications du protocole. Le protocole Erlay est actuellement en cours de révision par la communauté Bitcoin et il pourrait être intégré dans un avenir proche. Selon ses spécifications, le prototype Erlay ne contient que 584 lignes de code et ne comporte aucune modification incompatible avec le code actuel de Bitcoin.

 

Source : bitcoinmagazine.com 

 


[1] Développé par Pieter Wuille, Gleb Naumenko et Greg Maxwell, Minisketch est une bibliothèque logicielle proposant un système de somme de contrôle permettant de réduire les besoins en bande passante lors de la synchronisation de données entre les nœuds d’un système distribué. Concernant Bitcoin, Minisketch est un élément d’un projet plus large, le protocole SRR (Set Reconciliation Relay), qui propose une optimisation globale des interactions entre les nœuds (plus d’homologues pour une moindre bande passante).