Aller au contenu
buybitcoinsmart

Glossaire / Protocole et mises à jour

Erlay

Qu'est-ce qu'Erlay ?
Erlay est une méthode proposée pour que les nœuds comparent, à l'aide de minuscules esquisses, les transactions qu'ils ont vues, au lieu d'annoncer chaque hachage de transaction à chaque pair.

Spécifié dans BIP-330.

L'annonce des transactions est le plus gros usage de bande passante d'un nœud, et ce coût augmente à chaque pair ajouté. Gleb Naumenko et Pieter Wuille ont rédigé cette conception sous la forme du BIP330, qui reste à l'état de brouillon : aucune version de Bitcoin Core ne l'active. Ce point compte, car il détermine le coût minimal que l'exploitation de votre propre nœud est autorisée à atteindre.

Comment cela fonctionne

Erlay s'attaque à une redondance qui saute aux yeux dès qu'on la mesure : un nœud annonce actuellement à chacun de ses pairs chaque transaction qu'il entend, et la plupart de ces pairs la connaissaient déjà.

La méthode actuelle est l'inondation. Chaque nouvelle transaction est annoncée dans un message inv portant un code de type et un identifiant de 32 octets, soit 36 octets par annonce et par pair. Par défaut, Bitcoin Core ouvre 8 connexions sortantes pour la retransmission des transactions et accepte les pairs entrants jusqu'à un total de 125 ; ainsi, une machine bien connectée envoie et reçoit des dizaines de fois le même court message pour une information qu'elle allait de toute façon obtenir. Le gaspillage est proportionnel au nombre de connexions, ce qui pénalise précisément le comportement qui rend le réseau plus difficile à scinder.

Erlay conserve une petite part de l'inondation et remplace le reste par une réconciliation d'ensembles. Chaque paire de pairs suit les annonces qu'elle n'a pas encore échangées avec l'autre. Périodiquement, un côté demande une esquisse de cet ensemble. Une esquisse est un résumé algébrique de taille fixe, dont la longueur dépend du nombre de différences attendues et non du nombre de transactions que chaque côté détient ; en combinant deux esquisses, on obtient exactement les entrées que l'un des pairs possède et que l'autre n'a pas. La bibliothèque minisketch, que Bitcoin Core conserve dans son arbre de sources depuis des années tandis que le protocole de retransmission qui l'entoure n'a jamais été fusionné, met en œuvre cette construction et son décodage.

Se tromper sur la taille de l'esquisse n'est pas fatal. Lorsque le décodage échoue parce que la différence était plus grande que prévu, les pairs agrandissent l'esquisse et réessaient au lieu de repartir de zéro ; une mauvaise estimation ne coûte donc qu'un peu de bande passante supplémentaire au lieu d'une resynchronisation complète.

Où cela se voit

Vous ne voyez pas encore Erlay, et c'est la réponse honnête pour quiconque le cherche dans un tableau de bord de nœud.

Ce que vous pouvez voir, c'est le problème qu'il vise. Lancez getnettotals sur votre propre nœud et les compteurs d'octets montrent un trafic de retransmission qui domine tout, sauf le téléchargement initial de la chaîne. Les opérateurs en connexion à la consommation réagissent déjà en plafonnant l'envoi avec maxuploadtarget ou en réduisant le nombre de pairs qu'ils gardent, et ces deux choix affaiblissent un peu le réseau afin de réduire la facture.

C'est ce compromis qu'Erlay est censé dissoudre. Si la bande passante cessait d'augmenter avec le nombre de connexions, un nœud pourrait sans risque conserver bien plus de pairs, et un réseau densément connecté est bien plus difficile à partitionner ou à éclipser. Pour quelqu'un dont le seul intérêt est de vérifier ses propres bitcoins plutôt que de faire confiance à un explorateur, la promesse est étroite et réelle : la même vérification sur une connexion moins coûteuse.

Erlay vs retransmission compacte des blocs

Erlay concerne les transactions avant leur minage ; la retransmission compacte des blocs concerne les blocs après. Les deux répondent à des goulots d'étranglement différents et ont été jugés à des échelles de temps différentes. La propagation des blocs est un problème de latence, car chaque seconde qu'un bloc passe en transit est une seconde qu'un mineur passe à travailler sur une tête de chaîne qui n'existe plus, et la correction a été livrée en 2016. L'annonce des transactions est un problème de volume, mesuré en gigaoctets sur un mois plutôt qu'en millisecondes, si bien que personne ne s'est pressé, ce qui explique que la proposition reste à l'état de brouillon depuis des années.

À ne pas confondre avec

Questions fréquentes

Puis-je activer Erlay dans Bitcoin Core ?

Non. Le BIP330 est encore à l'état de brouillon et aucune version n'active la réconciliation des transactions. La bibliothèque minisketch dont il dépend se trouve dans l'arbre de sources de Bitcoin Core, mais le protocole de retransmission construit par-dessus n'a pas été fusionné.

Erlay rendrait-il mon nœud plus rapide ?

Pas plus rapide, moins coûteux. Il vise le volume des annonces de transactions et non la vitesse d'un quelconque élément, si bien que l'effet visible serait un chiffre de bande passante mensuelle plus bas et la liberté de garder plus de pairs connectés sans en payer le prix.

Termes associés

Plus de termes : Protocole et mises à jour

Lire cette page en anglais