Qu’est-ce que SegWit ?

Qu’est-ce que SegWit ?

Segregated Witness, communément appelé SegWit, représente une mise à niveau cruciale du protocole Bitcoin Core, introduit en 2017. Initialement conçu comme un moyen de répondre aux défis de mise à l'échelle et aux vulnérabilités particulières de Bitcoin, SegWit a apporté un certain nombre d'améliorations significatives. Parmi ses principales réalisations, le protocole a corrigé les problèmes de malléabilité des transactions et augmenté la taille limite des blocs de Bitcoin, facilitant ainsi l'inclusion d'un plus grand nombre de transactions dans chaque bloc. De plus, cette mise à niveau a inauguré deux types de scripts innovants pour les transactions Bitcoin et présenté une nouvelle approche de codage connue sous le nom de Bech32 .

Le chemin vers l'activation de SegWit n'a pas été dénué de défis, car il a suscité un débat considérable au sein de la communauté Bitcoin. De tels différends ont souligné la nature décentralisée inhérente du Bitcoin – un écosystème qui repose sur le consensus entre ses participants mondiaux. Alors que les systèmes centralisés peuvent mettre en œuvre des changements par le biais de décrets faisant autorité, Bitcoin exige une convention collective pour toute modification du protocole. Malgré les controverses autour de SegWit, Bitcoin a fait preuve de résilience et d’adaptabilité, soulignant sa capacité à résister à l’influence indue des mineurs et des personnalités éminentes de la communauté.

Comment fonctionne SegWit ?

Segregated Witness, plus communément appelé SegWit, représente une mise à jour transformatrice du protocole de transaction Bitcoin. Son objectif principal est d'améliorer l'efficacité des transactions et de résoudre la malléabilité non intentionnelle des transactions. En divisant la transaction en deux composants, le premier englobant les adresses des portefeuilles de l'expéditeur et du destinataire et le second contenant les signatures de transaction ou les données des témoins, SegWit allège le poids du bloc. Cette séparation garantit que davantage de transactions s'inscrivent dans un seul bloc Bitcoin, favorisant ainsi un débit accru et une diminution des frais de transaction.

Contrairement à un hard fork, qui divise une blockchain en deux chaînes distinctes, SegWit a été implémenté comme un soft fork . Cela signifie qu'il reste une blockchain Bitcoin unifiée acceptant les blocs des utilisateurs compatibles et non activés avec SegWit. En déplaçant les données de signature hors du bloc de transaction principal tout en conservant ses capacités de vérification, l'intégrité de Bitcoin est préservée, permettant davantage de transactions dans le bloc standard de 1 mégaoctet. Le résultat est un réseau Bitcoin à la fois plus rapide et plus sécurisé.

En complément de SegWit, la norme d'adresse Bech32. Ces adresses « natives SegWit », identifiables par leur préfixe « bc1 », contrastent avec les adresses Legacy traditionnelles qui commencent par « 1 ». En adoptant SegWit et la norme Bech32, les utilisateurs bénéficieront de frais de transaction réduits. Il est essentiel de noter que même si les Bitcoins stockés dans les adresses héritées y restent jusqu'à la transaction, tout changement par rapport à ces adresses, lorsqu'il fait partie d'une transaction, sera transféré vers une adresse SegWit. Au fil du temps, à mesure que les utilisateurs effectuent des transactions et reçoivent des fonds vers des adresses SegWit, leurs soldes Bitcoin se déplaceront de manière organique vers ces adresses plus efficaces.

Comment SegWit résout-il la malléabilité des transactions ?

Segregated Witness, communément appelé SegWit, est une mise à niveau cruciale du protocole Bitcoin, principalement conçue pour résoudre le problème de la malléabilité des transactions. Ce problème fait référence à la modification potentielle des données de transaction avant leur confirmation sur la blockchain.

Explorer la malléabilité des transactions

