Bitcoin – La guerre des blocs

Rappel sur le protocole Bitcoin actuel :

 

 

Le protocole Bitcoin définit la façon dont est maintenu son registre comptable, la blockchain, grâce à ses règles de consensus. Les blocs sont reliés entre eux par les mineurs grâce à la preuve de travail en tirant partie de la nature aléatoire de la fonction de hachage utilisée par le protocole sur un modèle économiquement incitatif. Les développeurs de Bitcoin Core ont fixé la taille maximale des blocs à 1 Mo dès le départ, suivant les recommandations de Satoshi Nakamoto afin de se préserver d’éventuelles attaques, tout en laissant libre à la communauté le futur choix de changer ou non cette limitation en fonction du développement du réseau. Tout bloc de taille supérieure est rejeté et le seul moyen de changer ces règles inscrites dans le code source est d’effectuer une hard fork de la blockchain, qui devra alors être adoptée par une large majorité pour être effective.

Soft Fork : modification des règles de consensus qui vise à les rendre plus strictes; la nouvelle version du protocole reste donc compatible avec les anciennes.

Hard Fork : modification des règles de consensus qui a pour effet de rendre les nouvelles règles incompatibles avec les précédentes (c’est le cas si l’on augmente la taille maximale des blocs minés)

Tel que défini dans le white paper original de Satoshi Nakamoto, le protocole a pour but de créer un réseau de paiement mondial, accessible à tous, basé sur la preuve cryptographique plutôt que la confiance en un tiers pour effectuer des transactions. Le problème de la taille des blocs est donc posé dès le départ, car plus l’adoption de Bitcoin est grande et donc le volume de transactions effectuées sur le réseau élevé, plus le délai de traitement des transactions ainsi que leurs frais associés grandit. L’idée de modifier ce paramètre a donc été évoquée par Satoshi Nakamoto lui-même, mais la communauté n’a jamais réussi à trouver un compromis satisfaisant en sept ans d’existence. Actuellement, les problèmes d’engorgement du réseau ont relancé fortement les débats, et même si des solutions alternatives à une augmentation de la limite de taille ont été proposées, les plus gros mineurs font fortement pression afin que l’écosystème adopte la dernière proposition en date, Bitcoin Unlimited, qui retire purement et simplement cette limite du code source du protocole.

 

Problèmes de scalabilité – les soft forks proposées :

Délai de traitement des transactions par frais, source : https://bitcoinfees.21.co/

Le réseau Bitcoin fait face à un phénomène d’engorgement : on assiste à une très forte montée en charge en raison de l’adoption croissante des cryptomonnaies. Face à ce défi, améliorer la “scalabilité”[1] de Bitcoin, les développeurs ont toujours été divisés, de nombreuses solutions alternatives à l’augmentation de la taille des blocs ont donc été proposées :

  • Teechan : il s’agit d’un canal de paiement off-chain ne nécessitant pas l’activation de Segwit pour fonctionner. Le whitepaper est disponible ici.
  • Duplex Micropayments Channels : une autre alternative proposée par le Dr Christian Decker (ETH Zurich) et le Pr Roger Wattenhofer. Le whitepaper est disponible ici.

Malheureusement, malgré son apparente utilité, Segwit n’est pas adopté par les mineurs, et les développeurs des versions du protocole alternatives à Bitcoin Core urgent ces derniers d’adopter la leur. Avant de présenter les principales proposals[2] et de s’arrêter sur Bitcoin Unlimited dont l’adoption par les mineurs est grandissante, il faut énoncer les enjeux du débat.

Petits blocs versus gros blocs :

Le minage est ce que l’on appelle en théorie des jeux un jeu à somme nulle. Toute récompense acquise par un mineur est une récompense en moins pour les autres :

  • Les mineurs souhaitent obtenir le plus de récompenses possible lorsqu’ils produisent des blocs.
  • Les mineurs ont plus de risques de voir leurs blocs devenir orphelins[3] lorsqu’ils sont plus gros.
  • Les mineurs ne souhaitent pas vider le memory pool[4] à chaque fois qu’un bloc est miné étant donné que cela ôterait la nécessité de payer des frais pour les utilisateurs.
  • Les mineurs veulent s’assurer que le mempool garde une taille raisonnable car les utilisateurs ne souhaitent pas voir leurs transactions mettre des jours à être confirmées, ou les frais associés devenir trop élevés: ils se tourneraient alors vers d’autres moyens de paiement, ce qui affecterait le cours du bitcoin donc le revenu des mineurs.

