Aller au contenu principal

DUMMY ELEMENT

PROTOCOLE Traduction en français : ÉLÉMENT FACTICE

Fait référence à un élément supplémentaire et inutile consommé par les opcodes OP_CHECKMULTISIG et OP_CHECKMULTISIGVERIFY lors de la vérification des signatures dans une transaction. En raison d’un bug off-by-one historique (erreur de décalage unitaire), ces 2 opcodes suppriment un élément supplémentaire sur la pile en plus de leur fonction de base. Pour éviter une erreur, il est donc obligatoire d’inclure une valeur factice au début du scriptSig afin de satisfaire la suppression et outrepasser le bug. Cette valeur inutile, c’est ce que l’on appelle le « dummy element ». Le BIP-0011, qui a introduit le standard P2MS, conseillait de mettre un OP_0 comme valeur inutile. Mais ce standard n’était pas imposé au niveau des règles de consensus, ce qui veut dire que n’importe quelle valeur pouvait y être placée, sans invalider la transaction. Le dummy element était donc un vecteur de malléabilité des transactions. Le BIP-0147, introduit avec le soft fork SegWit, a imposé que cet élément factice soit strictement un tableau d’octets vide (OP_0), éliminant ainsi la malléabilité associée à cet élément en rendant toute transaction non conforme invalide selon les règles de consensus. Cette règle, nommée NULLDUMMY, s’applique à la fois aux transactions SegWit et pré-SegWit.

Terme associé :