Imaginez un scénario dans lequel John doit 10 BTC à Steven. Steven, dans une intention malveillante, modifie les données des témoins de John avant que le réseau ne confirme la transaction. L'ID de transaction change, même si le contenu de la transaction reste inchangé. Une fois la transaction manipulée confirmée, l'original est annulé. Si Steven prétend à tort qu'il n'a pas reçu les 10 BTC, John pourrait renvoyer le BTC, devenant ainsi victime de l'arnaque sans même s'en rendre compte. De telles manipulations étaient invisibles sur le réseau, ce qui les rendait difficiles à empêcher.

La solution de SegWit au problème

La fonction principale de SegWit est de séparer les données des témoins des données de transaction, en garantissant qu'elles ne peuvent pas être modifiées pour modifier les identifiants de transaction. En développant une sidechain pour stocker ces données témoins séparément de la blockchain principale, SegWit supprime la possibilité de telles altérations malveillantes.

De plus, SegWit maintient une compatibilité ascendante, ce qui signifie que les nœuds exécutés sur le protocole SegWit peuvent toujours interagir avec des nœuds plus anciens. Ce type de mise à niveau est un soft fork, contrairement aux hard forks qui ne sont pas rétrocompatibles et peuvent diviser la blockchain. Un aspect unique de SegWit est que même s'il crypte toutes les données des témoins sur une sidechain, le code racine reste sur la blockchain principale.

SegWit et évolutivité : un match fait pour l'avenir

Au-delà de la malléabilité des transactions, SegWit apporte des avantages significatifs en matière d’évolutivité. L'évolutivité est la capacité du réseau à gérer une augmentation des transactions sans compromettre la vitesse. Bien que de nombreux réseaux blockchain ralentissent à mesure qu'ils se développent, SegWit améliore l'efficacité de Bitcoin.

Le processus de consensus est à l’origine des problèmes d’évolutivité dans de nombreuses crypto-monnaies. Une transaction doit être vérifiée par plus de la moitié des nœuds Bitcoin avant d'être ajoutée à la blockchain. Avec un nombre croissant de nœuds, parvenir à un consensus prend plus de temps. Cependant, SegWit atténue ce souci. Auparavant, les données des témoins consommaient environ 65 % de l'espace d'un bloc Bitcoin. L'approche de SegWit consistant à décharger les données des témoins de la blockchain principale offre plus d'espace pour les transactions, optimisant ainsi la capacité de traitement du réseau sans agrandir la blockchain de Bitcoin. Essentiellement, SegWit rationalise la blockchain, la rendant plus efficace.

Y a-t-il des inconvénients à SegWit ?

SegWit, ou Segregated Witness, est étroitement lié à l'évolution de Bitcoin et suscite diverses perspectives sur son efficacité et son intention.

À la base, la conception de SegWit vise à optimiser la capacité des blocs en stockant sélectivement certaines données de transaction hors de la blockchain principale, en utilisant la chaîne primaire comme référence. Cette approche a été développée pour atténuer les problèmes d’évolutivité inhérents à la conception originale du Bitcoin. Les critiques affirment que le déchargement des données compromet l'intégrité de la blockchain, suggérant qu'il s'agit d'une solution de contournement pour un système intrinsèquement défectueux.

Ce scepticisme autour de SegWit a conduit une faction de la communauté à diverger, initiant un hard fork qui a abouti à la création de Bitcoin Cash en 2017. Essentiellement, Bitcoin Cash reflète le modèle Bitcoin original avant la mise en œuvre de SegWit. Sa solution aux problèmes d'évolutivité se concentre sur l'augmentation de la taille des blocs, garantissant ainsi que toutes les données transactionnelles restent en chaîne. Cette approche contraste fortement avec la philosophie des développeurs de Bitcoin Core qui considèrent SegWit comme la base d'un système de blockchain multicouche.

