Depuis quelques semaines, le réseau Cardano fait face à une utilisation intensive. En effet, de nouveaux projets mettent à mal l’efficacité du réseau… et c’est très bien.
Au-delà de tout jugement sur la qualité des projets, ces derniers nous permettent de mieux comprendre et appréhender les améliorations à apporter à Cardano.
Face à l’utilisation croissante de la blockchain, certaines transactions ont donc mis plus de temps à être validées.
Les mêmes personnes qui, il y a quelques semaines, comparaient Cardano à une « Ghost Chain » avancent maintenant qu’elle est saturée.
En parallèle, l’équipe IOG (qui développe Cardano) propose une solution innovante à la congestion ponctuelle de Cardano.
Comprendre le problème de congestion des Blockchains
Pour résumer très simplement ce problème commun à toute blockchain massivement utilisée : le nombre de transactions dépasse la capacité d’accueil des blocs. Et donc, certaines transactions sont « décalées » au bloc suivant ; d’où le retard dans la validation des transactions.
Les solutions existantes
Étant donné que cette problématique est courante, voyons un peu les solutions déjà utilisées par les autres projets.
En fait, la plupart d’entre eux ont essentiellement joué sur 2 paramètres de leur protocole :
- les frais de transactions : plus les frais sont élevés, moins les transactions inutiles ou initiées par des robots existent.
- la taille des blocs : plus un bloc est « gros », plus il peut accueillir de transactions.
Mais modifier ces deux paramètres ne se fait pas sans conséquence.
Tout d’abord, augmenter les frais de transactions est pervers. En effet, les réseaux blockchains connaissent une activité variable. Ainsi, selon l’actualité, les blocs sont soit saturés, soit peu utilisés.
Augmenter les frais de transactions définitivement implique donc de payer chaque transaction plus cher même quand le réseau est peu utilisé, ce qui est dommageable pour les utilisateurs. D’où la mise en place de frais variables sur Ethereum. Les utilisateurs payent des frais en fonction du taux de saturation des blocs.
Cela induit 2 effets :
- il est impossible de prévoir ses frais de transactions.
- ceux qui payent le plus de frais voient leurs transactions validées en premier.
On en arrive alors à une inflation incontrôlable des frais des transactions au profit des plus riches.
La deuxième solution est l’augmentation de la taille des blocs. Plus les blocs sont gros, plus ils peuvent accueillir de transactions. On aurait ainsi beaucoup moins de blocs saturés en période de forte activité. Mais lors de périodes plus calmes, on aurait aussi des blocs presque vides.
Il faut savoir que la taille des blocs influe sur les ressources nécessaires aux nœuds et aux pools. Plus les blocs sont gros (remplis ou non), plus la blockchain est lourde et plus il faut de capacité de traitement pour opérer un nœud du réseau.
Cela se traduit par un investissement matériel considérable et donc une professionnalisation de la création de blocs. Cela peut vite devenir un danger pour la décentralisation en ne permettant pas à tout un chacun de participer à la sécurité du réseau.
Pour la petite histoire, c’est cette question sur la taille des blocs qui a abouti au fork de Bitcoin en Bitcoin Cash (Bitcoin Cash ayant opté pour des blocs plus gros).
La vision de Cardano jusqu’à aujourd’hui
Depuis le début, Cardano avait bien conscience qu’un jour ou l’autre, cette question se poserait.
C’est pourquoi les frais de transaction et la taille des blocs font partie des paramètres ajustables du protocole.
De plus, depuis 2 ans, IOG nous parle aussi d’une solution Layer 2 : Hydra. Cette solution permettra de paralléliser les transactions en dehors de la chaîne principale. Ce qu’il faut retenir, c’est qu’Hydra permettra de réaliser beaucoup de transactions à des frais bien inférieurs à ceux opérés sur la couche principale.
Malheureusement, Hydra n’est pas encore au point.
Pour autant, Cardano ne souhaite pas se lancer dans la course folle aux frais de transactions en attendant que cette solution arrive.
En effet, la politique d’IOG a toujours été claire à ce sujet. Les frais doivent être :
- prévisibles : ils ne peuvent pas être multipliés par 10 à chaque fois que le réseau commence à être congestionné.
- équitables : il ne faut pas que les plus riches aient systématiquement leurs transactions validées avant les autres.
- peu chères : empêcher les transactions par des frais exorbitants est une fausse solution, car c’est demander à l’utilisateur de trouver une alternative… sur une autre blockchain.
Face à ces engagements qui correspondent à l’ADN de Cardano, on pourrait se dire que la seule solution viable est l’augmentation de la taille des blocs.
Mais après autant d’efforts pour construire le réseau proof-of-stake le plus décentralisé au monde, IOG n’est pas prêt à sacrifier la décentralisation sur l’autel de la performance.
Cette semaine, l’équipe a donc sorti une étude qui répond intelligemment à la problématique de congestion du réseau.
Encore une fois, Cardano ne fera aucun compromis entre sécurité, performance et décentralisation.
La solution d’IOG face au problème de congestion de Cardano
La solution proposée a été publiée sur le site officiel d’IOG. l’idéal est d’aller lire leur papier directement, mais pour ceux qui ne parlent pas anglais, voici une explication.
Segmenter les blocs
Pour permettre d’éviter toute congestion de Cardano, IOG propose de découper chaque bloc en 3 segments. Les transactions seront assignées à chaque segment en fonction des frais associés.
Ainsi, on retrouverait les transactions :
- Fair : qui prendraient 50% de l’espace d’un bloc.
- Balanced : qui occuperaient 30% du bloc.
- Immediate : pour les 20% restants.
Chacun de ces 3 segments permettrait de traiter des transactions avec des frais différents tout en permettant une bonne prédictibilité et une maîtrise de leurs coûts.

