Vérification des transactions
Comme vous l’avez appris dans le cours 8 de la section Débutant de l’Academy, les transactions sur le réseau Bitcoin sont vérifiées durant un processus que l’on appelle « mining ». Les ordinateurs des mineurs collectent les transactions qui ont été divisées en plusieurs blocs. Les nodes (ou mineurs) entrent alors en compétition pour être le premier à résoudre un casse-tête cryptographique. L’objectif est d’être le premier mineur à valider le nouveau bloc dans la blockchain, ce qui ne peut être fait que si toutes les transactions de ce bloc sont validées et n’ont pas fait l’objet de double-dépense.
Comme l’estime Satoshi Nakamoto dans le whitepaper de Bitcoin, les blocs sont générés en moyenne toutes les dix minutes : c’est ce qu’on appelle le « block time » du réseau Bitcoin, ou temps de génération d’un bloc. Il s’agit du temps estimé que prend le mining d’un bloc. Un bloc pèse en moyenne 1 Mo. Si le mining d’un bloc du réseau Bitcoin prend plus de temps, la difficulté sera diminuée, s’il prend moins de temps, la difficulté sera augmentée. L’ajustement de la difficulté a lieu tous les 2016 blocs en moyenne (soit toutes les deux semaines environ).
Volumes de transaction
Actuellement, le montant global qui passe par le réseau Bitcoin augmente chaque année, tout comme le nombre de transactions traitées. Étant donné que chaque transaction doit peser au minimum 250 octets, un chiffre codé en dur dans le protocole Bitcoin, le réseau Bitcoin peut traiter jusqu'à 7 transactions par seconde (ou « TPS ») si le temps de génération d’un bloc est de dix minutes. Ethereum traite environ 15 TPS et Ripple est le plus rapide, avec une capacité de traitement d'environ 1 500 TPS.
Actuellement, le montant global qui passe par le réseau Bitcoin augmente chaque année, tout comme le nombre de transactions traitées.
Pourquoi la scalabilité est-elle un problème ?
Afin d’encourager l’adoption des cryptomonnaies pour les transactions de la vie quotidienne, un réseau doit tout d'abord démontrer sa capacité à traiter un certain nombre de transactions sans problème de traitement et sans retard important. Ensuite, le réseau doit prouver qu'il sera capable de traiter le nombre croissant de transactions à venir. C’est ce qu’on appelle en français la mise à l’échelle d’un réseau (« scale up », en anglais). Il s’agit d’augmenter sa taille, sa capacité et, par conséquent, sa sécurité. D'autre part, un réseau doit offrir des avantages suffisants aux mineurs en matière de frais de transaction pour qu'ils restent engagés et compétitifs.
Comparé aux prestataires de paiement traditionnels tels que VISA ou PayPal, les capacités de transaction des cryptomonnaies, telles que celles de Bitcoin et Ethereum, sont très faibles. Le leader mondial des paiements numériques, VISA, affirme qu'il est capable de traiter plus de 65 000 messages de transaction par seconde et traite effectivement 150 millions de transactions par jour en moyenne. De son côté, le réseau de paiement PayPal ne traite « que » 193 transactions par seconde, soit environ 5 millions de transactions par jour.
La vitesse et la sécurité du réseau sont donc les deux principaux facteurs qui déterminent la réputation d'un réseau de paiement. Par conséquent, l'infrastructure actuelle des réseaux de cryptomonnaies devra être développée de manière à pouvoir traiter des volumes de transactions croissants, ainsi qu'un nombre croissant d'utilisateurs.
La question des solutions en matière de scalabilité
Comme vous l’avez appris dans le cours 8 de la section Intermédiaire de l’Academy concernant les « hard forks » et les « soft forks », la communauté Bitcoin a activé SegWit en 2017 en tant que soft fork du protocole Bitcoin, pour mettre en place l’utilisation de solutions de deuxième couche pour la scalabilité. Pour l’essentiel, SegWit consistait à séparer (« segregating ») les données témoin (« witness »), qui permettent de vérifier la validité des transactions, de la liste des inputs (« entrées » en français).
Lightning Network constitue une autre solution de scalabilité qui vise à réduire la quantité de données dans la blockchain. C’est un protocole de paiement de seconde couche fonctionnant « au-dessus » de Bitcoin et reposant sur un réseau de canaux de paiement bidirectionnels. Il facilite ainsi les transactions quotidiennes sans engendrer de frais trop importants.
Après que les transactions Bitcoin ont approché les limites du réseau fin 2017, deux écoles de pensée ont émergé concernant la mise à l'échelle du réseau. L'une voulait se concentrer sur l'augmentation de la limite de taille des blocs, l'autre sur la scalabilité off-chain en ajoutant des protocoles supplémentaires sur les couches supérieures, un peu comme la structure actuelle d’Internet.