Bitcoin et scalabilité
Dans le cours 15 de la section Intermédiaire de l’Academy, nous avons évoqué le concept de mise à l’échelle de Bitcoin et des autres réseaux de blockchain. Si le réseau Bitcoin fonctionne sans incident notable depuis plus de 10 ans maintenant, les coûts de transactions ont atteint à plusieurs occasions des montants trop élevés. En conséquence, les développeurs de Bitcoin ont débattu sur la meilleure façon de mettre le réseau à l’échelle pour gérer les volumes de transactions croissants à venir.
En 2017, l’introduction d’une fonctionnalité appelée SegWit issue d’un soft fork créa une division au sein de la communauté des développeurs de Bitcoin. Comme nous l’avons expliqué dans le cours 8 sur les hard forks et les soft forks, ce débat a provoqué une scission importante dans la communauté Bitcoin, qui existe encore aujourd'hui.
Qu’est-ce que SegWit ?
L'objectif principal de SegWit est d'améliorer le débit des transactions sur un réseau blockchain. Il convient de noter que la première cryptomonnaie à avoir introduit la couche SegWit n'était pas Bitcoin, mais Litecoin.
En bref, SegWit réduit le poids des transactions d’un bloc d’une blockchain en séparant (« segregating ») une transaction en deux sections, ce qui augmente effectivement le nombre de transactions que l'on peut inclure dans un bloc de même taille.
La première partie d'une transaction contient les wallet-adresses de l'expéditeur et du destinataire ; la deuxième partie se compose des données témoins (« witness data » en anglais) comportant les signatures de la transaction. SegWit sépare les données témoins du bloc principal, réduisant considérablement la taille de la transaction. Les transactions nécessitent donc moins d'espace, ce qui permet d’augmenter le nombre de transactions par bloc et la capacité du réseau Bitcoin.
La première partie d'une transaction contient les wallet-adresses de l'expéditeur et du destinataire ; la deuxième partie se compose des données témoins (« witness data » en anglais) comportant les signatures de la transaction.
De plus, SegWit a permis de corriger une faille dans le protocole Bitcoin qui permettait aux utilisateurs de modifier les hashes de transaction. La modification d'un seul caractère d’une signature numérique entraîne un hash de transaction entièrement différent. Lorsque la signature est retirée des données de la transaction pour être placée dans les données témoins séparées, il n'est plus possible de modifier l'ID de la transaction. Par conséquent, SegWit est une solution à la malléabilité des transactions.