1. Accueil
  2. /
  3. Cardano
  4. /
  5. Layer 1 et layer 2 : tout ce que...

Layer 1 et layer 2 : tout ce que vous devez savoir

Lorsque l’on parle d’architecture blockchain, les termes « couche 1 » et « couche 2 », sont fréquemment mentionnés. Ce sont des concepts importants qui ont deux objectifs : expliquer comment un réseau blockchain est construit et fournir une représentation visuelle facile à comprendre de ce à quoi ressemble un réseau blockchain. Décortiquons ces idées

Couche 1 : définition

Imaginez un gâteau de mariage, avec différents étages – des couches, si vous voulez -, et la figurine d’un couple sur le dessus. Ce magnifique gâteau repose sur un support solide, la base. À toutes fins utiles, ce support robuste et solide est la première couche (layer 1) qui soutient l’infrastructure du gâteau. Vous pouvez probablement voir où cela nous mène. Dans une blockchain, la couche 1 est le réseau de base sur lequel reposent les solutions de la couche 2.

Avec ce schéma visuel à l’esprit, le Cardano est la couche 1 (le réseau de base), qui comprend elle-même trois couches indépendantes :

  • La couche réseau
  • Couche Consensus
  • Couche du grand livre

Couche réseau

Cette couche maintient les connexions entre tous les nœuds distribués du réseau Cardano, obtient les nouveaux blocs du réseau à mesure qu’ils sont produits par les nœuds producteurs de blocs, construit les transactions nouvellement frappées en blocs et transmet les blocs entre les nœuds.

Couche de consensus

Cette couche remplit deux fonctions fondamentales :

  • L’exécution du protocole de consensus Ouroboros. Cette couche prend des décisions telles que l’adoption de blocs, le choix entre des chaînes concurrentes (s’il y en a) et la décision de produire ses propres blocs.
  • Maintenir tous les états nécessaires pour prendre les décisions prises dans la couche de consensus.

Couche du registre distribué

Cette couche spécifie :

  • à quoi ressemble l’état du registre distribué ; et
  • comment le registre doit être mis à jour pour chaque nouveau bloc.

La couche du grand livre se compose exclusivement de fonctions pures qui spécifient les transitions entre les états successifs du grand livre, telles qu’elles sont dérivées des règles formelles du grand livre, en utilisant le modèle comptable Extended UTxO (EUTxO). Les transitions d’état sont déterminées par l’ensemble des transactions contenues dans les blocs Cardano et par des événements majeurs tels que les transitions d’époch.

La couche de consensus n’a pas besoin de connaître la nature exacte de l’état du registre, ni le contenu des blocs, à l’exception de certains champs d’en-tête nécessaires à l’exécution du protocole de consensus.

Dans leur ensemble, ces trois couches forment la solution de couche 1 qu’est Cardano.

Couche 1 : évolutivité

Regardez à nouveau ce gâteau de mariage. Il est gros, n’est-ce pas, avec tous ces étages empilés les uns sur les autres. Mais regardez la base, le support du gâteau. La première couche a certaines dimensions et ne peut pas être plus grande. De même, elle doit être suffisamment grande pour supporter les étages qui la surmontent. Les éléments qui reposent dessus ne peuvent avoir qu’une certaine taille, et c’est exactement la raison pour laquelle les gâteaux de mariage ont plusieurs étages. Chaque étage ajoute quelque chose à la base. Une nouvelle garniture, un nouveau glaçage, une nouvelle décoration, etc. En d’autres termes, chaque étage met à l’échelle la couche de base.

Les réseaux publics décentralisés sont confrontés à un problème similaire. Tout comme un moule à gâteau ne peut contenir qu’un nombre limité de parts, la base (la couche 1) ne peut traiter qu’un certain nombre de transactions. Si vous essayez d’ajouter plus de tranches que ne peut en contenir le moule à gâteau, elles commenceront à tomber des bords et le désordre gâchera le grand jour de quelqu’un. De même, les nœuds d’un réseau de niveau 1 ne peuvent traiter qu’un certain nombre de transactions avant que la congestion ne se produise. Plus le nombre d’utilisateurs augmente, plus il faut de nœuds pour traiter les transactions. Pour résoudre ce problème, le réseau doit être mis à l’échelle, faute de quoi les transactions commenceront à tomber des bords, pour ainsi dire.

