Comment Hydra Augmente La Scalabilité de Cardano

Avec le lancement des smart contracts sur le mainnet en septembre 2021, Cardano a finalisé l’ère Goguen. Certes, cette phase du projet a encore besoin de développements pour permettre une arrivée massive de smart contracts. Mais ces développements peuvent autant être produits par IOG que par la communauté elle-même.

Selon la roadmap, il ne reste donc plus que 2 phases à déployer : Basho et Voltaire.

Quand Voltaire s’attèle à la gouvernance de la blockchain, l’ère Basho vise à rendre Cardano scalable et interopérable.

Et à l’intérieur de cette nouvelle ère, on entend parler depuis plusieurs années d’un projet en particulier : Hydra. En effet, ce projet a pour ambition d’atteindre un taux de transactions par seconde tout simplement incroyable et des frais de transactions très faibles.

Mais avant d’entrer en détail sur ce qu’est Hydra, il faut…

Relativiser l’importance des transactions par seconde (TPS)

Depuis quelques années, entre les projets cryptos, c’est la course au nombre de transactions par seconde. Suite à des problèmes de congestion du réseau Ethereum, cette problématique est devenue centrale. On vante les mérites de certains projets qui promettent plusieurs millions de transactions par seconde et on critique les dinosaures Bitcoin, Ethereum voire même Cardano.

Mais est-ce que pouvoir traiter plusieurs millions de TPS a un quelconque intérêt ?

Avant de parler d’Hydra, comprenons pourquoi IOG n’adresse la problématique de la scalabilité que fin 2021.

Pour cela, il est intéressant de connaître les TPS des services existants :

  • Bitcoin : 7 TPS
  • Ethereum (avant ETH2.0) : 20 TPS
  • Cardano (sans Hydra) : 257 TPS
  • Solana : 50 000 TPS

Avec Solana comme exemple, on change complètement d’échelle. Mais est-ce bien utile à l’heure actuelle quand on sait que les réseaux Visa et Mastercard traitent chacun autour de 2 000 TPS ?

Et pour l’instant, la carte bleue est autrement plus adoptée que la blockchain dans le monde. Certes ce sera peut-être un sujet dans quelques années, mais aujourd’hui, pas vraiment.

C’est pour cette raison qu’IOG n’a pas placé Basho (et donc Hydra) en tête des projets à développer.

La détermination de Cardano à vouloir faire les choses dans l’ordre avec un maximum de fiabilité et de sécurité a exigé de faire des choix. Ainsi, l’équipe s’est d’abord attelée a produire le réseau proof-of-stake le plus décentralisé de l’écosystème crypto (ère Shelley) puis de sortir les smart contracts (ère Goguen).

Place maintenant à la scalabilité. Place maintenant au déploiement d’Hydra !

Qu’est-ce que Hydra ?

Hydra est une solution de Layer 2 (ou de deuxième couche) un peu comme l’est le Lightning Network pour Bitcoin. C’est-à-dire qu’elle gèrera les transactions off-chain et transférera les fonds sur la blockchain principale. Cette solution permettra d’augmenter sensiblement le nombre de TPS, mais aussi de baisser les frais de transaction.

Car les frais sur Cardano tournent autour de 0,17 ADA et si demain 1 ADA = 5€, les transactions de petits montants n’auront aucun sens.

Hydra veut donc résoudre ces 2 problématiques : TPS et frais de transaction.

Comment fonctionne Hydra ?

Sur le principe, un nœud du réseau peut héberger une « tête d’Hydra » ou Hydre. C’est un module qui reprend la sécurité du réseau, mais aussi les smart contracts hébergés. Chaque Hydre pourra réaliser 1000 TPS. Ainsi, avec 10 têtes, le réseau Hydra pourra atteindre 10 000 TPS etc.

Ce schéma se veut évolutif, en fonction des besoins de la blockchain. Sur le papier, Hydra permettrait donc de réaliser plusieurs centaines de milliers de TPS.

Le fonctionnement général d’Hydra de Cardano

Que se passe-t-il dans une Hydre ?

