đŸ‡«đŸ‡· Entrez dans Hydra : l'Ă©volutivitĂ© des registres distribuĂ©s, rĂ©sultat de la mĂ©thode basĂ©e sur les preuves

En savoir plus sur Hydra : le protocole Ă  plusieurs tĂȘtes

Auteur : Prof Aggelos Kiayias
Traduction : The Stakhanovite Stake Pool (STKH)

L’évolutivitĂ© est le plus grand dĂ©fi Ă  relever pour l’adoption de la technologie blockchain. En suivant une approche fondĂ©e sur des principes et des preuves, nous sommes parvenus Ă  une solution pour Cardano et les rĂ©seaux similaires : Hydra. Hydra est l’aboutissement de recherches approfondies et une Ă©tape dĂ©cisive qui permet aux rĂ©seaux dĂ©centralisĂ©s de s’adapter en toute sĂ©curitĂ© Ă  une demande atteingnant l’échelle mondiale.

Qu’est-ce que l’évolutivitĂ© et comment la mesurer ?

Par Ă©volutivitĂ©, on entend la capacitĂ© d’un systĂšme de registre distribuĂ© Ă  fournir un dĂ©bit de transaction Ă©levĂ©, une faible latence et un stockage minimal par nƓud validateur. Ces propriĂ©tĂ©s ont Ă©tĂ© maintes fois prĂ©sentĂ©es comme essentielles pour le dĂ©ploiement rĂ©ussi de protocoles blockchain dans un cadre de systĂšmes rĂ©els. En termes de dĂ©bit, le rĂ©seau VISA traite en moyenne 1 736 transactions de paiement par seconde (TPS) avec la capacitĂ© d’en traiter jusqu’à 24 000 et VISA est frĂ©quemment utilisĂ© comme base de comparaison. Il est clairement souhaitable que la latence des transactions soit aussi faible que possible, avec pour objectif ultime l’instantanĂ©itĂ© pour l’utilisateur final. D’autres applications basĂ©es sur les registres distribuĂ©s ont un large Ă©ventail d’exigences diffĂ©rentes en ce qui concerne ces paramĂštres. Lors de la conception d’un registre distribuĂ© Ă  usage gĂ©nĂ©ral, il est naturel de s’efforcer d’exceller sur ces trois points.

Le dĂ©ploiement d’un systĂšme qui offre une dimension satisfaisante pour un certain nombre de cas d’utilisation nĂ©cessite une combinaison appropriĂ©e de deux aspects indĂ©pendants : avoir une conception algorithmique appropriĂ©e et ĂȘtre dĂ©ployĂ© sur une infrastructure matĂ©rielle et rĂ©seau sous-jacente appropriĂ©e.

Lors de l’évaluation d’une conception algorithmique particuliĂšre, il peut ĂȘtre trompeur de considĂ©rer des nombres absolus en termes de mesures spĂ©cifiques. La raison en est que de telles quantitĂ©s absolues doivent se rĂ©fĂ©rer Ă  une configuration matĂ©rielle et de rĂ©seau particuliĂšre, ce qui peut brouiller les avantages et les inconvĂ©nients de certains algorithmes. En effet, un protocole mal conçu peut encore ĂȘtre suffisamment performant lorsqu’il est dĂ©ployĂ© sur un matĂ©riel et un rĂ©seau de qualitĂ© supĂ©rieure.

C’est pourquoi il est plus judicieux d’évaluer la capacitĂ© d’un protocole Ă  atteindre les limites physiques du rĂ©seau et du matĂ©riel qui le sous-tendent. Cela peut ĂȘtre rĂ©alisĂ© en comparant le protocole avec de simples protocoles de “paille”, dans lesquels tous les Ă©lĂ©ments de conception ont Ă©tĂ© supprimĂ©s. Par exemple, si nous voulons Ă©valuer la surcharge d’un algorithme de cryptage, nous pouvons comparer les performances de communication de deux points en utilisant le cryptage par rapport Ă  leurs performances lorsqu’ils Ă©changent simplement des messages non cryptĂ©s. Dans une telle expĂ©rience, le taux absolu de messages par seconde est sans importance. La conclusion importante est la surcharge relative qui est ajoutĂ©e par l’algorithme de cryptage. En outre, si la surcharge est proche de 0 pour une configuration donnĂ©e du dispositif expĂ©rimental, nous pouvons conclure que l’algorithme se rapproche des limites physiques de la capacitĂ© de transmission de messages du rĂ©seau sous-jacent pour cette configuration particuliĂšre, et qu’il est donc optimal en ce sens.

Hydra - Une vue plongeante