Il existe des moyens de faire évoluer un réseau de niveau 1. L’augmentation de la taille des blocs, par exemple, afin que les blocs transportent davantage de données de transaction. La taille des blocs a récemment augmenté de 8 Ko pour atteindre 72 Ko (soit une augmentation de 12,5 %). C’est l’une des façons dont Cardano évoluera en 2022.

Pour en revenir à notre visuel de gâteau de mariage, l’ajout de couches ne fait pas seulement grossir le gâteau, il introduit également une fonctionnalité très utile : la possibilité de rendre chaque couche différente de la base. Nous pouvons ajouter des saveurs, des garnitures, des motifs, etc. différents, indépendamment de la première couche. Pour répondre aux différents « invités » et aux différentes préférences. Dans la blockchain, l’ajout d’une nouvelle couche (layer 2) permet non seulement à la couche 1 de s’étendre, mais aussi aux transactions et aux processus de se dérouler indépendamment de la chaîne principale (layer 1).

Solutions de mise à l’échelle L1 dans Cardano


Cardano est entré dans la phase de développement Basho, qui porte sur la mise à l’échelle et l’optimisation. Bien que le réseau gère actuellement la demande de manière très efficace, l’écosystème des applications décentralisées (DApp) connaît une croissance rapide et continuera à solliciter de plus en plus le système. Pour y faire face, de multiples méthodes de mise à l’échelle (y compris des solutions de couche 1 et de couche 2) sont déployées sur Cardano pour embarquer d’abord des centaines de milliers, puis des millions de nouveaux utilisateurs.

Augmentation de la taille des blocs

Plus le bloc est gros, plus il peut contenir de transactions. Le tout premier bloc frappé sur Cardano avait une taille de 665 octets (0,665KB). Aujourd’hui, la taille des blocs est de 72 Ko. Cela représente une augmentation de plus de 10 000 % ! D’autres augmentations seront appliquées au fil du temps en fonction de la surveillance continue du système et de la santé globale du réseau.

Pipelining

Améliore les temps de propagation des blocs en fusionnant la validation et la propagation. L’objectif est de propager les blocs à au moins 95 % des pairs dans un délai de cinq secondes en réduisant le « temps mort » entre les blocs (la surcharge de propagation des blocs). Cela permet de disposer d’une marge de manœuvre pour effectuer des changements d’échelle plus agressifs, tels que l’augmentation de la taille des blocs et l’augmentation des limites des paramètres de Plutus.

Endosseurs d’entrée

Plus tard, les endosseurs d’entrée ( input endorsers ) amélioreront les temps de propagation des blocs et le débit en permettant aux transactions d’être séparées en blocs préconstruits. Cela améliore la cohérence des temps de propagation des blocs et permet des taux de transaction plus élevés.

Paramètres mémoire/CPU pour Plutus

L’utilisation de la mémoire est plus efficace sur l’ensemble de la chaîne. Plus précisément, il y a des améliorations de la mémoire dans la gestion des sorties de transactions non dépensées (UTXO), la distribution des enjeux, la distribution et les pools d’enjeux en direct, et la représentation des hachages.

Améliorations du script Plutus

Utilisation encore plus efficace du puissant modèle EUTxO grâce à l’optimisation des contrats intelligents, notamment :

  • Entrées de référence (CIP-0031) – Les scripts Plutus peuvent inspecter les entrées de transaction sans avoir besoin de les dépenser. Cela signifie qu’il n’est pas nécessaire de créer des UTXOs simplement pour inspecter les informations détenues par une entrée.
  • Datums Plutus (CIP-0032) – Les datums peuvent être attachés directement aux sorties au lieu des hashs de datum. Cela simplifie la façon dont les données sont utilisées, car un utilisateur peut voir la donnée réelle plutôt que de devoir fournir la donnée qui correspond au hash donné.
  • Partage de scripts (CIP-0033) – Les références de scripts Plutus peuvent être associées aux sorties de transactions, ce qui signifie qu’elles peuvent être enregistrées dans la chaîne pour une réutilisation ultérieure. Il ne sera pas nécessaire de fournir une copie du script avec chaque transaction, ce qui réduit considérablement les contraintes pour les développeurs. La réutilisation des scripts dans plusieurs transactions réduit considérablement la taille des transactions, ce qui améliore le débit et réduit les coûts d’exécution des scripts.

