LiteBit

Écrit par Robert Steinadler il y a 2 mois

SegWit expliqué : Qu'est-ce que le Segregated Witness ?

Certains de nos lecteurs ont peut-être remarqué qu'il existe différents types de formats d'adresses Bitcoin. Segregated witness est une mise à niveau du protocole qui a été déployée par un soft fork sur le réseau Bitcoin en 2017 et depuis, il existe trois types de formats différents.

Quel est l'avantage du segregated witness ? Pourquoi est-il important et comment fonctionne-t-il ? Dans cet article, nous allons vous expliquer ce qu'est SegWit.

SegWit permet à Bitcoin de passer à l'échelle et améliore la sécurité

La naissance du segregated witness nécessite une petite leçon d'histoire du bitcoin. Le protocole original de Bitcoin permettait la création d'un nouveau bloc toutes les dix minutes en moyenne et chaque bloc avait une taille prédéterminée de 1 mégaoctet. La taille des blocs limite l'espace pour les transactions et donc l'évolutivité de Bitcoins. À partir de quelque part en 2015, la communauté Bitcoin a commencé à discuter de la façon de faire évoluer Bitcoin afin que le réseau puisse gérer plus de transactions.

Une approche consistait à augmenter drastiquement la taille des blocs, ce qui permettrait simplement d'augmenter le nombre de transactions par bloc en augmentant l'espace. Une autre approche consistait à réorganiser les informations incluses dans chaque bloc et à créer plus d'espace en contenant moins de données dont l'inclusion n'est pas immédiatement nécessaire pour que les transactions aient lieu. Il convient de mentionner que, jusqu'à ce jour, la question de savoir si SegWit était une bonne idée et si l'augmentation de la taille des blocs est une meilleure solution fait toujours débat. Historiquement, ce débat a conduit au fork de Bitcoin Cash, créant une nouvelle crypto-monnaie avec Bitcoin implémentant le segregated witness et Bitcoin Cash optant pour une taille de bloc drastiquement plus grande.

Une autre question importante qui est souvent négligée parce que la scalabilité semble être le problème le plus urgent est la prévention de la malléabilité des transactions. Avant que SegWit ne soit actif, il était possible pour un nœud de modifier le hachage d'une transaction non confirmée.

Ceci est extrêmement problématique, surtout si la partie réceptrice dépend de la fiabilité d'une chaîne de transactions non confirmées. En modifiant le hash de la première transaction, celle-ci n'est pas invalidée mais la transaction suivante de la chaîne repose sur un hachage qui a été modifié. Par conséquent, toutes les transactions suivantes vont échouer et sont considérées comme invalides car elles se réfèrent au mauvais ID de la TX.

La manipulation des ID de transaction ouvre la porte à toutes sortes de fraudes. Mais plus important encore, cela est absolument inacceptable si vous cherchez à utiliser une solution de deuxième couche au-dessus de Bitcoin, comme le Lightning Network.

Comment fonctionne le segregated witness?

La mise à niveau du protocole SegWit a permis de séparer les données de transaction de la signature numérique du témoin de la transaction. La taille des blocs a été effectivement augmentée jusqu'à 4 mégaoctets tout en restant compatible avec le protocole Bitcoin original.

À l'origine, chaque bloc patrimonial contenait la sortie et l'entrée des transactions ainsi que les signatures et, en outre, les scripts. Les blocs SegWit sont en fait plus grands et structurés différemment. En séparant les signatures et les scripts, il existe un bloc de base, également appelé bloc de transaction, qui est toujours considéré comme valide selon l'ancien protocole. Il contient des entrées et des sorties et ne dépasse pas la limite de 1 mégaoctet.

Le bloc étendu, quant à lui, est plus volumineux et contient jusqu'à 3 mégaoctets de données. A savoir les signatures et le script. Cette structure permet à SegWit d'être rétro compatible, ce qui signifie que personne n'est obligé de l'utiliser alors qu'il offre en même temps de grands avantages. Elle a également permis à SegWit d'être implémenté en tant que soft fork au lieu de nécessiter un hard fork qui aurait été plus stressant et aurait pu exposer le réseau au risque d'une scission.

Taille vs poids

Avec la mesure de la taille des legacy blocs, la façon dont les transactions sont mesurées a également été mise à jour. Les blocs SegWit ne sont pas mesurés en taille mais en poids. Au lieu de mesurer chaque bloc en mégaoctets (taille), il est mesuré en unités de poids. Un bloc SegWit a un poids de 4 millions de WU (unités de poids), ce qui correspond à 4 mégaoctets de données.

La formule pour calculer le poids d'une transaction SegWit est la suivante :

(taille de la transaction - données du témoin) * 3 + taille complète de la transaction.

Le poids d’un « legacy transaction » est calculé différemment :

Taille de la transaction * 4

En effet, les transactions SegWit sont toujours plus légères que les « legacy transactions », ce qui incite les mineurs à inclure ces transactions en premier, car ils peuvent percevoir plus de frais puisque chaque bloc contient plus de transactions. Cela a également un impact sur les frais pour l'expéditeur. Un  « legacy transaction » est toujours plus cher car il est plus lourd et nécessite de payer des frais plus élevés pour être confirmé à la même vitesse qu'une transaction SegWit.

Les formats d'adresse

Il existe trois types de formats d'adresses qui ont été introduits avec Bitcoin. Le premier est celui des adresses de legacy, qui commencent toujours par 1 :

1Mpf72Q2xwi1okJL1RCaQeVRPKDhEWRtXt

Les secondes sont les adresses SegWit, elles commencent par 3 :

392PTfCzykHSyteg6umCCvbrofRSoJb96i.

Et les troisièmes sont des adresses SegWit natives (bech32) commençant par bc :

bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

Native SegWit est un nouveau format qui est encore plus efficace en termes de poids et offre une meilleure détection des erreurs que le format SegWit original. En effet, l'utilisation de bech32 permet d'obtenir les frais les moins élevés et les transactions les plus rapides possibles sur le réseau Bitcoin.

FAQ: SegWit

SegWit est-il sécurisé ?

Oui, l'utilisation de SegWit ne pose aucun problème de sécurité. Il s'agit en fait d'une mise à jour de sécurité si l'on considère la suppression de la malléabilité des transactions non confirmées.

Y a-t-il d'autres avantages ?

SegWit a permis l’implémentation de Taproot qui permet des contrats intelligents et des validations encore plus rapides.

Suis-je obligé d'accepter les transactions SegWit ?

Vous pouvez toujours opter pour un legacy wallet qui n'utilise pas SegWit. Il est toujours possible d'envoyer des fonds entre des adresses Legacy et SegWit. Mais en contrepartie, les transactions coûteront plus cher et seront plus lentes.

Attendez, cela signifie-t-il que SegWit augmente la taille des blocs après tout ? Pourquoi avoir un débat alors ?

La taille des blocs a été augmentée à un niveau théorique de 4 mégaoctets. La taille moyenne des blocs est maintenant d'environ 2 mégaoctets. L'avantage de SegWit est qu'il est compatible à la baisse en respectant la limite de 1 mégaoctet des blocs de transaction. Il n'a pas nécessité de modification du protocole initial. En revanche, l'augmentation de la taille des blocs au-delà de cette limite nécessiterait un hard fork qui est considéré comme un événement critique.

Trader à tout moment, n'importe où

Augmentez votre impact de trading et votre temps de réaction dans plus de 70 crypto-monnaies grâce à l'accès instantané à votre portfolio avec l'application LiteBit.

download-app