C’est sur le compromis entre ces différents points que le marché des frais de transaction s’établit et qu’un prix d’équilibre doit émerger par consensus : avec des blocs de taille fixe, ce marché est déterminé avant tout par la compétition entre les utilisateurs pour y inclure leurs transactions le plus vite possible. Dans le cas des blocs de taille variable voire illimitée ce sont les mineurs qui auront le pouvoir.

Les arguments en faveur de l’augmentation de la taille des blocs :

  • Plus de transactions seront traitées par seconde : c’est évidemment le principal argument en faveur de l’augmentation de la taille des blocs. Le réseau serait moins congestionné, et à terme, pour que Bitcoin puisse être adopté par le grand public et utilisé comme un réseau de paiement planétaire adapté à tous types de transactions comme le souhaitait Satoshi Nakamoto, augmenter la taille des blocs paraît inéluctable.
  • Les solutions off-chain[5] pour désengorger le réseau ne sont pas prêtes à être déployées : le Lightning Network n’est qu’en cours de développement et Segregated Witness ne fait pas l’unanimité pour l’instant.
  • Cela laisserait plus d’espace aux extensions (ex : Counterparty ou Mastercoin).

Les arguments opposés à l’augmentation de la taille des blocs :

  • Une hard fork requiert un consensus suffisant : un large pourcentage des mineurs (entre 75 et 95% en fonction des versions) doivent adopter le nouveau protocole afin de l’activer. C’est une procédure risquée aux conséquences incertaines, pouvant mettre en jeu la sécurité du réseau.
  • Il y aura une augmentation du taux de blocs orphelins dû à la vitesse de propagation lente.
  • Augmenter la taille des blocs est désavantageux pour les petites pools de minage.
  • Ne pas limiter la taille maximale des blocs conduira la chaîne principale à supporter l’intégralité des transactions.

Les problèmes de centralisation du réseau engendrés par une augmentation de la taille des blocs :

  • De plus gros blocs conduiront à l’augmentation du prix du maintien d’un noeud complet du réseau (coûts matériels, connexion Internet).
  • Maintenir un noeud complet tout en minant plutôt que permettre à une entité de disposer de sa puissance de hachage diminue le pouvoir des gros mineurs. Seuls ceux qui possèdent un noeud complet sont maîtres de leur puissance de hachage.
  • Plus la puissance de hachage contrôlée par un mineur est importante, plus le réseau est centralisé et plus son utilisation requiert de la confiance.
  • Ainsi, augmenter la taille des blocs ferait diminuer le nombre de noeuds complets et augmenterait donc la centralisation : certaines entités posséderaient plus de pouvoir, ce qui conduirait Bitcoin à nécessiter plus de confiance, or, ce qui fait la valeur de Bitcoin, c’est précisément la décentralisation qui permet de se passer de confiance pour effectuer sa transaction.

Le risque d’accroissement de la centralisation du réseau est donc important. Laisser les mineurs fixer la taille des blocs à leur guise engendre donc le risque que les gros fixent une taille suffisamment élevée pour pouvoir éliminer les plus petits, qui ne couvriraient pas leur frais en ne minant que les blocs de taille réduite.

 

Les principales hard forks proposées :

BitcoinXT : Bitcoin XT est une hard fork implémentant la BIP 101. Elle nécessite une super majorité de 75% des blocs minés pour être effective. La taille des blocs passe à 8 Mo et double tous les deux ans. Très critiquée, si cette proposition de Gavin Andresen et Mike Hearn n’a jamais fait consensus, elle a eu le mérite d’élever le niveau du débat autour de la taille des blocs.

Bitcoin Classic : cette proposition alternative est focalisée sur la scalabilité on-chain. Bitcoin Classic part du principe que la taille des blocs ne dépend que des besoins du réseau – frais payés par les utilisateurs et état de la technologie – et qu’il s’agit de laisser aux mineurs le choix la taille des blocs, le marché aidant à déterminer la taille d’équilibre. Si l’idée originelle était de se baser sur la BIP 109 (blocs de 2 Mo), désormais chaque noeud pourra configurer la taille maximale des blocs qu’il accepte avec le paramètre blocksizeacceptlimit. Les développeurs Gavin Andresen, Jeff Garzik, Pedro Pinheiro, Tom Zander, Jon Rumion, et Peter Rizun soutiennent Bitcoin Classic.