Hydra est une architecture Ă©volutive hors-chaĂźne pour les registres distribuĂ©s qui rĂ©pond aux trois dĂ©fis d’évolutivitĂ© mentionnĂ©s ci-dessus : haut dĂ©bit de transaction, faible latence et stockage minimal par nƓud. Bien que Hydra soit conçu en conjonction avec le protocole Ouroboros et le registre Cardano, il peut Ă©galement ĂȘtre utilisĂ© sur d’autres systĂšmes, Ă  condition que ces derniers partagent les caractĂ©ristiques essentielles de Cardano.

Bien qu’il s’agisse d’un systĂšme intĂ©grĂ© visant Ă  rĂ©soudre un seul problĂšme - l’évolutivitĂ© - Hydra se compose de plusieurs sous-protocoles. Cela est nĂ©cessaire car l’écosystĂšme de Cardano lui-mĂȘme est hĂ©tĂ©rogĂšne et se compose de multiples entitĂ©s aux capacitĂ©s techniques diffĂ©rentes : le systĂšme prend en charge les producteurs de blocs avec les groupes d’enjeu associĂ©s, les portefeuilles Ă  haut dĂ©bit comme ceux utilisĂ©s par les plateformes d’échange, mais aussi les utilisateurs finaux avec une grande variĂ©tĂ© de performances de calcul et de caractĂ©ristiques de disponibilitĂ©. Il n’est pas rĂ©aliste de penser qu’une approche unique et un seul protocole puisse suffire Ă  assurer l’évolutivitĂ© globale d’un ensemble aussi diversifiĂ© de participants au rĂ©seau.

L’architecture Ă©volutive de Hydra peut ĂȘtre divisĂ©e en quatre composantes : le protocole de tĂȘte, le protocole de queue, le protocole de communication entre tĂȘte et queue, ainsi qu’un ensemble de protocoles de soutien pour le routage, la reconfiguration et la virtualisation. La piĂšce maĂźtresse est le protocole “head” (de tĂȘte), qui permet Ă  un ensemble de participants Ă  haute performance et haute disponibilitĂ© (tels que des groupes d’enjeu) de traiter trĂšs rapidement un grand nombre de transactions avec des besoins de stockage minimaux par le biais d’un canal d’état multipartite - un concept qui gĂ©nĂ©ralise les canaux de paiement Ă  deux parties, tel qu’il est mis en Ɠuvre dans le contexte du rĂ©seau Lightning. Il est complĂ©tĂ© par le protocole “tail” (queue), qui permet Ă  ces participants trĂšs performants d’offrir une Ă©volutivitĂ© Ă  un grand nombre d’utilisateurs finaux qui peuvent utiliser le systĂšme Ă  partir d’appareils de faible puissance, tels que des tĂ©lĂ©phones portables, et qui peuvent ĂȘtre hors ligne pendant de longues pĂ©riodes. Alors que les tĂȘtes et les queues peuvent dĂ©jĂ  communiquer via la blockchain principale de Cardano, le protocole de communication entre tĂȘtes et queues offre une variante hors chaĂźne efficace de cette fonctionnalitĂ©. Tout cela est liĂ© par le routage et la gestion de la configuration, tandis que la virtualisation facilite une communication plus rapide en gĂ©nĂ©ralisant la communication entre tĂȘte et queue.

Le protocole Hydra “head” (“tĂȘte”)

Le protocole Hydra “head” est le premier Ă©lĂ©ment de l’architecture Hydra Ă  ĂȘtre rendu public. Il permet Ă  un ensemble de participants de crĂ©er un canal d’état hors chaĂźne (appelĂ© tĂȘte) dans lequel ils peuvent exĂ©cuter des contrats intelligents (ou traiter des transactions plus simples) entre eux sans interaction avec la blockchain sous-jacente, dans le cas optimiste oĂč tous les participants de la tĂȘte adhĂšrent au protocole. Le canal d’état offre un rĂšglement trĂšs rapide et un dĂ©bit de transaction Ă©levĂ© ; en outre, il nĂ©cessite trĂšs peu de stockage, car l’historique des transactions hors chaĂźne peut ĂȘtre supprimĂ© dĂšs que l’état qui en rĂ©sulte a Ă©tĂ© sĂ©curisĂ© par une opĂ©ration de " capture d’instantanĂ© " hors chaĂźne.