Améliorations du nœud

Les améliorations apportées au nœud permettront de répartir uniformément les calculs d’enjeux et de récompenses sur les époques, offrant ainsi une plus grande marge de manœuvre pour l’augmentation de la taille des blocs. En outre, l’utilisation de la mémoire est désormais plus efficace. Le compactage de la mémoire réduit l’empreinte RSS, et le partage de la mémoire signifie que nous avons besoin de moins de données instanciées. La version 1.34.1 du nœud, qui date de mars 2022, réduit les pics de charge aux points critiques, notamment aux transitions d’epochs.

Stockage sur disque

En stockant des parties de l’état du protocole sur le disque, les nœuds auront besoin de moins de mémoire, ce qui signifie que les systèmes soumis à des contraintes de RAM pourront faire fonctionner les nœuds s’ils disposent d’un stockage suffisant, et que la mémoire ne constituera pas un goulot d’étranglement pour l’évolutivité. Cela permettra une croissance significative de l’état de la blockchain.

Interlude : le trilemme de la blockchain


L’évolutivité d’un système distribué, tel qu’une blockchain, est un dilemme complexe.

On s’accorde généralement à dire qu’un système blockchain « correct » doit posséder trois propriétés : évolutivité, sécurité et décentralisation. Mais une croyance tout aussi répandue est le « trilemme », selon lequel les systèmes décentralisés ne peuvent offrir que deux de ces propriétés, tout en sacrifiant la troisième. Postulé pour la première fois par le créateur d’Ethereum, Vitalik Buterin, le trilemme suggère que les développeurs doivent toujours accepter un compromis lors de la conception de réseaux blockchain. Ce compromis signifie qu’une propriété doit être restreinte pour que les deux autres soient possibles.

Par exemple, plus un réseau comporte de nœuds, plus il est décentralisé, mais cela signifie également que davantage de nœuds doivent être dignes de confiance pour maintenir la sécurité. Pour maintenir la sécurité, il faut introduire des frais qui rendent le coût d’une attaque potentielle prohibitif. Or, un réseau doit inciter à la participation, de sorte que les coûts par nœud doivent être relativement faibles. En outre, la caractéristique même de l’immuabilité implique que les données de la blockchain seront ajoutées tant que la blockchain existera, mais ne seront jamais supprimées, ce qui signifie que la blockchain ne cessera de croître. Un réseau plus grand signifie plus de ressources informatiques nécessaires pour maintenir les performances. De meilleures performances nécessitent un meilleur matériel, ce qui signifie que les récompenses doivent être suffisantes pour que l’investissement en vaille la peine. Et ainsi de suite.

Mise à l’échelle verticale et horizontale

La résolution de ce trilemme nécessite une approche prudente et équilibrée, afin que les trois éléments restent en équilibre.

En théorie, un système de blockchain continuera à se développer indéfiniment. Plus il y a de nœuds dans le système, plus il y a de données et d’actifs qui circulent, et plus il y a de transactions à traiter. Tout cela nécessite de la puissance de calcul et du stockage. Au fil du temps, la demande ne cessera de croître, et le système sous-jacent devra donc évoluer en conséquence pour éviter une chute spectaculaire des performances.

Il existe deux options de mise à l’échelle : verticale et horizontale.

Mise à l’échelle verticale

Cette technique consiste à étendre les capacités de calcul des nœuds individuels en ajoutant plus de mémoire et de meilleurs composants. En d’autres termes, il s’agit de mettre à niveau le matériel du réseau pour obtenir de meilleures performances globales.

