Block Weight désigne la façon dont Bitcoin mesure la capacité utilisée par un bloc, un groupe de transactions ajouté à l’historique partagé. Les différentes parties des données ne comptent pas de la même manière. Le poids a un plafond fixe ; il ne fixe ni le nombre de paiements ni leur valeur.
Anna envoie du Bitcoin, mais le bloc suivant ne contient pas son paiement. Cela ne signifie pas, à lui seul, que l’argent a disparu. Une transaction non confirmée peut attendre dans le Mempool, la file locale d’un nœud. Un nœud est un logiciel qui vérifie les transactions et les blocs et communique avec les autres participants du réseau. Le mineur sélectionne des transactions pour un bloc de capacité limitée et peut aussi choisir d’en produire un plus petit. Les frais sont une incitation, pas un ordre d’inclure un paiement précis. Block Weight explique une contrainte de ce choix, pas toutes les causes d’attente. [1] [7]
La limite est de 4 000 000 WU, cette valeur exacte étant autorisée. WU signifie unité de poids. Un Full Node, qui vérifie lui-même les règles de Bitcoin, rejette un bloc dépassant ce plafond. Ni des frais élevés ni un Proof of Work valide, la preuve de travail informatique nécessaire au minage, ne le rendent acceptable. Trouver cette preuve et construire un bloc valide sont deux conditions simultanées. La capacité ne dépend donc pas du seul souhait du mineur. [1] [3] [4]
L’octet est une unité courante de mesure des données. SegWit a séparé une partie des données prouvant le droit de dépenser, notamment les signatures. Cette partie s’appelle witness. Un octet de données de base compte pour 4 WU ; un octet ajouté par la représentation complète avec witness compte pour 1 WU. Les champs auxiliaires marker et flag appartiennent aussi à cette seconde catégorie. Cela préserve la structure de base tout en ménageant de la place pour les données de vérification, sans compter tous les octets pareil. [1] [2]
Une signature prouve le droit de dépenser certaines pièces. Un petit programme appelé script en définit les conditions. Le moindre poids de witness n’autorise pas un nœud à ignorer les signatures ou les conditions applicables. Ces données restent également présentes dans la représentation complète. Il s’agit d’une règle de comptabilisation de la capacité : le travail du processeur, le trafic réseau et le stockage ne diminuent pas forcément dans la même proportion. [1] [4]
Sérialiser un bloc consiste à l’écrire sous la forme exacte des octets échangés entre ordinateurs. Appelons B sa taille sans witness et T sa taille complète. BIP 141 utilise W = 3 × B + T. Les données de base figurent déjà dans T : elles comptent donc quatre fois au total. Les données ajoutées par witness comptent une fois. La formule porte sur le bloc entier, pas seulement sur ses paiements ordinaires. [1] [8]
Prenons B = 500000 et T = 2500000 octets. On obtient W = 4000000 WU. Une autre composition peut avoir B = 750000 et T = 1750000 octets, pour le même résultat W = 4000000 WU. Ce sont des exemples de calcul, pas des mesures de blocs. Les deux utilisent le même poids, mais le second transmet moins d’octets. Dire qu’un bloc plein fait toujours 4 MB est donc faux. Son nombre de transactions n’est pas fixe non plus. [1]
Un bloc n’est pas qu’un assemblage de paiements. Il comprend un en-tête de 80 octets contenant notamment une référence au bloc précédent et un résumé des transactions. Vient ensuite leur nombre, écrit en CompactSize, un encodage d’entier de longueur variable. La première transaction est la Coinbase Transaction, réservée à la récompense du mineur ; ce nom ne désigne pas ici une plateforme d’échange. Tout cela entre dans le calcul. Additionner les poids des autres transactions ne donne donc pas encore le poids du bloc entier. [5] [7] [8]
Un portefeuille est une application ou un appareil permettant de recevoir et d’envoyer des bitcoins. Il utilise généralement la taille virtuelle de la transaction, exprimée en vByte. Elle s’obtient en divisant le poids de la transaction entière par 4, puis en arrondissant vers le haut. Cela aide à comparer les frais par capacité occupée. Additionner ces tailles arrondies ne donne pas le poids exact du bloc : l’unité change, chaque transaction a été arrondie et la structure du bloc manque. Un montant élevé n’implique pas nécessairement beaucoup de données. [1] [8]
Le poids ne décrit pas tout le travail du nœud. Les règles concernées prévoient aussi un maximum de 80 000 unités pondérées de coût d’opérations de vérification de signature. Ce n’est pas simplement le nombre de toutes les signatures du bloc. Tapscript, le langage de scripts introduit avec Taproot, dispose d’un budget distinct par entrée, la partie de la transaction qui dépense des pièces reçues auparavant ; ses opérations de signature ne comptent pas dans cet ancien plafond global. BIP 342 décrit cette autre contrainte. Respecter le poids ne permet donc pas une vérification arbitrairement coûteuse. [1] [3] [9]
Un explorateur de blocs est une application permettant de consulter les transactions et les blocs d’un réseau donné. Dans Bitcoin Core v29.0, getblock renvoie notamment size, strippedsize et weight : taille complète en octets, taille sans witness et poids. Vous pouvez aussi rencontrer chainwork. Il exprime le travail informatique cumulé de la chaîne, pas son poids en données. Au quotidien, retenez la différence entre capacité et prix : Block Weight limite l’espace du bloc, tandis que les frais réels dépendent de la taille de la transaction et du tarif choisi. Aucune de ces valeurs ne promet à elle seule un délai de confirmation. [6]
Pour une vision complète, lisez aussi vByte, Witness Data, SegWit, Guerre de la taille des blocs, Bitcoin, Full Node. Cette entrée est également citée par Signet, vByte, Witness Data, Ordinals Inscriptions.