MĂȘme dans le cas pessimiste oĂč un certain nombre de participants se comportent mal, la sĂ©curitĂ© totale est rigoureusement garantie. À tout moment, tout participant peut dĂ©clencher la “fermeture” de la tĂȘte, ce qui a pour effet de transfĂ©rer l’état de cette tĂȘte vers la blockchain (moins efficace). Nous soulignons que l’exĂ©cution de tout contrat intelligent peut ĂȘtre poursuivie de maniĂšre transparente sur la blockchain. Aucun fonds ne peut ĂȘtre gĂ©nĂ©rĂ© en dehors de la chaĂźne, et aucun des participants actifs dans cette tĂȘte ne peut perdre de fonds.

Les canaux d’état mis en Ɠuvre par Hydra sont isomorphes en ce sens qu’ils utilisent le mĂȘme format de transaction et le mĂȘme code de contrat que la blockchain sous-jacente : les contrats peuvent ĂȘtre dĂ©placĂ©s directement d’un canal Ă  l’autre ainsi que de et vers la blockchain. Ainsi, les canaux d’état donnent effectivement des frĂšres et sƓurs parallĂšles, hors chaĂźne. En d’autres termes, le registre lui-mĂȘme devient multi-tĂȘte.

La confirmation des transactions dans la tĂȘte est rĂ©alisĂ©e de maniĂšre totalement parallĂšle par un processus de certification asynchrone hors chaĂźne utilisant des signatures multiples. Ce niveau Ă©levĂ© de parallĂ©lisme est rendu possible par l’utilisation du modĂšle UTxO Ă©tendu (EUTxO). Les dĂ©pendances des transactions dans le modĂšle EUTxO sont explicites, ce qui permet de mettre Ă  jour les Ă©tats sans sĂ©quentialisation inutile de transactions puisqu’elles sont indĂ©pendantes les unes des autres.

Validation expĂ©rimentale du protocole Hydra “head”

Comme premiĂšre Ă©tape vers la validation expĂ©rimentale des performances du protocole Hydra “head”, nous avons mis en place une simulation. La simulation prend comme paramĂštre le temps requis par les actions individuelles (validation des transactions, vĂ©rification des signatures, etc.), et rĂ©alise une simulation rĂ©aliste d’un groupe de nƓuds validateurs distribuĂ©s formant une tĂȘte. Il en rĂ©sulte des calculs rĂ©alistes du temps de confirmation des transactions et du dĂ©bit.

Nous constatons qu’une seule tĂȘte de Hydra permet d’atteindre environ 1 000 TPS, donc en faisant tourner 1 000 tĂȘtes en parallĂšle (par exemple, une pour chaque groupe d’enjeu prĂ©vu pour Shelley), nous pourrions atteindre un million de TPS. C’est impressionnant et cela nous donne une longueur d’avance sur la concurrence, mais pourquoi s’arrĂȘter lĂ  ? 2 000 tĂȘtes nous donneront 2 millions de TPS - et si quelqu’un demande un milliard de TPS, alors nous pouvons lui dire de lancer d’un million de tĂȘtes. En outre, diverses optimisations lors de l’implĂ©mentation peuvent amĂ©liorer ces chiffres, ce qui ajoute encore aux performances hypothĂ©tiques du protocole.

Alors, peut-on atteindre n’importe quel nombre de TPS ? En thĂ©orie, la rĂ©ponse est un oui solide, ce qui met en Ă©vidence un problĂšme liĂ© Ă  l’utilisation dominante des TPS comme mesure de comparaison des systĂšmes. S’il est tentant de rĂ©duire la complexitĂ© de l’évaluation des performances des protocoles Ă  un seul chiffre, en pratique, cela conduit Ă  une simplification excessive. Sans autre contexte, un nombre de TPS est presque dĂ©nuĂ© de sens. Afin de l’interprĂ©ter correctement et de faire des comparaisons, vous devez au moins vous demander quelle est la taille du groupe (qui influence le temps de communication) ; sa distribution gĂ©ographique (qui dĂ©termine le temps nĂ©cessaire pour que les informations transitent par le systĂšme) ; l’impact d’un taux Ă©levĂ© de transactions sur la qualitĂ© du service (temps de confirmation des transactions, fourniture de donnĂ©es aux utilisateurs finaux) ; l’ampleur et la complexitĂ© des transactions (qui ont un impact sur les temps de validation des transactions, le temps de propagation des messages, les exigences relatives au systĂšme de stockage local et la composition des participants principaux) ; et le type de matĂ©riel et de connexions rĂ©seau utilisĂ©s dans les expĂ©riences. La seule modification de la complexitĂ© des transactions peut tripler le TPS, comme le montrent les chiffres prĂ©sentĂ©s dans l’article (voir section 7 - Simulations).