Un réseau comprenant des nœuds très performants permet d’augmenter la taille des blocs et d’accélérer leur diffusion, par exemple. Mais les inconvénients sont que la décentralisation sera limitée, étant donné les coûts d’exploitation élevés, ce qui fera réfléchir les nouveaux opérateurs de nœuds avant de les rejoindre et freinera ainsi l’expansion du réseau. En outre, un tel réseau entraînera des coûts plus élevés pour les nœuds de validation.

Mise à l’échelle horizontale

Contrairement à la mise à l’échelle verticale, la mise à l’échelle horizontale peut être réalisée de deux manières. La première consiste simplement à ajouter des ordinateurs (nœuds) au réseau existant. Le raisonnement est le suivant : en ajoutant des nœuds supplémentaires, le réseau devient capable de traiter davantage de transactions.

Deuxièmement, en utilisant des chaînes latérales, qui déchargent la chaîne principale d’une partie de la charge de calcul et, avantage supplémentaire, permettent la personnalisation sous la forme de différents protocoles de consensus ou modèles de gouvernance, par exemple, pour s’adapter à un projet ou à un secteur particulier. Du point de vue de la sécurité, les chaînes latérales peuvent créer un écosystème plus sûr en isolant les menaces potentielles pour la chaîne principale. Si une chaîne latérale est compromise de quelque manière que ce soit, le risque est limité à cette chaîne latérale, ce qui protège le reste du réseau.

L2 : résoudre le dilemme de l’évolutivité

De manière générale, les solutions de niveau 2 répondent au problème d’évolutivité inhérent aux chaînes L1. Construits au-dessus d’une blockchain existante (tout comme l’ajout d’une nouvelle couche à un gâteau de mariage), les protocoles de niveau 2 effectuent une grande partie du travail de traitement qui, autrement, serait effectué sur la chaîne principale. Cela augmente le débit de la chaîne principale. Un bonus supplémentaire est que, tandis que la solution de couche 2 effectue le travail difficile, la couche 1 conserve sa sécurité.

Couche 2 : définition

Un protocole supplémentaire, hors chaîne, qui fonctionne au-dessus de la blockchain de couche 1. Les parties peuvent transférer en toute sécurité des fonds de la blockchain vers un protocole hors chaîne, régler des transactions dans ce protocole indépendamment de la chaîne sous-jacente et transférer à nouveau des fonds en toute sécurité vers la chaîne sous-jacente si nécessaire. Les protocoles de couche 2 améliorent le débit global et l’évolutivité car ils réduisent la congestion du réseau.

Solutions d’évolutivité de couche 2 dans Cardano

Sidechains

Une sidechain, définie comme un moyen de permettre à plusieurs blockchains de communiquer entre elles et de faire réagir l’une aux événements de l’autre, est une blockchain séparée connectée à une blockchain principale (la chaîne « principale », également appelée chaîne mère), par un mécanisme bidirectionnel (un « pont » ou « bridge ») qui permet aux jetons et autres actifs numériques d’une chaîne d’être utilisés dans une autre et aux résultats de revenir à la chaîne d’origine. Les actifs peuvent être déplacés entre les chaînes selon les besoins. Une seule chaîne mère peut avoir plusieurs chaînes latérales interopérables connectées à elle, qui peuvent fonctionner de manière complètement différente. Les chaînes latérales EVM sur Cardano comprennent Milkomeda de dcSpark et le projet de chaîne latérale EVM d’IOG.

Hydra

Hydra est la solution d’évolutivité de couche 2 pour Cardano, qui vise à augmenter la vitesse des transactions grâce à une faible latence et un débit élevé, et à minimiser le coût des transactions.

Hydra Head est le premier protocole de la famille Hydra et constitue la base de scénarios de déploiement plus avancés reposant sur des canaux d’état isomorphes et multipartites. En fournissant des moyens plus efficaces de traiter les transactions hors chaîne pour un ensemble d’utilisateurs, tout en utilisant le registre de la chaîne principale comme couche de règlement sécurisée, Hydra Head conserve les garanties de sécurité tout en restant faiblement couplé à la chaîne principale. Ne nécessitant pas de consensus global, il peut s’adapter à un large éventail d’applications. De plus, Hydra Head permet de configurer les frais de transmission, les budgets d’exécution des scripts et d’autres paramètres du protocole à un niveau aussi bas ou élevé que le requiert le cas d’utilisation. Par exemple, ceci est crucial pour permettre les microtransactions.

