Block Propagation désigne la diffusion d’un nouveau bloc entre les ordinateurs du réseau Bitcoin. La transmission fournit les données ; chaque nœud doit encore vérifier si le bloc est valide et peut entrer dans l’historique qu’il accepte.
Imaginons qu’Anna fasse du minage et vienne de trouver un bloc contenant des transactions. Un bloc regroupe des transactions en un lot ajouté à l’historique commun. Bitcoin n’a pas de centrale qui l’envoie à tout le monde en même temps. Son nœud prévient ses voisins, les ordinateurs auxquels il est connecté. La nouvelle poursuit son chemin et arrive à des moments différents. Ce parcours s’appelle Block Propagation. Sa rapidité influe sur le temps pendant lequel les autres travaillent encore à partir de l’ancien historique. [1] [6]
Pierre utilise chez lui un Full Node : un logiciel qui vérifie les blocs et les transactions de Bitcoin selon les règles. L’annonce d’un bloc ne suffit pas. Il lui faut tout son contenu pour le contrôler. Il peut le télécharger intégralement ou le reconstituer avec le message reçu et les transactions déjà en sa possession. C’est comme recevoir une liste de pages à retrouver dans sa bibliothèque : moins de données voyagent, mais le livre final doit être identique. [1] [7]
Un bloc possède un bref en-tête, le Block Header. Il désigne notamment le bloc précédent et permet de vérifier Proof of Work, la preuve du travail de calcul nécessaire au minage. Les mineurs cherchent cette preuve en répétant des calculs ; les autres peuvent rapidement vérifier le résultat. C’est un premier contrôle utile, pas une validation de chaque paiement. À lui seul, l’en-tête ne dit pas si les signatures sont valides ni si les transactions dépensent réellement des fonds disponibles et encore inutilisés. Une signature numérique prouve l’autorisation d’un paiement à l’aide d’une clé privée, une valeur numérique secrète, sans révéler cette clé. Un UTXO est une sortie de transaction non dépensée : un enregistrement d’un montant et des conditions permettant de le dépenser. [6] [8]
Pierre a reçu beaucoup de transactions avant le minage du bloc. Il les garde dans son Mempool, sa réserve locale de transactions non confirmées. Le mécanisme Compact Blocks, décrit dans BIP 152, en tire parti : le message transmet surtout des identifiants courts et quelques transactions complètes, au lieu de tout répéter. Pierre remet les éléments connus dans le bon ordre. C’est le message réseau qui diminue, pas le bloc à vérifier ; ses règles de validité restent les mêmes. [2] [7]
Il n’existe pas un Mempool unique pour le monde entier. Chaque nœud peut connaître des transactions légèrement différentes. Si certaines manquent à Pierre, il réclame les données nécessaires ou revient au téléchargement du bloc complet. Cette demande et sa réponse prennent du temps. Elles ne justifient ni de deviner le contenu ni de sauter un contrôle. L’économie réelle dépend donc aussi des transactions déjà connues du destinataire. [2] [7]
Le mode le plus rapide de BIP 152 autorise la retransmission avant la fin de toutes les vérifications des transactions. Il ne s’agit pas d’envoyer n’importe quoi : l’émetteur doit notamment vérifier le raccordement à la chaîne validée, Proof of Work et la correspondance cryptographique de l’en-tête avec les transactions transmises. La transmission et les contrôles restants peuvent alors se chevaucher. Un Full Node ne retient toutefois le bloc dans son historique actif qu’après l’avoir entièrement vérifié. [2] [4] [7]
Avant que le bloc d’Anna arrive partout, un autre mineur peut en trouver un qui prolonge le même prédécesseur. Une partie du réseau voit brièvement une branche valide, l’autre une seconde. C’est le travail accumulé ensuite qui départage les branches valides, pas un vote des ordinateurs. Un bloc valide laissé de côté s’appelle Stale Block. Une diffusion plus rapide réduit la période propice à cette concurrence sans la supprimer. [6] [8]
Si le bloc d’Anna circule lentement, d’autres risquent davantage de prolonger un concurrent et de laisser son bloc hors de la chaîne acceptée. Elle n’en tire alors aucune récompense dans cet historique. Une bonne connexion n’est donc pas qu’une question de confort. Son avantage peut favoriser la concentration du minage chez les opérateurs les mieux connectés. Mais une ligne lente ne mesure pas à elle seule la centralisation et ne prouve pas une attaque. [7] [8]
FIBRE est un exemple de système spécialisé dans la transmission rapide des blocs. Il cherche à réduire les délais, y compris ceux dus aux paquets perdus, ces petits morceaux du message transmis. Un tel chemin peut livrer un bloc plus tôt, mais son opérateur ne décide pas de sa validité à la place de Pierre. Son Full Node doit vérifier les mêmes règles, quel que soit le chemin emprunté. [3] [9]
Le réseau doit aussi tenir compte du volume de données, de la confidentialité et de la résistance des connexions aux défaillances. Dépendre d’un seul chemin reste une faiblesse, même s’il est rapide. Il faut également distinguer les améliorations : BIP 330, une composante d’Erlay, aide les nœuds voisins à trouver les différences entre leurs ensembles d’annonces de transactions. Il ne remplace pas la transmission de blocs de BIP 152. L’objectif commun est de mieux communiquer tout en conservant des vérifications indépendantes. [1] [5]
Pour une vision complète, lisez aussi Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. Cette entrée est également citée par Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.