SegWit est une solution conçue pour résoudre le problème de la malléabilité des transactions Bitcoin et améliorer son évolutivité.
De parmi les grandes améliorations qu'il a subies Bitcoin depuis sa création, SegWit a été l'un des plus importants et des plus transformateurs de cette blockchain. SegWit est la contraction de Témoin séparé o Témoin séparé, nom utilisé pour une modification du format de transaction Bitcoin. Ceci est une proposition d'entreprise Blockstream et l'équipe de développement client Bitcoin Core.
cette fourchette souple, a été proposé dans l'un des BIP, en particulier sous le BIP-141, Sous le nom de "Témoin séparé (couche consensus)". Avec cette amélioration de Bitcoin, on a cherché à résoudre deux problèmes:
- Résolvez le problème de malléabilité des transactions.
- Améliorez l'évolutivité du réseau Bitcoin.
Mais son utilisation s'est étendue au-delà du Bitcoin, atteignant d'autres blockchains telles que Litecoin, DigiByte, VertCoin et même EOS. Tous ont le même problème à résoudre et qui ont vu SegWit comme une solution idéale pour eux.
Cours d'introduction à DeFi
MoyenneIl est temps de mettre à jour. La finance traditionnelle a changé, découvrez l'écosystème révolutionnaire de la finance décentralisée (DeFi).
La naissance de SegWit
Pendant le boom de la crypto-monnaie, Bitcoin a rencontré des problèmes en raison de la façon dont sa structure de transaction fonctionnait. Ces limitations sont devenues plus apparentes lorsque Bitcoin a fait face à des niveaux élevés de transactions. Le résultat était que Bitcoin était incapable de gérer le nombre énorme de transactions sur le réseau de manière optimale.. Sa capacité à traiter 7 à 8 transactions par seconde, s'est avérée insuffisante pour les besoins du réseau et son nombre croissant d'utilisateurs.
En plus de cela, les développeurs ont considéré le risque sérieux que les transactions Bitcoin soient malléables. Ce qui pourrait conduire à des manipulations pouvant entraîner la perte de centaines ou de milliers de bitcoins sur le réseau. Une autre situation inacceptable. Pour résoudre ce problème, les développeurs de Bitcoin Core et Blockstream se sont mis au travail. Après un travail acharné, SegWit a proposé une proposition présentée sur Décembre 21 2015, par les développeurs Éric Lombrozo, Johnson Lau y Pieter Wuille.
SegWit a proposé de résoudre le problème de la malléabilité des transactions et de l'évolutivité du Bitcoin. Pour y parvenir, SegWit sépare le Scripts Bitcoin et des signatures cryptographiques à une nouvelle structure de bloc. Alors que les blocs avec les transactions étaient dans une autre structure. Tout cela, sans casser la possibilité de vérifier à tout moment les signatures et les transactions dans chaque structure grâce au arbre merkle.
Les problèmes résolus par SegWit
Les problèmes que SegWit a résolus dans Bitcoin sont au nombre de deux: la malléabilité et la capacité à améliorer son évolutivité. Pour mieux comprendre les deux points, il est préférable de les expliquer plus en détail:
Malléabilité
Malléabilité, C'est la possibilité qu'un tiers puisse modifier un code ou une série à volonté. À l'origine en Bitcoin, cette propriété est considérée comme un type de attaque par déni de service (DoS). Il en est ainsi parce que la malléabilité conduit à la identifiant de transaction (TXID), Il peut être modifié dans les transactions non confirmées.
Ce problème est lié au fait que les hachages de signature Bitcoin ne protègent pas le script de signature (scriptSig). Ce script inclut un type de signature (secp256k1) Ce n'est pas possible "signer" Également. De plus, la façon dont le TXID est calculé permet qu'il y ait la possibilité qu'un tiers avec de mauvaises intentions modifie l'identifiant d'une certaine transaction non confirmée. Ces deux problèmes créent une faiblesse qui permet à un attaquant de modifier le TXID à volonté alors que la transaction est dans l'état non confirmé.
Suite à cette modification, si vous souhaitez tracer un certain TXID sur le réseau, il est introuvable car il a été modifié. Cela conduirait le destinataire à se méfier de l'expéditeur et même à rompre la confiance dans l'ensemble du réseau.
Un exemple plus simple du problème de malléabilité
Pour expliquer plus facilement la situation ci-dessus, considérons cet exemple:
Maria a fait une transaction avec Daniel. Les fonds de cette transaction seront utilisés par Daniel pour payer Sofía lors d'une deuxième transaction. Mais il arrive qu'un mineur par erreur ou un tiers malveillant modifie le TXID de la transaction de Maria à Daniel et le confirme avec ce TXID différent. Cela signifie que le paiement de Daniel à Sofia sera invalidé. Dans ce scénario, l'honnêteté des parties commence à jouer un rôle transcendantal. En effet, si Daniel est honnête, il renverra les fonds à Maria. Mais si vous êtes malhonnête, vous pouvez conserver les crypto-monnaies.
Avec cet exemple, nous pouvons voir d'une manière simple que, lorsque les fonds atteindront leur destination, ils le feront avec un TXID différent de celui de leur créateur (María). Ainsi ce dernier (Daniel) s'apercevra que sa transaction a disparu du réseau. En modifiant l'identifiant sans invalider la transaction en question, les transactions enfants sont invalidées. En effet, les nouvelles transactions sont liées aux anciennes.
Évolutivité
Le pire problème auquel les développeurs et les supporters de Bitcoin ont été confrontés était: évolutivité. Le trafic élevé sur le réseau Bitcoin, est loin des promesses de transactions rapides et à faible coût. En effet, la montée en puissance du Bitcoin a poussé le réseau à sa limite au point qu'une transaction a pris des heures à se confirmer. De plus, le coût par commission supprimait la possibilité d'utiliser des bitcoins pour effectuer des micropaiements. C'était une petite catastrophe qui a coûté cher à la communauté qui a soutenu Bitcoin en tant que technologie de paiement globale, rapide et sécurisée.
Pour y remédier, les développeurs de SegWit ont cherché à atténuer cette situation et à jeter les bases de nouvelles formes d'évolutivité. Pour obtenir, SegWit sépare ou sépare les scripts de transaction et les signatures dans une nouvelle structure. Dans le même temps, il était possible d'augmenter la taille de bloc à 1,8 Mo, par rapport à la taille de bloc d'origine de 1 Mo. Cela a un fort impact sur l'évolutivité et le nombre de transactions par bloc dans Bitcoin.
Grâce à cela, il était possible de mettre plus de transactions dans un bloc et d'augmenter le nombre de transactions traitées chaque seconde. Une situation qui a un impact positif sur la réduction des frais de commission et la rapidité de confirmation des transactions. Cependant, SegWit a également permis de démarrer la construction de nouveaux systèmes d'évolutivité en surmontant le problème de malléabilité et de signatures au sein des blocs.
Dans ce cas particulier, nous entendons Réseau Lightning. Cette solution d'évolutivité conçue par Blockstream utilise le même format SegWit pour effectuer des transactions dans ses canaux. Une situation qui se clarifie directement dans le documentation RFC Lightning Network.
L'impact de SegWit sur Bitcoin
SegWit a été un changement assez important dans la gestion des transactions Bitcoin. D'une part, il a apporté au réseau Bitcoin un fourchette souple qui permet aux nœuds hérités (sans SegWit) et aux nœuds SegWit de fonctionner en même temps. Tout cela sans interrompre le travail du réseau, ni compromettre sa sécurité.
D'autre part, SegWit ouvre la porte à des blocs de plus grande taille pour Bitcoin. L'un des plus grands changements structurels de SegWit, est d'amener la taille maximale du bloc Bitcoin, de 1 Mo à 4 Mo. De cette manière, SegWit garantit des mises à jour importantes de la taille des blocs Bitcoin sans avoir à appliquer un hard fork et ses conséquences. Un autre changement important de SegWit est qu'il a généré un nouveau type d'adresses Bitcoin, appelées adresses SegWit commençant par "bc1" o "3".
En plus de cela, SegWit a permis à un utilisateur disposant d'un portefeuille prenant en charge SegWit d'envoyer des crypto-monnaies à un utilisateur disposant d'un ancien portefeuille (et d'une adresse). De cette manière, l'utilisateur de SegWit bénéficie d'un coût par transaction inférieur et d'une confirmation plus rapide. La même chose peut se produire dans le sens inverse, un utilisateur hérité peut envoyer des crypto-monnaies à un utilisateur avec SegWit, en utilisant une adresse héritée mais sans profiter des avantages de SegWit.
À son tour, La proposition de SegWit a préparé le terrain pour la création du Lightning Network. Ceci, grâce à SegWit, est nécessaire dans cette nouvelle structure pour s'assurer que les transactions hors chaîne ne sont pas vulnérables à une attaque de malléabilité. Une situation qui est expliquée en détail dans le whitepaper du réseau Lightning.
Avantages de SegWit
- Cela rend les attaques de malléabilité des transactions impossibles. Ceci en séparant les données de signature du reste des données dans une transaction.
- Augmentez la taille du bloc à un maximum de 4 Mo.
- La présence de données témoins devient facultative et ne sera nécessaire que lorsque les données témoins sont noeuds nécessitent de valider une transaction, mais pas de la vérifier.
- Le SPV (Simplified Payment Verification, ou Simplified Payment Verification) améliorera son fonctionnement. Ceci est dû à la réduction de la taille des tests de vérification et à l'utilisation de la bande passante.
- Il jette les bases des protocoles d'évolutivité comme le Lightning Network en résolvant le problème de la malléabilité.
- Réduit la concurrence pour les tarifs prioritaires entre les utilisateurs. Cela diminue par conséquent les commissions de réseau.
Activation de SegWit sur le réseau Bitcoin
El 21 de julio de 2017, Les mineurs de Bitcoin ont fait une nouvelle mise à jour logicielle. À ce moment-là, les mineurs ont suivi le protocole décrit dans la proposition d'amélioration de Bitcoin. BIP-91. Cela a ouvert la voie à cette mise à jour et à l'activation finale de SegWit. Dans cette proposition, le travail de Luke Dashjr a été décisive pour le succès de cette opération.
El 8 Août 2017 l'autre grande étape a été franchie. À ce moment-là, il a été indiqué que 100% des pools de minage Bitcoin indiquaient une compatibilité avec SegWit. Cependant, SegWit ne serait pas complètement activé avant le 21 août au plus tôt. Après ce point, les mineurs pouvaient rejeter les blocs qui n'incluaient pas les transactions SegWit.
F 23 Août 2017, SegWit est officiellement activé pendant l'extraction de blocs 481.822 hautement qualifiés dédiés à la conception, à la 99,95% soutien dans le réseau.
Portefeuilles avec prise en charge de SegWit
Pour que les utilisateurs de Bitcoin puissent utiliser les transactions SegWit, ils doivent utiliser un portefeuille prenant en charge cette fonctionnalité. Ces portefeuilles peuvent fournir aux utilisateurs des adresses héritées ou des adresses SegWit pour envoyer et recevoir des transactions. Parmi les portefeuilles Bitcoin qui offrent un tel support, on peut citer:
- Ledger. Il s'agit d'un fabricant de portefeuilles matériels prenant en charge une grande diversité de devises. Ils incluent tous la prise en charge de la mise en œuvre de SegWit pour Bitcoin, sans compromettre les fonctionnalités de sécurité du produit.
- Coffre-fort C'est un autre fabricant de portefeuilles matériels qui offre une prise en charge de SegWit sur ses appareils.
- Bitcoin Noyau. C'est le portefeuille incontournable de l'équipe de développement Bitcoin. Inclut la prise en charge de SegWit à partir de la version 0.13.1.
- Armurerie Bitcoin. Ce portefeuille est écrit dans le langage de programmation Python et prend également en charge SegWit. Il est disponible pour les systèmes d'exploitation de bureau Windows, Linux et Mac OS X.
- Électre. Il s'agit d'un portefeuille disponible pour le système d'exploitation Android sur les mobiles et pour Windows, Linux et Mac OS X. Actif depuis 2011, c'est l'un des portefeuilles avec une base d'utilisateurs fidèles dans la communauté Bitcoin. Il est open source et prend en charge SegWit, permettant également aux utilisateurs de configurer les frais de transaction.
- Bits verts. Ceci est un autre portefeuille avec le support de SegWit. Il est disponible pour Android et iOS. Il permet également aux utilisateurs de l'utiliser via une extension Google Chrome ou via le Web.
- Samouraï. Il s'agit d'un projet en développement, mais il prend également en charge l'amélioration de SegWit. Samourai est un projet axé sur la confidentialité et l'anonymat.
- Coinomi. Ce portefeuille est multi-crypto-monnaie et offre un support SegWit pour Bitcoin et Litecoin