En outre, Hydra Head introduit le concept de canaux d’état isomorphes : il s’agit de réutiliser la même représentation du registre pour produire des frères et sœurs de grand livre uniformes, hors chaîne, que nous appelons Têtes ou Heads (d’où le nom Hydra). Spécifiquement pour Cardano, cela signifie que les actifs natifs, les jetons non fongibles (NFT) et les scripts Plutus sont disponibles dans chaque tête Hydra. L’isomorphisme permet une extension naturelle du système, plutôt qu’une extension boulonnée.

Hydra Heads excelle dans l’obtention d’une finalité quasi instantanée au sein d’une tête. Le processus de création et de fermeture d’une Head peut prendre quelques blocs, mais une fois établi, les transactions peuvent circuler rapidement entre les participants à la collaboration. Étant donné que les Hydra Heads sont isomorphes et utilisent également le modèle EUTXO, elles peuvent traiter simultanément des transactions non conflictuelles, ce qui, associé à une bonne mise en réseau, permet une utilisation optimale des ressources disponibles.

Autres solutions d’extensibilité

Calcul hors chaîne

Le déchargement d’une partie des calculs, par exemple avec l’exécution asynchrone des contrats (ACE), peut accroître l’efficacité du réseau central. Les transactions ont lieu en dehors de la blockchain elle-même, mais peuvent offrir des transactions rapides et bon marché grâce à un modèle de confiance.

Mithril

Pour atteindre une plus grande évolutivité, il est nécessaire de s’attaquer à la complexité des opérations critiques qui dépendent logarithmiquement du nombre de participants. Mithril est un protocole développé par IOG qui agit comme un système de signature à seuil basé sur les enjeux, permettant une utilisation transparente, sûre et légère des enjeux. Mithril améliorera la synchronisation des chaînes tout en maintenant la confiance. Il en résulte une agrégation rapide et efficace des signatures multiples sans compromettre les caractéristiques de sécurité.

Conclusion

Un réseau blockchain fonctionne de manière mystérieuse, et certains des concepts entourant un écosystème de registre décentralisé peuvent être difficiles à comprendre.

Ce n’est pas le cas de la couche 1 et de la couche 2, si vous utilisez la visualisation du gâteau en couches exprimée dans le présent document.

  • Couche 1 (le support du gâteau) = le réseau de base robuste et sécurisé sur lequel reposent les solutions de la couche 2.
  • Couche 2 (les étages du gâteau) = solutions construites au-dessus de la base pour résoudre les problèmes d’évolutivité inhérents.

C’est la façon la plus simple de visualiser et de comprendre ce que sont les couches 1 et 2.

Points essentiels à retenir

  • Cardano est la couche 1 (le réseau de base).
  • Une solution de couche 2 est une structure construite au-dessus d’une chaîne de couche 1 pour résoudre les problèmes d’évolutivité et de vitesse de transaction de cette dernière. Le Lightning Network de Bitcoin est un exemple de solution de niveau 2, tout comme Hydra pour Cardano.
  • Il existe deux options de mise à l’échelle : verticale et horizontale.
  • La mise à l’échelle verticale consiste à étendre les capacités de calcul des nœuds individuels en ajoutant plus de mémoire et de meilleurs composants.
  • La mise à l’échelle horizontale peut être réalisée de deux manières. D’une part, en ajoutant simplement plus d’ordinateurs (nœuds) au réseau existant, et d’autre part, en utilisant des chaînes latérales, qui déchargent la chaîne principale d’une partie de la charge de calcul.
  • Cardano verra une série de méthodes de mise à l’échelle mises en œuvre au cours des années 2022/2023.

Cet article est une traduction : https://iohk.io/en/blog/posts/2022/08/05/layer-1-layer-2-all-you-need-to-know/