Simplifions le réseau au maximum et imaginons que 3 personnes (Charles, Vitalik et Satoshi) souhaitent réaliser plusieurs transactions rapidement grâce à Hydra.

Ils veulent faire cela à partir de 100 ADA présents sur leur wallet.

La blockchain principale de Cardano ouvrira une Hydre et y enverra les 300 ADA. Nos 3 amis y réaliseront leurs transactions :

  • Charles souhaite transférer 10 ADA à Satoshi et 50 à Vitalik
  • Vitalik souhaite transférer 40 ADA à Satoshi
  • Et Satoshi transfère 25 ADA à Vitalik et 30 à Charles.

On aboutit donc aux soldes suivants :

  • Wallet de Charles = 70 (100-10-50+30)
  • Wallet de Vitalik = 135 (100+50-40+25)
  • Wallet de Satoshi = 95 (100+10+40-25-30)

Le total des 3 wallets fait bien 300 ADA. Il a fallu 5 transactions pour y arriver et il aurait pu y en avoir bien plus ! Mais aucune de ces transactions n’a eu lieu sur la blockchain principale.

Lors de la clôture de l’Hydre, les ADA sont « renvoyés » vers la blockchain principale en tenant compte des modifications.

Le fonctionnement d’une Hydre - Cardano Hydra

Ouverture d’une Hydre

C’est une phase cruciale. Un utilisateur (l’initiateur) peut inviter des membres à rejoindre une Hydre. Pour se faire, il doit connaître la clé publique de ces membres. Ainsi, l’initiateur réalise une transaction qui distribue un token aux membres. S’ils acceptent, l’Hydre s’ouvre ; s’ils refusent, l’Hydre se referme immédiatement.

Comme on l’a vu, à l’ouverture de l’Hydre, des fonds « basculent » vers l’Hydre. Les membres définissent le montant d’ADA qu’ils souhaitent engager (qui peut être tout ou partie de leur wallet). Pour éviter des problèmes de double dépense, ces fonds sont alors séquestrés sur la blockchain principale.

Ainsi, tant qu’un membre a des fonds sur l’Hydre, il ne pourra pas les utiliser dans d’autres transactions sur la blockchain principale. Lorsqu’il sortira de l’Hydre, ces fonds seront bien sûr libérés.

Fermeture d’une Hydre

Un membre seul parmi ceux présents dans l’Hydre peut sortir de l’Hydre sans que celle-ci se referme. Ainsi, les autres membres peuvent continuer à réaliser des transactions.

Par contre, une fois que tous les membres ont décidé de sortir, l’Hydre se referme.

Que se passe-t-il alors ?

L’Hydre transfère le résultat de l’ensemble des transactions sur la blockchain principale. Et elle ne transfère que le résultat ; jamais l’historique de ses transactions.

Ainsi, dans notre exemple précédent, Charles, Vitalik et Satoshi peuvent réaliser 500 transactions dans l’Hydre, lors de la fermeture de cette dernière, elle ne transférera sur la blockchain principale que les 3 résultats des transactions non dépensées (les derniers UTXO).

Les avantages d’Hydra

Un fonctionnement qui ne surcharge pas le mainnet

Un avantage est qu’Hydra ne transfère que l’état final des transactions qui se sont déroulées à l’intérieur d’une hydre. Ainsi, l’historique n’est pas transmis à la blockchain principale. Cette spécificité permet d’économiser de l’espace de stockage de données et de ne pas surcharger la taille de la blockchain. C’est peut-être un détail aujourd’hui, mais qui aura toute son importance dans 10 ou 20 ans si l’adoption est massive.

Les smart contracts sont opérationnels dans les hydres

En plus de pouvoir réaliser des transactions simples sur Hydra, il sera possible de transférer des smart contracts présents sur la blockchain lors de l’ouverture d’une Hydre.

Ainsi, tout ce qu’il est possible de réaliser via des smart contracts sur le layer 1 sera réalisable à l’intérieur d’une Hydre. Sur les blockchains concurrentes, les layers 2 doivent systématiquement adapter ou traduire dans un autre langage les smarts contracts qui sont présents sur la blockchain principale. Hydra est capable d’utiliser les smart contracts du layer 1 tels quels ; sans devoir les modifier. Cette fonctionnalité garantit une efficacité et une sécurité des smart contracts identique sur Hydra et sur la blockchain principale.

