Technologie Bitcoin : Segregated Witness (SegWit). Segregated Witness (SegWit) est une mise à niveau de protocole implémentée destinée à fournir une protection contre la malléabilité des transactions et à augmenter la capacité de bloc.
SegWit sépare le témoin de la liste des entrées. Le témoin contient des données nécessaires pour vérifier la validité de la transaction, mais il n'est pas nécessaire de déterminer les effets de la transaction.
Pour bien comprendre le fonctionnement de SegWit, nous nous concentrerons sur deux concepts distincts : le poids de bloc et les fourches molles.
Taille du bloc Bitcoin et fourches
Pour parler avec précision de la taille des blocs, il est important de comprendre comment la taille des blocs est mesurée. La taille du bloc est simplement la taille en octets du bloc sérialisé (l'en-tête du bloc, le nombre de transactions et les transactions elles-mêmes).
Dans le cadre des règles de consensus, chaque nœud du réseau Bitcoin vérifie actuellement qu'un bloc est inférieur à 1 000 000 d'octets. Un bloc supérieur à 1 000 000 octets sera rejeté par ces nœuds en tant que règle consensuelle.
Étant donné que les nœuds hérités (nœuds qui ne sont pas mis à niveau) rejettent un bloc supérieur à 1 000 000 octets, toute fourche souple doit conserver cette règle. Mais comment pouvez-vous augmenter la taille du bloc et garder toujours cette règle ? Les blocs plus gros via une fourche souple sont-ils même possibles ?
L'idée clé est qu'une grande partie de la transaction, le ScriptSIG (clé publique), ne peut essentiellement pas être envoyée aux nœuds hérités pour qu'une transaction soit comptabilisée comme valide. Le fait que cela puisse être fait comme une fourche souple et permettre plus de transactions est une percée technique.
Les transactions non-Segwit placent le ScriptSIG au milieu de la transaction. Les transactions SegWit mettent le ScriptSIG à la fin. La partie ScriptSIG des transactions SegWit est appelée les « données témoins ». Lorsque des transactions SegWit sont envoyées à des nœuds hérités, les données témoins sont supprimés. La clé est que ces transactions « dépouillées » sont toujours des transactions valides sur des nœuds hérités, ce qui nous permet d'économiser de l'espace sur les transactions non-Segwit. Par conséquent, plus de transactions peuvent s'intégrer dans le bloc envoyé aux nœuds hérités sans dépasser la limite de 1 000 000 d'octets.
Les nœuds SegWit reçoivent des transactions et des blocs SegWit qui incluent les données témoins à l'aide de messages réseau alternatifs. Les blocs SegWit qui incluent les données témoins peuvent dépasser 1 000 000 octets. Les nœuds hérités, comme mentionné, reçoivent les mêmes blocs et transactions, mais avec les données témoins enlevées. C'est une façon de faire de SegWit une fourche souple, ce qui signifie qu'il n'est pas obligatoire de mise à jour de votre logiciel pour participer à un consensus.
SegWit et poids de bloc
Un problème évident pour un critique SegWit serait le fait qu'il doit y avoir une limite supérieure, sinon la taille du bloc pourrait potentiellement escalader indéfiniment - ce qui est un énorme problème pour la tolérance aux pannes des nœuds.
Pour restreindre les blocs SegWit, les créateurs de SegWit ont plutôt trouvé une autre restriction que la taille. Les blocs SegWit sont limités par quelque chose appelé poids de bloc. Le poids de bloc est un nouveau concept introduit dans SegWit, et il est calculé sur une base par transaction. Essentiellement, chaque transaction a un « poids ».
Les transactions dont les données de témoin sont nulles sont plus légères que celles qui contiennent des données de témoin. Notez que les transactions SegWit sont transmises à des nœuds hérités sans données témoins, de sorte que les blocs communiqués aux nœuds hérités sont toujours inférieurs ou égaux à 1 000 000 d'octets.
Un concept clé à comprendre est que les transactions SegWit peuvent avoir beaucoup de poids différents en fonction de la quantité de la transaction est absorbée par les données témoins, ce qui donne aux créateurs de transactions beaucoup plus d'espace pour jouer avec la malléabilité des transactions.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.