Bitcoin Unlimitedcette proposition qui a fait couler beaucoup d’encre abandonne purement et simplement la limitation de taille inscrite dans le code source du protocole et laisse aux acteurs du réseau le pouvoir de changer la taille des blocs acceptés ou produits. Bitcoin Unlimited propose trois options, configurables depuis une interface graphique : Maximum Generation SizeExcessive Block Size, et Excessive Acceptance Depth. La première, réservée aux seuls mineurs, définit la taille du bloc miné. La seconde fixe la taille maximale des blocs acceptés par un noeud du réseau ou un mineur. Ces deux options présentent un risque de hard fork dans le cas où des mineurs résolveraient les blocs “classiques” (taille par défaut de 1 Mo) tout en rejetant les blocs plus volumineux tandis que d’autres construisent une chaîne différente. Les développeurs de BU prétendent que la troisième option permet de surpasser ce risque en fixant un nombre de “confirmations de validité” d’un bloc (le nombre de blocs minés par le reste du réseau à la suite du bloc “litigieux”), qui sera automatiquement et rétroactivement accepté quelle que soit sa taille si cette limite est atteinte.

Bitcoin Unlimited est promu par des figures historiques de la communauté comme Roger Ver qui a même lancé une mining pool dédiée.

Un des reproches faits à BU est de favoriser un nouveau type d’attaque : un mineur fortuné pourrait, par exemple, soumettre quelques blocs de test au réseau en augmentant progressivement leur taille et regarder quel pourcentage du hashrate est capable de suivre. Le but serait alors de trouver une taille de bloc qui force 5 à 10 % des mineurs à changer leur matériel ou à stopper le minage. Une fois que l’opération serait terminée, les récompenses du mineur augmenteraient (le minage est un jeu à somme nulle). Il pourrait la répéter plusieurs fois et au bout d’un certain temps, seuls ceux qui ont les meilleurs serveurs et les meilleures connections pourraient traiter ces gros blocs. Celui qui a un gros budget pourrait aisément investir pour s’adapter à la taille grandissante des blocs mais pas les plus petits. Ainsi, en réitérant cette opération de façon stratégique (attendre qu’un groupe de mineurs soit complètement éliminé avant de s’attaquer au second), il serait possible d’obtenir un monopole.

L’argument des développeurs de BU est que le modèle incitatif du minage préviendra d’une telle collusion et que le marché libre incitera les mineurs à trouver le meilleur consensus quant à la taille optimale des blocs : selon eux, BU ne diffère pas de Bitcoin Core sur ce point et tout repose sur le consensus de Satoshi Nakamoto (moins de la moitié des acteurs du système sont malicieux grâce à l’incitation économique).

Support des mining pools pour Unlimited, SegWit et Classic en % de blocs minés au 22/03 – Source : https://coin.dance

Sans surprise, la proposition Bitcoin Unlimited a reçu le soutien des plus grosses sociétés de minage de l’écosystème, notamment Bitmain.

 

La réaction des plateformes de change

Globalement, les plateformes de change ont déclaré qu’en cas d’activation de Bitcoin Unlimited, elles traiteront les deux versions du protocole Bitcoin comme deux chaînes différentes offrant l’accès à deux tokens distincts : le bitcoin originel, dénominé BTC ou XBT et le “nouveau” bitcoin unlimited, dénommé BTU ou XBU.

Exchanges : quel plan en cas de « hard fork » ?

La plateforme BitFinex propose désormais des CSTs – Chain Split Tokens – qui permettent de spéculer sur la fork potentielle entre Bitcoin Core et Bitcoin Unlimited : l’utilisateur peut fractionner ses bitcoins, se retrouvant avec des BCCs et des BCUs et passer librement de l’un à l’autre. A l’issue de l’année 2017, en fonction de l’approbation de Bitcoin Unlimited, les BCUs seront convertis ou détruits.

La firme Circle (solutions de paiement via Bitcoin) vient de mettre à jour les agréments de son contrat utilisateur en y ajoutant un long paragraphe consacré à l’éventualité d’une hard fork de la blockchain. Sa position est la suivante : l’entreprise se réserve le droit de suspendre toutes les activités liées à Bitcoin pour une période temporelle laissée à sa discrétion. Elle enjoint ses clients à convertir leurs bitcoins en monnaie fiat afin de se prémunir de toute conséquence négative d’un tel événement.

 

