Dans les derniers articles de démystification, nous avons principalement répondu aux poncifs provenant des « no-coiners », c’est-à-dire des personnes qui ne possèdent pas de cryptomonnaies ou de bitcoins. Cependant, les personnes extérieures n’ont pas le monopole de la critique abusive de Bitcoin. Beaucoup d’idées reçues proviennent de partisans d’autres cryptomonnaies, nommées les altcoins. C’est le cas du poncif que nous étudions aujourd’hui.
Beaucoup d’altcoins ne sont que de pâles copies de Bitcoin légèrement modifiées. Leurs arguments sont souvent que le système de paiement Bitcoin est trop lent, qu’il ne supporte qu’un nombre limité de transactions, ou encore, qu’il est dénué de toute forme d’innovation.
Dans mon article sur les altcoins, je vous expliquais pourquoi les modifications des autres cryptomonnaies sont dangereuses pour leurs utilisateurs, et en quoi cela contrastait avec la nature même de Bitcoin. Ici, je souhaite vous expliquer pourquoi les choix techniques qui rendent Bitcoin « lent » ne sont pas des limitations, mais bien des compromis indispensables.
Pourquoi les transactions Bitcoin ne sont pas instantanées ?
La blockchain est un serveur d’horodatage utilisé pour éviter la double dépense des pièces sur Bitcoin. Le mécanisme du Consensus de Nakamoto assure qu’en moyenne, un bloc valide est trouvé toutes les 10 minutes.
Lorsque l’on réalise une transaction, il est généralement conseillé d’attendre 6 confirmations (c’est-à-dire 6 blocs) pour considérer cette transaction comme immuable. Cela veut dire que nous devons attendre en moyenne une heure (6 fois 10 minutes) pour qu’une transaction Bitcoin soit vraiment confirmée.
À l’heure des virements instantanés et des paiements par carte bancaire, certains pensent que Bitcoin est déjà dépassé technologiquement.
En réalité, lorsque vous payez votre baguette par carte bancaire, le boulanger ne reçoit pas l’argent immédiatement. Il faut généralement plusieurs jours avant qu’il soit réellement sur son compte bancaire. De plus, la transaction n’est pas irréversible immédiatement. Il est toujours possible de faire une réclamation sur ce paiement jusqu’à 13 mois après l’échange.
D'un point de vue probabiliste, sur Bitcoin, le règlement est irréversible après 6 confirmations seulement. Dans notre exemple de l’achat d’une baguette, cela signifie que le boulanger est persuadé que les bitcoins lui appartiennent bien une heure après la réalisation de l’échange. Dans le cas du système bancaire, c’est plus d’un an.
Évidemment, dans le cas de certains achats du quotidien, il peut être embêtant de devoir attendre un certain nombre de confirmations pour procéder à une transaction. C’est pour cela qu’il existe des systèmes de paiement supérieurs, bâtis au-dessus de Bitcoin. C’est le cas, par exemple, du Lightning Network, un système de paiement permettant de faire des transactions en bitcoins presque instantanément et à très bas frais.
De plus, gardons à l’esprit que Bitcoin est un système de cash électronique. Même si aujourd’hui, son cadre dépasse largement cette mission, il a originellement été pensé pour apporter à internet un système de paiement équivalent aux espèces. Dans cet objectif précis, les 6 confirmations ne sont pas embêtantes.
Puisque ces 6 confirmations peuvent occasionner une certaine friction à l’utilisation, il est tout à fait légitime que certains s'interrogent sur la possibilité d'accélérer le rythme de génération des blocs. Étant donné qu'il est nécessaire d'attendre plusieurs confirmations sur Bitcoin, pourquoi donc restreindre chaque validation à une période de 10 minutes ?
➤ En savoir plus sur le mécanisme de la preuve de travail sur Bitcoin (Proof-of-Work).
Pourquoi un bloc toutes les 10 minutes ?
Disons-le, l’intervalle de 10 minutes entre chaque bloc est un choix arbitraire de Satoshi Nakamoto. Toutefois, cet intervalle n’a sûrement pas été choisi au hasard. Ce temps cible entre chaque bloc représente un compromis de sécurité.
Pour comprendre cela, il est important de revoir comment se diffuse un bloc valide dans le réseau. Lorsque le mineur Bob trouve un bloc qui donne un hachage valide (inférieur ou égal à la cible de difficulté), il s’empresse de le diffuser au réseau Bitcoin afin de percevoir sa récompense. Les nœuds en contact avec Bob vont vérifier que son bloc est bien valide, puis ils vont le diffuser à leur tour. Ce processus de diffusion continue jusqu’à que tous les nœuds et tous les mineurs du système soient informés de l’existence de ce nouveau bloc valide.
Ce processus de vérification et de diffusion prend un certain temps. Il est limité par les capacités de chacun en bande passante et en calcul.
Imaginons qu’Alice soit un autre mineur. À cause de la latence du réseau, Alice a eu le temps de trouver un bloc valide à la même hauteur que celui de Bob, avant d’être informée que Bob avait, lui aussi, trouvé un bloc. Puisque Alice a diffusé son bloc à ses pairs, le réseau est maintenant coupé en deux. Une partie mine par-dessus le bloc d’Alice, et l’autre partie mine par-dessus le bloc de Bob. C’est ce que l’on appelle une division du réseau, ou un « Split » en anglais.
Ces divisions de Bitcoin sont parfaitement naturelles et sans gravité. Lorsqu’un des deux sous-réseaux dépasse l’autre, en minant un bloc par-dessus, l’ensemble du réseau refait consensus sur une seule chaîne. La chaîne invalide est abandonnée, avec les blocs périmés qu’elle contenait.
Le problème de ces splits est qu’une partie des mineurs travaillent sur une chaîne qui va être abandonnée. Ils ne le savent pas encore, mais ils travaillent pour rien. Cela crée un gaspillage de la puissance de calcul, et donc une baisse de la sécurité de Bitcoin.
En termes de probabilité, au plus on abaisse l’intervalle entre chaque bloc, au plus ces divisions du réseau sont fréquentes. Il faut alors comprendre que l’abaissement de l’intervalle entre chaque bloc vient également abaisser la sécurité générale du système Bitcoin, tout en gaspillant des ressources.
Cependant, on ne peut pas augmenter cet intervalle à l’infini. Il faut bien que, périodiquement, le système vienne ancrer la preuve de travail réalisée afin de rendre progressivement immuables les transactions. Satoshi Nakamoto a estimé qu’un intervalle de 10 minutes était un compromis intéressant. Cela laisse le temps à chaque bloc d’être diffusé sur toute la planète, malgré la latence, afin d’éviter les divisions du réseau.
Du point de vue de l’utilisateur de Bitcoin, le temps cible entre chaque bloc n’a pas vraiment d’impact sur son temps d’attente pour que sa transaction soit immuable. En effet, ce qui importe réellement n’est pas le nombre de blocs qui se trouvent par-dessus sa transaction, mais bien l’accumulation de travail depuis sa transaction. Qu'il s'agisse d'un intervalle cible de 2 minutes, de 10 minutes ou de 20 minutes entre les blocs, cela n'altère en rien son temps d’attente pour obtenir les garanties d’immuabilité souhaitées.
Pourquoi les blocs sont-ils limités à 1 mégaoctet ?
Depuis la mise à jour SegWit de 2017, le sujet de la taille des blocs est devenu assez complexe à comprendre.
En 2009, au lancement de Bitcoin, il n’y avait pas de limite à la taille des blocs. Cette flexibilité a rapidement été rectifiée par Satoshi Nakamoto en 2010, en fixant une limite à 1 mégaoctet (1 Mo). Ce seuil reste inchangé jusqu’en août 2017, date à laquelle la mise à jour SegWit vient modifier les règles.
Le but de SegWit est de corriger la malléabilité des transactions Bitcoin, notamment dans l’objectif de permettre une implémentation plus sûre du Lightning Network. Pour ce faire, les données témoins de la transaction, c’est-à-dire principalement les signatures, sont séparées de la transaction en elle-même. Ces témoins sont stockés dans une structure de données séparée.
Grâce au déplacement des scripts de signature, SegWit en profite pour augmenter virtuellement la taille des blocs Bitcoin. Pour considérer ces modifications, SegWit prévoit l’utilisation d’une nouvelle unité virtuelle pour le calcul de la taille du bloc. C’est ce que l’on appelle le « poids » ou « weight » en anglais.
Ainsi, le poids du bloc se calcule de la manière suivante :
poids = 4 * taille du bloc sans témoin + taille du témoin
La limite totale pour les blocs Bitcoin est actuellement de 4 MWU (Mega Weight Unit). En termes de taille réelle, un bloc Bitcoin peut théoriquement atteindre dorénavant 4 Mo. Toutefois, ils ne dépassent que rarement les 2 Mo.
Pourquoi cette limitation existe-t-elle ? Pourquoi ne pas autoriser plus de transactions par blocs ?
Le principal argument face à l’augmentation de la taille des blocs est le même que pour la partie précédente pour les 10 minutes. Si les blocs sont plus gros, ils seront plus longs à diffuser au sein du réseau. Cela est dû, d’une part, à la bande passante nécessaire, et d’autre part, au temps que mettrait chaque nœud à vérifier chaque transaction du bloc avant de continuer sa propagation. Ainsi, une augmentation de la taille des blocs causerait forcément plus de divisions du réseau, de blocs périmés et de réorganisations.
De plus, une augmentation de la taille des blocs affecterait également les ressources nécessaires pour exécuter un nœud complet, réduisant au passage la distribution et la résilience du système.
Est-ce que le protocole Bitcoin continue d’innover ?
Il existe aussi une idée reçue selon laquelle Bitcoin serait un vieux dinosaure très lent, qui n’innove jamais, contrairement aux altcoins. En réalité, Bitcoin est en constante évolution. Il est même souvent en avance de plusieurs années sur les innovations des altcoins.
Tout d’abord, beaucoup de standards utilisés sur les autres cryptomonnaies sont issus du développement sur Bitcoin. Par exemple, si les altcoiners bénéficient d’un moyen simplifié pour récupérer leurs portefeuilles crypto, c’est grâce aux bitcoiners. La phrase de récupération et les standards de dérivation de clés cryptographiques des altcoins sont souvent dépendantes du BIP32 et du BIP39, des innovations de Bitcoin.
Pour vous donner un autre exemple, la construction des adresses de réception est un domaine sur lequel Bitcoin dispose d’une dizaine d’années d’avance sur les altcoins. Si vous utilisez des adresses SegWit V0 ou V1 (Taproot), celles-ci disposent d’une somme de contrôle construite à partir de codes de correction d’erreur. Cette innovation permet d’éviter que des utilisateurs perdent des bitcoins en les envoyant vers des adresses pour lesquelles ils n’ont pas la clé privée associée.
Par exemple, sur Ethereum, les adresses disposent à peine d’une somme de contrôle avec fonction de hachage (EIP-55), et celles-ci ne sont même pas vérifiées sur tous les portefeuilles existants.
La communauté de développeurs Bitcoin est également très active sur toutes les primitives cryptographiques utilisées. Ces standards sont ensuite réutilisés sur une majorité d’altcoins.
Il est donc important de différencier les innovations de fond, qui émanent presque toujours de la communauté Bitcoin, mais qui ne font pas forcément beaucoup de bruit, des innovations trompeuses et médiatiques des altcoins.
Bien sûr, les innovations de Bitcoin au niveau protocolaire sont très lentes. C’est une tradition dans le développement de Bitcoin qui se veut être prudent, maîtrisé et réfléchi. Toutefois, de nombreuses innovations disruptives se font au niveau applicatif, ou sur des systèmes de surcouche comme le Lightning Network.
Conclusion
Il est important de comprendre que les limitations du protocole Bitcoin ne sont pas des erreurs, mais bien des compromis techniques. La limite de taille des blocs et l’intervalle de 10 minutes permettent d’éviter les phénomènes de division de réseau. Ces divisions (splits) causent un gaspillage de la puissance de calcul des mineurs, et donc une baisse de la sécurité générale de Bitcoin.
Pour l’utilisateur d’un système de paiement distribué tel que Bitcoin, la rapidité du paiement n’est pas l’indicateur clé à surveiller. Comme il n’y a pas d’acteur central permettant de garantir l’immuabilité de la transaction, c’est l’accumulation de preuve de travail qui fait foi. Or, la fréquence à laquelle les blocs sont publiés ne change en rien la quantité de travail accumulé dans ces blocs.
Sur le plan du développement, les innovations apportées par le système Bitcoin sont souvent mal comprises ou oubliées. Une majorité d’altcoins se réclamant disruptifs sont en réalité complètement dépendants de standards initialement inventés pour Bitcoin.
Bitcoin est comparable à une fine horlogerie, nécessitant des ajustements progressifs et méticuleux. Les répercussions à long terme de ces changements sont complexes à anticiper. Voilà pourquoi les mises à jour du protocole sont soigneusement étudiées, réfléchies et contrôlées.