1. Accueil
  2. /
  3. Non classé
  4. /
  5. Implémentation du sharding pour Cardano : Première étape vers la...

Implémentation du sharding pour Cardano : Première étape vers la vision d’Hydra

IOHK a réalisé la recherche scientifique pour élaborer les théories. Ils ont posé les bases d’une blockchain évolutive, polyvalente et à haut débit. Il est maintenant temps de passer à la pratique pour améliorer le système. Dans le but de créer un écosystème optimisé pour soutenir et favoriser le développement d’applications décentralisées (DApps), Cardano débute les travaux de développement de la phase Basho. Avec les contrats intelligents déjà en place, l’objectif de Basho est d’accroitre la performance et permettre l’optimisation du réseau. La famille de protocoles Hydra est un élément clé à cet égard.

Hydra est un ensemble de solutions développées sur la blockchain Cardano. Cette couche de deuxième niveau est conçue pour répondre aux besoins de sécurité et d’évolutivité des réseaux. Créé dans le cadre de travaux sur le protocole de Cardano par l’équipe de recherche d’Ouroboros, Hydra s’est forgé une voie indépendante suite à la publication de son premier article. Hydra offre un débit accru, une latence minimisée et des solutions rentables sans exigences de stockage importantes. À partir de cette idée initiale, le protocole Hydra a mûri pour devenir une preuve de concept, et se diriger vers une mise en œuvre plus définie pour le testnet MVP.

À ce moment, il y a eu beaucoup d’enthousiasme mais également des incompréhensions ainsi que des malentendus. C’est ce qui arrive lorsqu’on base nos espérances sur l’énoncé d’une idée, plutôt que sur le protocole et certains des blogs d’IOHK ont contribué à ces malentendus. Les incompréhensions du protocole Hydra ne concernent pas seulement les opérateurs stakepool (SPO), mais aussi la théorie du « 1 million de transactions par seconde (TPS) ». Ces points, parmi tant d’autres, doivent être mieux expliqués.

Dans cet article, l’équipe d’ingénieurs d’Hydra décrit les progrès actuels, leur approche et leur échéancier à court et long terme. Ils ont démystifié certaines idées, clarifié les avantages et ils nous aident à mieux comprendre les défis à venir.

Comment fonctionne Hydra ?

Commençons par réintroduire Hydra, qui impliquent non seulement une couche de réseau robuste entre les pairs et la blockchain Cardano, mais aussi plusieurs contrats intelligents sur la chaîne qui gèrent le cycle de vie d’un sous réseau Hydra.

Un Hydra Head (sous réseau) est un canal d’état isomorphe à sécurité prouvée. En d’autres termes, il s’agit d’une mini-blockchain (non relié à la chaine principale) maintenue par un ensemble restreint de participants et qui fonctionne de la même manière (bien que beaucoup plus rapidement) que la blockchain principale.

La première chose à comprendre est qu’un canal est un chemin de communication entre deux ou plusieurs pairs. Faire partie d’un sous réseau signifie être l’un de ces pairs. Les canaux forment des réseaux isolés qui peuvent évoluer en parallèle du réseau principal. Sur ces réseaux alternatifs, les participants suivent un algorithme de consensus différent et plus simple : tout le monde doit être d’accord sur toutes les transactions qui passent par le sous réseau. Une des conséquences est qu’en tant que participant, je ne peux pas perdre d’argent que je n’ai pas explicitement accepté de perdre. Pourquoi ? Parce que toute transaction valide nécessite mon approbation explicite.

Lorsqu’ils forment un sous réseau, les participants peuvent y engager des fonds. Cela signifie déplacer les fonds de la chaîne principale vers un contrat intelligent qui bloque les fonds selon des règles spécifiques. Le script (contrat intelligent) garantit l’exécution sûre du protocole sur la chaîne principale, et en particulier, que les participants n’ont pas un avantage déloyal les uns envers les autres. À tout moment, cependant, un participant peut décider de quitter le sous réseau en fermant son noeud. Dans ce cas, tous les participants repartent avec le dernier état sur lequel ils s’étaient mis d’accord sur leur réseau parallèle.