Il est clair que nous avons besoin d’une meilleure norme. Le protocole Hydra “head” est-il de bonne conception ? Ce que nous devons nous demander, c’est : atteint-il les limites physiques du rĂ©seau, et non un simple nombre de TPS ? Ainsi, pour cette premiĂšre itĂ©ration de l’évaluation du protocole Hydra" head", nous avons utilisĂ© l’approche suivante pour nous assurer que les donnĂ©es que nous fournissons ont vraiment du sens :

  • Nous Ă©numĂ©rons clairement tous les paramĂštres qui influencent la simulation : taille de la transaction, temps de validation d’une seule transaction, temps nĂ©cessaire aux opĂ©rations cryptographiques, largeur de bande passante allouĂ©e par nƓud, taille des groupes de participants et rĂ©partition gĂ©ographique, et limites du parallĂ©lisme avec lequel les transactions peuvent ĂȘtre Ă©mises. Sans cet environnement contrĂŽlĂ©, il serait impossible de reproduire nos rĂ©sultats.

  • Nous comparons les performances du protocole Ă  des lignes de base qui fournissent des limites prĂ©cises et absolues du rĂ©seau et de l’infrastructure matĂ©rielle sous-jacents. La maniĂšre dont nous approchons ces limites nous indique la marge de manƓuvre dont nous disposons pour apporter des amĂ©liorations supplĂ©mentaires. Cela suit la mĂ©thodologie expliquĂ©e ci-dessus Ă  l’aide de l’exemple d’un algorithme de cryptage.

Nous utilisons deux lignes de base pour Hydra. La premiĂšre, “Full Trust”, est universelle : elle s’applique Ă  tout protocole qui rĂ©partit les transactions entre les nƓuds et insiste pour que chaque nƓud valide les transactions l’une aprĂšs l’autre - sans mĂȘme assurer le consensus. Cela permet d’évaluer les limites maximales en terme de TPS en additionnant simplement les temps de latence et de validation des messages. La façon dont nous approchons cette limite nous indique sur le prix Ă  payer pour obtenir un consensus, sans se fier Ă  la comparaison avec d’autres protocoles. La deuxiĂšme base de rĂ©fĂ©rence, “Hydra Unlimited”, donne une limite TPS spĂ©cifique pour le protocole principal et fournit Ă©galement la latence idĂ©lae et le stockage pour n’importe quel protocole. Nous y parvenons en supposant que nous pouvons envoyer suffisamment de transactions en parallĂšle pour amortir complĂštement les temps d’aller-retour sur le rĂ©seau et que toutes les actions peuvent ĂȘtre effectuĂ©es en cas de besoin, sans conflit de ressources. La base de rĂ©fĂ©rence nous aide Ă  rĂ©pondre Ă  la question de savoir ce qui peut ĂȘtre rĂ©alisĂ© dans des circonstances idĂ©ales avec la conception gĂ©nĂ©rale de Hydra (pour un ensemble de paramĂštres d’entrĂ©e donnĂ©s) ainsi qu’à Ă©valuer la latence de confirmation et les frais gĂ©nĂ©raux de stockage par rapport Ă  n’importe quel protocole possible. Vous trouverez plus de dĂ©tails et de graphiques pour les personnes intĂ©ressĂ©es dans notre article (Ă  nouveau, section 7 - Simulations).

Quelle est la prochaine étape ?

La rĂ©solution de la question de l’évolutivitĂ© est le Saint Graal pour toute blockchain. Le temps est venu d’appliquer une approche fondĂ©e sur des principes et des preuves pour concevoir et mettre au point des solutions d’évolutivitĂ© des blockchains. La comparaison des propositions d’évolutivitĂ© par rapport Ă  des bases de rĂ©fĂ©rence bien dĂ©finies peut ĂȘtre d’une grande aide dans la conception de tels protocoles. Elle fournit des preuves solides quant Ă  la pertinence des choix de conception et conduit en fin de compte Ă  l’ingĂ©nierie de protocoles de registres distribuĂ©s efficaces et performants qui fourniront les meilleures mesures absolues possibles pour les cas d’utilisation qui nous intĂ©ressent. Pendant que le protocole Hydra “head” est mis en Ɠuvre et testĂ©, nous publierons, Ă  terme, le reste des composants de Hydra en suivant la mĂȘme approche.

Pour terminer, Hydra est le fruit de l’effort conjoint de plusieurs chercheurs, que je tiens Ă  remercier. Parmi eux, Manuel Chakravarty, Sandro Coretti, Matthias Fitzi, Peter GaĆŸi, Philipp Kant et Alexander Russel. Ce travail a Ă©galement Ă©tĂ© soutenu, en partie, par le projet europĂ©en n° 780477, PRIVILEDGE, que nous remercions.

1 Like