L'évolution de Bitcoin et la montée en puissance de Bitcoin Cash illustrent les diverses perspectives sur la meilleure façon de faire évoluer et de maintenir les réseaux blockchain décentralisés. Diverses autres crypto-monnaies et protocoles ont vu le jour, chacun apportant de nouvelles solutions et innovations. Bien que SegWit reste une étape importante pour la communauté des développeurs de Bitcoin, il représente également le paysage plus large et en constante évolution de la technologie blockchain et ses diverses approches pour résoudre les défis inhérents.

SegWit active le réseau Lightning

L'une des avancées les plus révolutionnaires rendues possibles par SegWit a été l'intégration du Lightning Network, une solution de deuxième couche conçue pour relever les défis d'évolutivité de Bitcoin. Le réseau Lightning promet des vitesses de transaction plus rapides et des frais réduits en créant des canaux de paiement hors chaîne entre les parties. Cette approche innovante permet de traiter de nombreuses transactions en dehors de la blockchain Bitcoin principale, seuls les soldes finaux des comptes étant enregistrés en chaîne. Le résultat est un système plus efficace et rationalisé, capable de gérer un plus grand volume de transactions en une fraction du temps.

Cependant, le plein potentiel du Lightning Network ne pourrait pas être réalisé sans l'activation de SegWit. Cela est principalement dû au fait que la fondation du Lightning Network s'est fortement appuyée sur des transactions Bitcoin non confirmées. Dans l'état initial du réseau Bitcoin, ces transactions étaient vulnérables à un type d'attaque appelé « malléabilité des transactions ». Essentiellement, les attaquants pourraient modifier l’identification unique d’une transaction avant qu’elle ne soit confirmée, créant ainsi des écarts et des scénarios potentiels de double dépense.

En activant SegWit, la communauté Bitcoin a résolu ce problème de malléabilité des transactions. Ce faisant, il a non seulement renforcé les défenses du réseau, mais a également ouvert la voie au déploiement sécurisé du réseau Lightning. Sans risque de malléabilité des transactions, le réseau Lightning peut fonctionner sans problème, garantissant que les utilisateurs peuvent effectuer des transactions avec plus de rapidité, de sécurité et de rentabilité.

Augmentation de la taille des blocs de SegWit

SegWit, bien que classé comme un soft fork, a apporté des changements importants à l'une des règles de consensus fondamentales de Bitcoin. Ce changement a été mis en œuvre de manière à maintenir la compatibilité ascendante et visait à augmenter la capacité des transactions au sein de chaque bloc.

Avant l'avènement de SegWit, chaque bloc était limité à 1 Mo de données, ce qui se traduisait par environ 1 650 transactions lorsque le bloc était rempli à sa capacité maximale. Cependant, SegWit a introduit le concept de poids des blocs, qui a supplanté la taille des blocs en tant que principale contrainte sur le contenu des blocs. Aujourd’hui, un bloc entièrement chargé héberge près de 2 700 transactions.

Il convient de noter cette distinction : avant l'introduction de SegWit, chaque bloc était limité par une taille de 1 Mo, ce qui représente 1 million d'octets de données de transaction.

En revanche, le poids en bloc utilise un système de mesure plus nuancé, reposant sur des unités de poids. Dans ce système, un octet de données non-témoin d'une transaction équivaut à 4 unités de poids, tandis qu'un octet de données témoin équivaut à seulement 1 unité de poids. Avec un plafond fixé à 4 millions d'unités de poids pour un bloc, un bloc rempli uniquement de transactions non SegWit respecterait toujours l'ancienne restriction de 1 million d'octets.

Cette méthode de mesure innovante garantit que l’incrément de la taille des blocs reste cohérent avec les principes d’un soft fork. De plus, il présente à la fois aux mineurs et aux utilisateurs de Bitcoin des motivations financières pour adopter SegWit. Les utilisateurs effectuant des transactions avec SegWit peuvent bénéficier de frais de transaction réduits puisque les données Witness occupent une plus petite partie de la limite de poids du bloc. Parallèlement, les mineurs traitant les transactions SegWit ont la possibilité d'inclure davantage de transactions dans leurs blocs, ce qui entraîne une augmentation des revenus liés aux frais.