Il faut considérer les sous réseaux comme des « tables de poker privées » où les participants apportent leurs propres jetons pour jouer. Les participants peuvent jouer aussi longtemps qu’ils le souhaitent. Si quelqu’un ne joue pas, le jeu ne progresse pas. Cependant, les participants sont toujours libres de repartir avec leurs jetons. S’ils le font, le jeu se termine avec la répartition actuelle de leurs avoirs.

Figure 1. Cycle de vie simplifié d’un sous réseau Hydra

Le croupier à la table (représente le contrat intelligent sur la blockchain principale) s’assure que les gens respectent les règles et ne trichent pas. À la fin, il y a autant de jetons sortis que de jetons entrés, mais ils peuvent avoir été redistribués au cours de la partie. Si le résultat final est connu en dehors de la table, l’historique de toutes les actions qui se sont produites pendant la partie n’est connu que des participants.

Ce protocole fait partie d’une série de protocoles qu’IOHK a appelé « Hydra ». Actuellement tous les efforts se concentre sur l’implémentation, par des ingénieurs en informatique, du protocole Hydra tel que publié dans Hydra : Fast Isomorphic State-Channels par Chakravarty et al.

Vers la fin de l’année 2021, Maxim Jourenko, Mario Larangeira et Keisuke Tanaka ont publié une itération au-dessus d’Hydra Head intitulée Interhead Hydra : Two Heads are Better than One. Cette itération définit une méthode d’interconnexion de deux têtes, permettant, à terme, la création d’un réseau de sous réseau Hydra interconnectées. Auparavant, il était question d’autres protocoles, comme le « Hydra Tail ». Cependant, ces protocoles sont toujours en cours de recherche, ainsi que les nouvelles idées issues des travaux récents sur le protocole Hydra.

Malentendus sur Hydra

La communauté a soulevé beaucoup de commentaires positionnant Hydra comme la solution « ultime » pour la performance de Cardano. Il est certain que les sous réseau Hydra constituent une base solide pour construire une couche d’évolutivité pour Cardano. Le protocole s’appuie sur un élément de base qui exploite la puissance du modèle EUTXO (Extended Unspent Transaction Output) pour permettre le développement de solutions plus complexes. Cependant Hydra n’est pas la destination finale.

La performance ne se limite pas à atteindre un million de TPS

Avant de parler des façons de mesurer la performance de Cardano, il faut clarifier quelques points concernant les transactions par seconde (TPS). Parmi toutes les métriques, le TPS est probablement la métrique la moins significative à considérer comme un moyen de comparaison. Les transactions ont des formes et des tailles différentes. Si cela est vrai pour Cardano, c’est encore plus essentiel lorsque l’on compare deux systèmes radicalement différents.

Nous pouvons penser à une autoroute avec des véhicules. On peut analyser combien de « véhicules par seconde » (VPS) l’autoroute peut gérer entre deux points. Pourtant, s’il n’existe pas de définition commune de ce qu’est un véhicule, la comparaison de 10 VPS à 100 VPS n’a apparemment aucun sens. Si les 10 véhicules de l’exemple font référence à d’énormes camions de marchandises, on ne peut pas les comparer à 100 scooters en termes de capacités de livraison ? Il en va de même pour les transactions. Une transaction portant des centaines d’actifs et d’extrants natifs n’est certainement pas la même chose qu’un simple paiement ada entre deux acteurs.

Utiliser le TPS comme métrique dans un même contexte (par exemple, pour comparer deux versions du nœud Cardano) est significatif. L’utiliser comme moyen de comparaison entre les blockchains ne l’est pas.

