Evolutivité, scalabilité définition du problème
Le grand problème d’évolutivité ou autrement dit scalabilité du Bitcoin fait plus largement référence aux limites du nombre de transactions que le réseau peut traiter. Cela est lié au fait que les blocs de cette blockchain soient limités en taille ainsi qu’en fréquence.
Les blocs contiennent des transactions cryptées. La capacité de traitement des transactions est elles aussi limitée par le temps moyen de création de bloc (10 minutes pour le Bitcoin) et par la limite de taille de bloc.
La capacité maximale de traitement des transactions est estimée entre 3 et 7 transactions par seconde.
Pourquoi la scalabilité / évolutivité est importante
Si les cryptomonnaies venaient à se démocratiser à une plus grande ampleur dans les années à venir, celles-ci devraient être en mesure de traiter des centaines de milliers de transactions par seconde. Cela est nécessaire pour que les transactions puissent continuer à fonctionner sans retards.
Le problème est aussi que la limite de taille de bloc a entraîné une augmentation des frais de transaction et un traitement différé des transactions qui ne peuvent pas être intégrées dans un bloc.
C’est ce qui a été constaté avec le Bitcoin, car les frais de transactions avaient augmenté, et les transactions prenaient beaucoup plus de temps à être validées. Cela a engendré un nombre important de transactions non confirmées.
Solutions mises en place
Avec Ethereum, il est possible de contribuer par le prix du gas acheté, permettant ainsi d’augmenter la rapidité tout en attribuant des récompenses supérieures au mineurs pour les inciter à prendre ces transactions en priorité.
Cependant cela ne fait que résoudre le problème de façon temporaire, et non pas définitive. Par ailleurs, pour pallier au problème de scalabilité, il est nécessaire de mettre à jour certaines fonctionnalités du Bitcoin.
Cela par une modification du code source qui est alors appelé un fork. Il existe deux types de forks : les hard forks et les soft forks. Au cours des années, des discussions ont ainsi eu lieu pour modifier la taille de ses blocs.
Certaines cryptomonnaies sont alors passées à 8 Mo ou même 32 Mo. Par exemple, en mai 2018, Bitcoin Cash (BCH) a mis en place une mise à niveau permettant de quadrupler la taille de bloc à 32 Mo.
Autres solutions techniques proposées
Segregated Witness (SegWit) est un logiciel d’analyse qui résout la malléabilité des transactions, une faiblesse connue de la sécurité de Bitcoin, tout en augmentant la taille du bloc.
SegWit fonctionne en séparant les données de signature (le « témoin ») des données de transactions. Le cofondateur et développeur de Blockstream, Pieter Wuille, a proposé la séparation des témoins vers la fin de l’année 2015.
Le Network Lightning est une couche secondaire qui s’opère au-dessus d’une blockchain. En théorie, il peut traiter un nombre illimité de transactions et des paiements qui ne sont pas enregistrés publiquement dans la blockchain.
Les soldes finaux ne sont ajoutés à la blockchain que lorsque chaque transaction est terminée. Bien que certains espèrent que cela résoudra les problèmes d’évolutivité du Bitcoin, il y a des inconvénients, principalement en matière de sécurité.
Le Plasma Cash proposé par Vitalik Buterin, est une solution répondant au problème de scalabilité.
Cette solution permettrait à chaque utilisateur de se concentrer uniquement sur les blocs contenant les pièces qui les intéressent, contribuant ainsi à optimiser la gestion de données.
Selon Vitalik, cette solution pourrait également empêcher les transactions frauduleuses et empêcher le fait que les investisseurs perdent de l’argent si une plateforme d’échange est piratée.
Le sharding, proposé également par le fondateur d’Ethereum, a pour but de dépasser la capacité de Visa avec une solution « On-Chain ».
La solution fonctionne grâce à la puissance de traitement parallèle de plusieurs machines en réseau qui répartissent la charge de travail de vérification des transactions.
Il divise automatiquement les réseaux en sections plus petites, ou « tessons » (en anglais « shards »). Chacune d’entre elles faisant l’objet d’un protocole de consensus à plus petite échelle.
Avec un traitement parallèle, un tel réseau est en mesure de produire des centaines de transactions par shard, pour un total de milliers de transactions par seconde.