Ces segments fonctionneront avec un système de transaction par seuil. Les frais au-dessus du seuil des Immediate Transactions permettront aux transactions d’appartenir à ce segment du bloc et garantiront à la transaction de passer.
Les frais de transactions au-dessus du seuil des Balanced Transactions, mais en dessous du seuil des Immediate Transactions affecteront ces transactions au segment Balanced du bloc.
Bien entendu, le seuil des Immediate Transactions sera toujours plus élevé que celui des Balanced transactions.
Un bloc se remplira donc dans un ordre précis : Immediate, Balanced puis Fair transactions tout en garantissant 50% du bloc pour les Fairs transactions (celle dont les frais sont en dessous du seuil des Balanced transactions)
Les Immediate et Balanced Transactions
Pour ces transactions, les frais seront variables et toujours au-dessus de leur seuil. Pour garantir un respect total de la répartition des types de transactions (20% Immediate, 30% Balanced et 50% Fair), les seuils d’un bloc sont toujours calculés en fonction du niveau de congestion des blocs précédents.
Ainsi, plus Cardano est saturé, plus les seuils seront élevés et inversement.
Les calculs utilisés pour définir les seuils garantissent aussi une plus grande stabilité pour les Balanced Transactions comparé aux Immediate Transactions. Ainsi d’un bloc à l’autre, les frais des Immediate Transactions pourront fortement varier alors que les frais des Balanced Transactions, varieront à la marge.
Enfin, un point important est que dans chaque segment, tous les utilisateurs payeront le même prix : le prix le plus bas qui garantit l’entrée dans un segment. C’est-à-dire, le plus proche possible du seuil inférieur. Cela permet de contenir l’inflation galopante des frais de transactions présente sur d’autres réseaux.
Les Fair Transactions
Ici, point de frais variables. On garde le fonctionnement actuel des frais de transactions. C’est-à-dire, des frais fixes définis par le protocole (aujourd’hui autour de 0,17 ADA).
Ainsi, peu importe la congestion de Cardano, 50% des transactions seront systématiquement traitées à chaque bloc créé. Contrairement à ce qu’il se passe sur Ethereum, l’utilisateur qui ne souhaite pas débourser une fortune en frais de transaction aura quand même une forte probabilité de voir sa transaction passer rapidement.
Malgré tout, en cas de forte activité ponctuelle sur le réseau, il faudra décaler des Fair Transactions aux blocs suivants. Et là encore, IOG se démarque des autres en proposant une solution intelligente grâce au modèle UTXO (lire cet article pour comprendre ce qu’est l’UTXO).
En effet, pour pénaliser les bots et autres spammeurs, IOG propose de prioriser la transaction en fonction de l’âge des UTXOs qui la compose selon la formule :

Ainsi, plus les UTXOs sont vieux, plus ils ont de chance de passer en premier. Avec ce système, on privilégie les usages normaux de la blockchain au détriment des robots (qui apprécient particulièrement les frais faibles et donc ce segment Fair des blocs).
Conclusion
Encore une fois, face à une problématique commune à toutes les blockchains, IOG avance une solution innovante et équitable. Cette solution permet de passer les pics ponctuels de saturation du réseau. Bien sûr, si demain, l’usage de l’ADA est tel que la congestion de Cardano est permanente, il faudra se reposer la question du niveau des frais fixes ou de la taille des blocs.
Mais d’ici là, Hydra et d’autres layers 2 auront vu le jour…