Dans cette optique, nous suggérons de considérer non seulement le débit, mais aussi la finalité et la concurrence comme des mesures importantes à prendre en compte et à discuter pour la performance:

  • Le débit : le volume de données traitées par un système dans un temps donné.
  • La finalité : le temps qu’il faut pour que le résultat d’une action devienne immuable et vrai pour tout le monde dans le système
  • La concurrence : la quantité de travail qui peut être effectuée par différents acteurs sans se bloquer mutuellement.

Les sous réseaux Hydra sont excellents dans l’obtention d’une finalité quasi instantanée au sein d’un sous réseau. Le processus de création et de fermeture d’un sous réseau peut prendre quelques blocs, mais une fois établi, les transactions peuvent circuler rapidement entre les participants du sous réseau. Comme les sous réseaux utilisent également le modèle EUTXO, ils peuvent traiter simultanément des transactions non conflictuelles, ce qui, associé à une bonne performance du réseau, permet une utilisation optimale des ressources disponibles. Les premières simulations du protocole Hydra en 2020 laissaient entrevoir un « 1000 TPS » très prometteur.

Cependant, un sous réseau Hydra est une construction très locale au sein d’un petit groupe de participants. Ces groupes seront initialement indépendants et donc, regarder la somme de leurs métriques individuelles comme un tout est trompeur. Puisque les groupes sont indépendants et peuvent être créés à volonté, il est facile d’atteindre n’importe quel chiffre en les additionnant : dix, mille, un million, un milliard, et ainsi de suite.

Par conséquent, si la première version du protocole Hydra permet à de petits groupes de participants d’augmenter leur trafic à faible coût, elle n’offrira pas immédiatement une solution pour les paiements mondiaux de consommateur à consommateur (micro) ou les ventes NFT. Pourquoi ? Parce que le consensus à l’intérieur d’un sous réseau exige que chaque participant réagisse à chaque transaction. Or, un sous réseau n’évolue pas à l’infini avec le nombre de participants, du moins pas sans efforts d’ingénierie supplémentaires. Par exemple, l’interconnexion des sous réseau Hydra ouvre la voie à de plus grands réseaux de participants, transformant effectivement les sous réseaux locaux en un réseau mondial. Plusieurs autres idées sont en réflexion pour étendre le protocole Hydra afin d’élargir l’ensemble des cas d’utilisation qu’il peut couvrir.

Cas d’utilisation et rôle des opérateurs de stakepool

Quand les sous réseaux sont-ils nécessaires ? Les sous réseau Hydra brillent lorsqu’un petit groupe de participants doit traiter de nombreuses interactions rapides. Imaginez, par exemple, un service API payant, un réseau privé de banque à banque ou une vente aux enchères rapide entre un vendeur et un petit groupe d’enchérisseurs. Les cas d’utilisation sont nombreux et prennent des formes diverses. Certains d’entre eux peuvent être de longue haleine et durer des mois, tandis que d’autres peuvent être beaucoup plus courts et ne durer que quelques heures.

Les recherches initiales sur Hydra en 2020 ont suggéré que les opérateurs de stakepool (SPO) étaient des candidats probables pour l’exécution de sous réseau Hydra. Cependant, comme le protocole Hydra a été étudié et construit en tant que preuve de concept, il n’est pas encore possible d’affirmer que seuls les SPO devraient gérer un sous réseau Hydra pour assurer la performance de Cardano. En fait, les opérateurs de stakepool n’ont aucun intérêt intrinsèque à ouvrir des Heads entre eux sans raison de transaction (pourboire ou échange de NFT, par exemple). D’une certaine manière, les opérateurs de stakepool sont comme n’importe quel autre acteur en ce qui concerne le protocole Hydra. Ils peuvent être des participants et ouvrir des sous réseaux avec d’autres pairs, mais toute personne intéressée peut aussi le faire.