Il sera même possible, à l’intérieur d’une Hydre, de créer des smart contracts non présents sur la blockchain principale et soit de les supprimer avec la fermeture de l’Hydre soit de les renvoyer vers la blockchain principale pour des exécutions on-chain.

Un protocole asynchrone et rapide

Avant, d’aller plus loin, souvenons-nous de ce qu’est l’UTXO :

Cardano utilise, comme Bitcoin, le modèle UTXO, mais en version améliorée pour permettre des smart contracts plus complexes. Des transactions sous le modèle UTXO sont similaires à nos transactions en cash (faites de billets et pièces résultants de nos transactions précédentes). Etherum et la plupart des blockchains supportant des smart contracts sont construits sur le modèle Account qui reproduit des transactions de type virements entre banques. (Voir ici pour plus de détail)

Passons au protocole…

Le protocole Ourobos Hydra permet de sécuriser les transactions à l’intérieur d’une Hydre. C’est une évolution du protocole Ouroboros qui sécurise, lui, la blockchain principale.

Cette évolution est asynchrone et permet de nombreuses transactions en parallèle. Cela est possible grâce aux « State Channels » (chaînes d’état) qui enregistrent les états de l’Hydre à tout moment. Chaque fois qu’une transaction est validée, elle intègre le dernier état valide des UTXO. Dès cet instant, les UTXO peuvent être réengagés dans une nouvelle transaction. En fonction de ses propres transactions, chaque membre de l’Hydre enregistre les différents états de l’Hydre au cours du temps. À un même moment et selon les membres, ces enregistrements d’états peuvent donc être différents. Et ce n’est qu’à la fin que tout se rééquilibre.

Ce principe asynchrone et sécurisé n’est possible que grâce à l’UTXO. Construire un tel protocole asynchrone serait impossible (ou infiniment plus compliqué) sous le modèle Account.

Plus sûr et efficace que la concurrence grâce à l’UTXO (encore)

Le fait d’utiliser des UTXO permet aussi de très facilement séquestrer sur la blockchain principale les UTXO engagés dans une Hydre et de les libérer au moment de la clôture de l’Hydre.

Un utilisateur peut s’engager dans plusieurs Hydres sans que ce ne soit plus complexe pour le protocole, tout en garantissant le même niveau de sécurité.

L’ouverture et la fermeture des Hydres peuvent se faire à tout moment et en parallèle. La synchronisation entre la blockchain principale et Hydra se fait donc très simplement.

C’est loin d’être le cas sur les blockchains construites sur le modèle Account. Engager son portefeuille dans plusieurs layers 2 implique de séquestrer à chaque fois une partie de son portefeuille via des smart contracts. Plus on fait d’aller-retour en parallèle entre layers 2 et blockchain principale plus cela devient complexe à gérer. Et qui dit complexité, dit baisse de la sécurité et de l’efficacité.

Grâce à l’UTXO, Cardano assure une parallélisation et une sécurité maximale d’Hydra… et de tous les autres futurs projets de seconde couche.

Conclusion

Même si la plupart des adeptes de cryptos ont tendance à comparer la technologie de 2 blockchains selon leur nombre de transactions par seconde et leurs frais de transaction, nous avons vu que ce n’était pas vraiment aussi important.

Ce le sera peut-être dans quelques années, mais pour l’instant, personne ne va acheter son pain en cryptomonnaies.

Il est donc plutôt logique que Cardano n’adresse cette problématique que fin 2021.

Et une fois encore, avec Hydra, Cardano compte faire les choses mieux que ses concurrents.

Il est bien sûr intéressant de comprendre ce qui se cache derrière cette technologie.

Mais comprendre Hydra, c’est aussi comprendre les spécificités qui font de Cardano une blockchain permettant le développement d’applications ou de layers 2 encore jamais vus dans l’univers crypto.

Ce n’est donc que le début…

Les articles incontournables en anglais :

écrit par koukarin, auteur du site 0knowledge.fr