Quelles conséquences pour l’utilisateur ?

Le cours du bitcoin est affecté négativement par ces incertitudes sur l’avenir de la blockchain originelle.

L’adoption de Bitcoin Unlimited paraît prématurée, d’autant plus qu’au-delà du pouvoir trop important donné aux mineurs, deux bugs ont déjà été découverts dans le code source de BU, causant l’arrêt total de 70% des noeuds l’ayant déployé le 13 mars. Qui plus est, l’équipe de développeurs derrière BU ne fait pas l’unanimité en termes d’expérience et de fiabilité.

Une hard fork comporte de nombreux risques et la communauté Bitcoin dans sa globalité n’a aucun intérêt à précipiter un tel événement, mais sa probabilité augmente avec le temps et le lobbying des plus gros mineurs en faveur de Bitcoin Unlimited.

En cas de hard fork, comme ce fut le cas pour Ethereum lors de l’affaire de la DAO, la valeur combinée des chaînes résultantes sera probablement inférieure à la valeur actuelle de la blockchain. De plus, la chaîne minoritaire pourrait être attaquée beaucoup plus facilement par les autres mineurs qui disposeront d’une puissance de hachage suffisante pour faire du selfish mining[6] voire mener une attaque de type 51%.

Si les mineurs décident massivement d’opter pour Bitcoin Unlimited mais que certains gardent Bitcoin Core et ses blocs limités à 1 Mo, la blockchain se séparera en deux (coin split entre BTC et BTU) et les détenteurs de bitcoins se retrouveront avec des coins sur les deux chaînes. Il y a donc un risque de replay : si une transaction est traitée par les deux réseaux, elle peut être valide sur les deux chaînes. Il pourrait donc arriver qu’en envoyant des BTC, on envoie également des BTU ou inversement. Si une fork se produit, il faudra donc être très précautionneux et attendre de voir quel est le gagnant avant d’effectuer des transactions, d’autant plus que si Bitcoin Unlimited repasse derrière la blockchain originelle en terme de preuve de travail totale, tous les BTUs seront détruits (les blocs de la chaîne Bitcoin Unlimited deviendront orphelins).

En cas de hard fork, l’approche la plus prudente consiste donc à vendre ses bitcoins en échange de monnaie fiat ou autre cryptodevise. Celui qui a investi à long terme peut adopter celle du wait and see : sécuriser ses bitcoins en contrôlant soi-même ses clefs privées (par exemple via un hardware wallet[7]) et attendre de connaître l’issue de la fork éventuelle avant d’effectuer des transactions. L’approche agressive consiste bien sûr à spéculer sur les deux tokens en même temps.

 

Conclusion :

La communauté Bitcoin doit donc trouver un consensus autour de l’axe économique (modèle incitatif et marché des frais de transactions), sécuritaire (protection de l’intégrité des transactions) et idéologique/politique (gouvernance de l’écosystème). Tous ces débats au sein du réseau montrent que Bitcoin est encore jeune et que de nombreuses améliorations doivent encore être proposées, testées et déployées. La question de la gouvernance du système par ses différents acteurs (développeurs, mineurs, plateformes d’échange et utilisateurs) se pose toujours, et face à des décisions importantes la communauté doit agir de manière coordonnée et décentralisée afin de respecter l’héritage de Satoshi Nakamoto.

 

Image d’en-tête : Bitcoin keychains on circuit board par BTC Keychain (license Creative Commons).

À propos de l'auteur

Les deux tabs suivants changent le contenu au-dessous.

Morgan Phuc

Editeur / Rédacteur chez BitConseil
Co-fondateur de BitConseil, il est aussi éditeur et rédacteur sur BitConseil.fr ·
Issu d'un cursus universitaire (Mathématique – Informatique - Mécanique, Energétique et procédés), impliqué dans l'écosystème Bitcoin et l'univers des monnaies décentralisées depuis 2015, il est l'auteur de nombreux articles d'analyses et d'informations à ce sujet.
QR Code pour faire un don en bitcoins à Morgan Phuc

Cet article vous plait ?

Vous pouvez faire un don à .
Utilisez l'adresse Bitcoin suivante ou le QR Code pour envoyer votre don.

Bitcoin 3BiUVCq2LENiJWDeCS2xmiNLWdUuMG3MPa
Faire un don

Vous pourriez aussi aimer

Les derniers articles

Commentaires