Cryptozilla » Bitcoin » SegWit (Segregated Witness) : c’est quoi et comment ça marche ?

SegWit (Segregated Witness) : c’est quoi et comment ça marche ?

Share

SegWit, ou Segregated Witness, est une mise à jour majeure du protocole Bitcoin introduite en 2017. Cette innovation a transformé la structure des transactions Bitcoin, résolvant plusieurs problèmes techniques tout en augmentant la capacité transactionnelle du réseau. Mais qu’est-ce que SegWit exactement ? Comment fonctionne-t-il, et pourquoi est-il si important pour l’évolution de Bitcoin ? Plongeons dans les détails pour comprendre cette avancée technologique.

Segwit

Qu’est-ce que SegWit ?

Il s’agit d’une mise à niveau rétrocompatible (soft fork) du réseau Bitcoin qui modifie la manière dont les données de transaction sont organisées. Le nom « Segregated Witness » signifie littéralement « témoin séparé ». Cette mise à jour déplace les données de signature (ou witness), qui valident les transactions, vers une section distincte de la transaction. En d’autres termes, les signatures ne font plus partie intégrante des données principales d’une transaction mais sont isolées dans une base de données séparée.

Cette séparation permet de :

  1. Résoudre le problème de malléabilité des transactions .
  2. Augmenter la capacité du réseau en optimisant l’espace utilisé dans les blocs.
  3. Améliorer la sécurité des transactions, notamment pour les solutions comme le réseau Lightning.

Pourquoi SegWit a-t-il été introduit ?

Avant, les transactions Bitcoin étaient structurées de manière linéaire, avec les signatures incluses directement dans les données de chaque entrée. Cela posait deux problèmes majeurs :

  1. La malléabilité des transactions
    La malléabilité des transactions est un problème où un tiers peut légèrement modifier la signature d’une transaction sans en altérer le contenu, ce qui change son identifiant unique (TXID). Cela rend difficile la construction de systèmes comme le réseau Lightning, qui nécessitent des TXIDs fiables et immuables.
  2. Limitation de la capacité des blocs
    Chaque bloc Bitcoin est limité à environ 1 Mo (avant SegWit). Avec l’augmentation du nombre de transactions, cette limite provoquait des délais et des frais élevés.

SegWit a été conçu pour résoudre ces problèmes en restructurant les transactions et en augmentant efficacement la capacité du réseau.

Comment fonctionne SegWit ?

Son fonctionnement repose sur deux changements principaux :

  1. Déplacement des signatures
    Dans une transaction classique (dite « legacy »), les signatures sont incluses dans les données de chaque entrée. Avec SegWit, ces signatures sont déplacées vers une nouvelle section appelée witness, qui est traitée séparément. Cela permet de réduire la taille effective des données stockées dans les blocs.
  2. Calcul du TXID
    Avant SegWit, le TXID (identifiant de transaction) était calculé à partir de toutes les données de la transaction, y compris les signatures. Depuis cette mise à niveau, le TXID est désormais calculé sans inclure les signatures. Cela élimine le risque de malléabilité, car les signatures ne peuvent plus être modifiées après coup.
Transactions Bitcoin : Tx

Une augmentation de la capacité transactionnelle

Avec SegWit, une nouvelle métrique appelée poids (weight) a été introduite pour mesurer l’impact des transactions et des blocs. Voici comment cela fonctionne :

  • Le poids d’une transaction est calculé comme suit :
    Poids = 4 × taille de base + taille du témoin
    • La « taille de base » correspond aux données traditionnelles de la transaction.
    • La « taille du témoin » correspond aux données de signature.
  • Les blocs ont désormais une limite de 4 millions d’unités de poids , au lieu de la limite stricte de 1 Mo précédente. Cela permet d’inclure davantage de transactions dans un même bloc, augmentant ainsi la capacité effective du réseau.

En pratique, SegWit permet de doubler ou même tripler la capacité transactionnelle du réseau, tout en restant compatible avec les anciennes versions de Bitcoin.

Les nouveaux types d’adresses

SegWit a également introduit de nouveaux types d’adresses pour profiter pleinement des avantages de la mise à jour :

  1. Adresses Bech32 (Natives)
    Ces adresses commencent par bc1 et utilisent un format plus efficace (base 32). Elles sont spécialement conçues pour les transactions SegWit et offrent des avantages tels que des frais plus bas et une meilleure compatibilité avec les codes QR.
  2. Adresses P2SH-P2WPKH et P2SH-P2WSH
    Ces adresses permettent une transition douce entre les anciens systèmes et le nouveau. Elles encapsulent les nouvelles fonctionnalités dans des adresses compatibles avec les anciennes versions.

Les avantages de SegWit

SegWit apporte plusieurs améliorations significatives :

  1. Correction de la malléabilité
    En isolant les signatures, SegWit garantit que les TXIDs restent constants et immuables, facilitant ainsi l’implémentation de solutions comme le réseau Lightning.
  2. Réduction des Frais
    Les transactions occupent moins d’espace dans les blocs, ce qui réduit les frais de transaction pour les utilisateurs.
  3. Amélioration de la scalabilité
    Grâce à l’augmentation de la capacité effective des blocs, SegWit permet au réseau Bitcoin de traiter plus de transactions simultanément.
  4. Compatibilité Rétroactive
    Étant donné que SegWit est un soft fork, il est compatible avec les anciennes versions de Bitcoin. Les nœuds non mis à jour peuvent toujours valider les blocs SegWit, bien qu’ils ne voient pas les données de signature.
Segwit Bitcoin
source : bitnovo.com

Les limites de SegWit

Bien que SegWit soit une avancée majeure, son adoption n’a pas été universelle. Voici quelques défis rencontrés :

  1. Adoption progressive
    Depuis son activation en 2017, l’adoption de SegWit stagne autour de 35 % des transactions Bitcoin. Bien que ce chiffre augmente progressivement, il reste loin d’une adoption totale.
  2. Controverses initiales
    La mise à jour a suscité des débats intenses dans la communauté Bitcoin, notamment entre les partisans de la scalabilité on-chain (augmentation directe de la taille des blocs) et ceux favorables à des solutions comme SegWit.
  3. Coût technique
    L’implémentation de SegWit nécessite des ajustements pour les développeurs et les entreprises, ce qui peut freiner son adoption dans certains cas.

Un pas vers l’avenir

SegWit représente une étape cruciale dans l’évolution de Bitcoin. En résolvant des problèmes importants, cette mise à jour a permis à Bitcoin de rester compétitif face à d’autres cryptomonnaies. Bien que son adoption ne soit pas encore universelle, SegWit a prouvé son importance pour la scalabilité et la sécurité du réseau.

Si vous utilisez Bitcoin aujourd’hui, il est fort probable que vos transactions bénéficient déjà de SegWit. Un autre article pour découvrir Bitcoin :