Il est vrai que les opérateurs de stakepool savent exploiter les infrastructures et peuvent être parmi les premiers utilisateurs à utiliser des instances du protocole Hydra. Néanmoins, cela permet aux opérateurs de stakepool de réaliser des transactions entre eux, ce qui limite les cas d’utilisation pour les utilisateurs finaux. Seules les conceptions avancées de systèmes de deuxième couche, comme le protocole Hydra, nécessitent des intermédiaires pour faire fonctionner l’infrastructure au profit des utilisateurs finaux. En fait, il faut prévoir qu’une des configurations probables des sous réseaux Hydra sera de fournir aux utilisateurs des sous réseaux Hydra gérés en tant que service (HaaS). Nous pouvons y parvenir sans renoncer à la garde sécurisée des fonds en faisant fonctionner l’infrastructure au nom des utilisateurs finaux, qui n’ont généralement ni l’intérêt ni les compétences techniques pour maintenir une telle infrastructure.

Ce modèle est très similaire au modèle opérationnel actuel des portefeuilles comme Yoroii et des fournisseurs de portefeuilles, qui sont beaucoup plus susceptibles de gérer des sous réseaux Hydra à long terme. Il faut imaginer un réseau composé des meilleurs fournisseurs de portefeuilles de l’écosystème Cardano. Ces fournisseurs peuvent alors faciliter les paiements instantanés et bon marché entre leurs utilisateurs tout en assurant une confiance globale. Nous pensons également que les services pour les développeurs et les fournisseurs de DApp seront des candidats probables pour gérer les nœuds des sous réseaux d’Hydra. En effet, les développeurs de DApp ont besoin d’accéder aux informations de la chaîne. Pour cela, ils peuvent s’appuyer sur des services en ligne qui fournissent des interfaces adéquates et facturent généralement des frais d’utilisation mensuels. Les sous réseaux d’Hydra peuvent améliorer ce processus en permettant un modèle économique plus décentralisé avec des appels API payants entre les fournisseurs de services et les développeurs de DApp.

La roadmap

Comme il s’agit d’un groupe de protocoles qui sera livré au fil du temps et qui impliquera des conceptions de système de 2ème couche plus élaborées au-dessus de sous réseau d’Hydra, il est crucial que IOHK échange fréquemment avec les développeurs de l’écosystème Cardano. Il ne s’agit pas d’une version « big bang », mais plutôt d’un cycle de versions itératives. IOHK comprend les défis des développeurs, la compagnie veut s’assurer de répondre à leurs besoins et s’assurer qu’ils construiront quelque chose d’utile. C’est pourquoi le protocole Hydra est un projet GitHub open-source qui a commencé par une première validation du concept l’année dernière. L’équipe vise une cadence de publication régulière et fréquente. Elle a publié la première version préliminaire pour les développeurs en septembre 2021 (0.1.0), suivie d’une deuxième itération (0.2.0) avant Noël ainsi qu’une incrémentation (0.3.0) en février 2022. Chacune de ces préversions (0.x.0) ajoute des fonctionnalités qui seront mises à la disposition de la communauté pour que les développeurs et partenaires puissent faire leurs tests sur les testnets de Cardano (privés et publics).

Les commentaires de la communauté sont essentiels

Nous mesurerons notre succès en fonction de la quantité de trafic qui circulera sur les sous réseaux d’Hydra par rapport au mainnet de Cardano. Cela signifie que pour atteindre cet objectif, nous avons besoin de la communauté parce qu’Hydra ne peut réussir que si les sous réseaux sont utiles aux utilisateurs actuels et futurs de Cardano.

En fonction de votre temps, de vos compétences et de votre expertise, je vous invite à vous engager pour contribuer à l’effort de développement. Il s’agit d’une opportunité exceptionnelle de construire ensemble un écosystème complet de solutions de 2ème niveau sur Cardano. Le protocole Hydra Head sera le premier élément constitutif de nombreuses solutions à venir.