Les nouveaux types de scripts de SegWit

Dans le monde du Bitcoin, les types de script représentent des méthodes distinctes pour effectuer des transactions Bitcoin sur la blockchain via son langage de script propriétaire nommé « Script ». Avec l'avènement de SegWit, deux nouveaux types de scripts ont été introduits pour exploiter les capacités du champ Witness : à savoir Pay-to-Witness-Pubkey-Hash (P2WPKH) et Pay-to-Witness-Script-Hash (P2WSH).

Aperçu essentiel : ces types de scripts, notamment P2PKH et P2SH, qui existaient avant l'ère SegWit, sont appelés « types de scripts hérités ».

Paiement au témoin-PubKey-Hash (P2WPKH)

Avant l'incorporation de SegWit, le script le plus utilisé était le Pay-to-Pubkey-Hash (P2PKH), un mécanisme qui ancrait efficacement le bitcoin au hachage d'une clé publique. P2WPKH, une innovation de SegWit, reflète les fonctionnalités de P2PKH avec une subtile variation. Dans le scénario de dépense d'une sortie P2WPKH, les composants essentiels - la signature et la clé publique - sont installés en toute sécurité dans le témoin. Pendant ce temps, le ScriptSig reste intact. Cette décision stratégique vise à éviter une malléabilité potentielle de l’ID de transaction.

Paiement au témoin-Script-Hash (P2WSH)

Après P2PKH, Pay-to-Script-Hash (P2SH) a gagné du terrain en tant que type de script hérité de premier plan. Il permet aux utilisateurs d'envoyer des bitcoins vers le hachage d'un script arbitraire unique, appelé rachatScript. Toute personne équipée de ce rachatScript et répondant à ses critères stipulés peut récupérer ce bitcoin.

À ses débuts, P2SH s'adressait principalement aux transactions multisig, offrant à la fois une efficacité spatiale et une discrétion améliorées par rapport à ses homologues comme le multisig nu.

Entrez le Pay-to-Witness-Script-Hash (P2WSH) de SegWit. Son mode opératoire est en étroite résonance avec P2SH. Les sorties P2WSH sont déverrouillées lorsqu'elles sont présentées avec le script Witness (la version SegWit du rachatScript) ainsi que les signatures et clés publiques requises. Reflétant l'approche de P2WPKH, les entrées P2WSH nécessitent un champ ScriptSig vacant, reléguant le Script Witness — englobant les signatures vitales et les clés publiques — sur le territoire du témoin.

SegWit enveloppé

L'introduction de nouveaux types de scripts dans le protocole Bitcoin n'est pas une mince affaire, compte tenu de la pléthore de portefeuilles, d'applications et de services qui interagissent avec lui. Pour faciliter la transition et faciliter une adoption progressive de SegWit, un intermédiaire appelé « SegWit enveloppé » a été conceptualisé.

Essentiellement, SegWit enveloppé fonctionne comme une variante de script P2SH traditionnelle. Il intègre de manière transparente un script SegWit natif, qu'il s'agisse de P2WPKH ou de P2WSH, et le fait jouer le rôle de rachatScript d'un script P2SH. Par conséquent, les scripts SegWit encapsulés résultants sont classés comme P2SH-P2WPKH ou P2SH-P2WSH.

Un tel arrangement garantit que même les systèmes non mis à jour pour SegWit peuvent transférer des bitcoins vers des adresses SegWit. Les bénéficiaires de ces transactions SegWit enveloppées sont habilités à utiliser le bitcoin via une entrée SegWit, ce qui peut constituer une possibilité potentielle de réaliser des économies sur les frais.

Sachez que Plisio vous propose également :

Créez des factures cryptographiques en 2 clics and Accepter les dons cryptographiques

12 intégrations

6 bibliothèques pour les langages de programmation les plus populaires

19 crypto-monnaies et 12 blockchains

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.