Cardano sidechains | Partie 1

Introduction aux chaînes latérales

Une sidechain est simplement une blockchain qui dépend de sa chaîne principale et qui lui est connectée. Cette configuration permet à la sidechain d’avoir son propre algorithme de consensus et ses propres fonctionnalités. La sidechain est connectée à la chaîne principale via une cheville bidirectionnelle qui permet le déplacement des actifs entre les chaînes. La finalité des blocs est déterminée par un mécanisme de consensus qui repose sur la sécurité de la chaîne principale.

Input Output Global (IOG) fournit une boîte à outils de sidechain conçue pour aider les développeurs à créer des sidechains personnalisées pour un large éventail de cas d’utilisation. Pour prouver la capacité de la boîte à outils, l’application de preuve de concept est la chaîne latérale Cardano EVM. EVM signifie machine virtuelle Ethereum. La sidechain Cardano EVM est compatible EVM, ce qui signifie que le déploiement de vos applications Ethereum consiste simplement à déployer votre code Solidity sur la sidechain et à interagir avec lui via l’API Web3.

Qu’est-ce que la sidechain EVM de preuve de concept ?

La sidechain EVM de preuve de concept est un protocole de sidechain Cardano open-source fournissant un client écrit en Scala. La sidechain EVM est une sidechain enfant , ce qui signifie que son bloc de départ, ou bloc de genèse, est amorcé à partir de la chaîne principale et que la blockchain enfant dépend de la chaîne principale. La sidechain EVM de preuve de concept permet à quiconque d’exécuter un nœud passif de réseau sidechain.

Avantages de la chaîne latérale

Les chaînes latérales offrent des avantages en termes d’interopérabilité, d’évolutivité et de compatibilité.

Interopérabilité

La forme de communication la plus élémentaire est l’échange d’actifs. Étant donné que les actifs conservent leur nature lorsqu’ils sont transférés vers la sidechain, ils peuvent être retransférés tout aussi facilement. Un mécanisme appelé cheville bidirectionnelle réalise cette communication. Tant que les deux chaînes sont sécurisées en elles-mêmes, cette sécurité est répercutée sur les transferts dans les deux sens.

La communication entre la chaîne principale et la chaîne latérale leur permet de conserver leurs propres méthodes de consensus et formats de blocs (qu’ils soient modifiés) et de continuer à travailler ensemble, ouvrant ainsi une gamme d’applications beaucoup plus large.

Évolutivité

Tout comme un chef de projet a le trilemme de bon, rapide ou bon marché (choisissez-en deux), une blockchain a le choix entre trois objectifs concurrents : la décentralisation, la sécurité et l’évolutivité.

Étant donné que les sidechains peuvent être courtes et spécifiques à un domaine d’application, les transactions peuvent être effectuées plus rapidement, soulageant la chaîne principale de cette charge.

L’amélioration de l’évolutivité des sidechains ne compromet pas la sécurité et n’a pas besoin d’affecter la décentralisation, offrant des améliorations dans le trilemme de la blockchain.

Compatibilité

Les chaînes latérales peuvent exposer la même interface de programme d’application (API) qu’une chaîne existante et utiliser la sécurité et l’efficacité des protocoles de consensus de Cardano. Par exemple, la chaîne latérale Cardano EVM fournit un environnement d’exécution Solidity qui ne nécessite pas de mineurs, mais qui sert toujours les méthodes Ethereum JSON RPC. Les contrats intelligents Ethereum peuvent fonctionner sans changement, à des frais de gaz considérablement inférieurs.

Éléments de conception de la chaîne latérale

La conception de la sidechain EVM de preuve de concept est basée sur les principes énoncés dans le livre blanc de 2018 « Proof-of-Stake Sidechains » de Peter Gaži, Aggelos Kiayias et Dionysis Zindros.

Voici quelques caractéristiques de conception de la sidechain Cardano EVM pertinentes pour les développeurs de Solidity.

Cheville à double sens

La sidechain EVM permet le transfert d’actifs dans les deux sens entre la blockchain Cardano et les sidechains. L’ancrage bidirectionnel qui permet d’atteindre cet objectif préserve la nature de l’actif dans les deux chaînes chaque fois que l’actif se déplace.

Protocole de consensus

Bien que le contrat Solidity puisse être destiné à une blockchain Proof of Work, la sidechain EVM de preuve de concept fournit un environnement d’exécution Solidity qui ne nécessite pas de mineurs, mais sert toujours les méthodes Ethereum JSON RPC, offrant les avantages bien connus d’une consommation d’énergie réduite, rapidité et décentralisation.

Pare-feu

La propriété de pare-feu garantit qu’une défaillance catastrophique dans l’une des chaînes, telle qu’une violation de ses hypothèses de sécurité, ne rend pas les autres chaînes vulnérables. Cette caractéristique fournit une mesure de responsabilité limitée analogue à la responsabilité limitée dans le monde de l’entreprise - lorsqu’une société à responsabilité limitée fait faillite, ses actionnaires ne sont responsables que du montant de leur investissement.

Staking fusionné

Une considération critique dans la construction de la sidechain est de protéger une nouvelle sidechain contre les attaques.

La construction de la sidechain EVM de preuve de concept comprend le « staking fusionné », qui permet aux validateurs de la chaîne principale qui ont signalé la prise de conscience de la sidechain de créer des blocs de sidechain sans déplacer aucune mise vers la sidechain. Ainsi, la sécurité de la sidechain peut être maintenue, étant donné une majorité de participation honnête parmi les entités qui ont signalé la sensibilisation à la sidechain. Surtout dans la phase d’amorçage, ces validateurs de la chaîne principale devraient être un grand sur-ensemble de l’ensemble des parties prenantes qui maintiennent les actifs dans la chaîne latérale.

Plus d’informations

Pour une description complète des fondements théoriques de la conception, reportez-vous au livre blanc d’origine .

Remarques de clôture

La boîte à outils sidechains est la dernière livraison de la feuille de route Cardano au sein de Basho, la phase de mise à l’échelle, introduisant une programmabilité, une interopérabilité et une évolutivité plus élevées. Les développeurs de blockchain pourront créer plus facilement des chaînes latérales personnalisées. À terme, IOG espère voir émerger une famille de sidechains Cardano et de chaînes partenaires.

Il existe des domaines d’amélioration connus, tels que l’expérience de pont, le mécanisme de récompenses SPO et le modèle de sécurité. Tous ces domaines seront travaillés avec la communauté au fur et à mesure.

De nombreuses améliorations peuvent être apportées et il existe de nombreuses façons de gérer une sidechain. Cependant, nous espérons que ce que nous avons développé en interne chez IOG fournira un ensemble de capacités de base et posera des bases solides pour créer un ensemble d’outils et apporter de nouvelles améliorations en collaboration avec la communauté.

À propos d’Ouroboros BFT

Ouroboros BFT : un simple protocole de consensus byzantin tolérant aux pannes

Ouroboros, du nom du symbole de l’infini, est l’épine dorsale de l’écosystème Cardano. Ouroboros BFT est la version implémentée dans la sidechain EVM de preuve de concept de Cardano. Il s’agit d’un protocole simple et déterministe pour le consensus du grand livre qui tolère les fautes byzantines.

Arrière-plan

Qu’est-ce donc qu’une faute byzantine ? Pour comprendre cela, nous devons remonter à 1982, à l’ article sur les problèmes des généraux byzantins de Leslie Lamport, Robert Shostak et Marshall Pease. Imaginez un certain nombre de généraux entourant une ville, incapables de communiquer entre eux sauf par message. Les généraux doivent parvenir à un consensus sur l’opportunité d’attaquer ou de battre en retraite, même si un ou plusieurs généraux sont des traîtres. Cette histoire est facile à saisir et est utilisée comme allégorie de la situation dans un système de grand livre distribué où les nœuds doivent parvenir à un consensus sur le contenu du grand livre même si un ou plusieurs des nœuds participants sont hors ligne, défectueux ou malveillants. . Un tel nœud peut créer une faille byzantine . Le problème est simple à appréhender mais difficile à résoudre. C’est là qu’Ouroboros entre en jeu.

Description

Cette description est basée sur les blogs du professeur Aggelos Kiayias et Kieran Costello.

Un mot sur les protocoles de consensus et pourquoi Ouroboros est différent

Il est raisonnable de supposer que toute personne nouvelle dans l’espace pourrait être confondue par le terme «protocole de consensus». En termes simples, un protocole de consensus est le système de lois et de paramètres qui régissent le comportement des registres distribués : un ensemble de règles selon lequel chaque participant au réseau joue.

Il n’y a pas d’autorité centrale unique pour contrôler une blockchain publique. Au lieu de cela, un protocole de consensus est utilisé pour permettre aux participants du réseau distribué de s’entendre sur l’historique du réseau capturé sur la blockchain - pour parvenir à un consensus sur ce qui s’est passé et continuer à partir d’une seule source de vérité.

Cette source unique de vérité fournit un enregistrement unique. C’est pourquoi les blockchains sont parfois qualifiées de sans confiance. Au lieu d’exiger que les participants se fassent confiance, la confiance est intégrée au protocole. Des acteurs inconnus peuvent interagir et effectuer des transactions les uns avec les autres sans recourir à un intermédiaire pour assurer la médiation ou pour qu’il y ait un échange préalable de données personnelles.

Ouroboros est un protocole de preuve de participation, qui est distinct de la preuve de travail. Plutôt que de compter sur des “mineurs” pour résoudre des équations complexes en termes de calcul afin de créer de nouveaux blocs - et de récompenser les premiers à le faire - la preuve de participation sélectionne les participants (dans le cas de Cardano, les pools de participation) pour créer de nouveaux blocs en fonction de la participation qu’ils contrôlent dans le réseau.

Les réseaux utilisant Ouroboros sont beaucoup plus économes en énergie que ceux utilisant la preuve de travail et, grâce à Ouroboros, Cardano est en mesure d’atteindre une efficacité énergétique inégalée. La différence de consommation d’énergie qui en résulte peut être assimilée à celle entre un ménage et un petit pays : l’un peut être adapté au marché de masse ; l’autre ne peut pas.

Examinons maintenant de plus près le fonctionnement du protocole Ouroboros.

Ouroboros classique

À commencer par Ouroboros, la première implémentation du protocole Ouroboros, publiée en 2017. Cette première implémentation (appelée Ouroboros Classic) a jeté les bases du protocole en tant que rival écoénergétique de la preuve de travail. Il a introduit le cadre mathématique pour analyser la preuve de participation et un nouveau mécanisme d’incitation pour récompenser les participants dans un cadre de preuve de participation.

Plus que cela, cependant, ce qui séparait Ouroboros des autres protocoles de blockchain et, en particulier, des protocoles de preuve de participation était sa capacité à générer un caractère aléatoire impartial dans l’algorithme de sélection du leader du protocole et les garanties de sécurité qui en découlaient. Le caractère aléatoire empêche la formation de modèles et est un élément essentiel du maintien de la sécurité du protocole. Chaque fois qu’un adversaire peut prédire un comportement, il peut l’exploiter - et bien qu’Ouroboros assure la transparence, il empêche la coercition. De manière significative, Ouroboros a été le premier protocole blockchain à être développé avec ce type d’analyse de sécurité rigoureuse.

Comment fonctionne Ouroboros

Le document de recherche sur Ourorobos donne une explication complète de son fonctionnement. Pour résumer, Ouroboros divise la blockchain en créneaux et époques. À Cardano, chaque créneau dure 20 secondes et chaque époque représente environ cinq jours de créneaux.

Au cœur de la conception d’Ouroboros se trouve la reconnaissance que les attaques sont inévitables. En tant que tel, le protocole a une tolérance intégrée pour empêcher les attaquants de propager des versions alternatives de la blockchain et suppose qu’un adversaire peut envoyer des messages arbitraires à n’importe quel participant à tout moment. En fait, la sécurité du protocole est garantie tant que plus de 51% de la mise est contrôlée par des participants honnêtes (c’est-à-dire ceux qui suivent le protocole).

Un chef de créneau est élu pour chaque créneau, qui est chargé d’ajouter un bloc à la chaîne et de le transmettre au chef de créneau suivant. Pour se protéger contre les tentatives contradictoires de subvertir le protocole, chaque nouveau leader de créneau doit considérer les derniers blocs de la chaîne reçue comme transitoires : seule la chaîne qui précède le nombre prédéfini de blocs transitoires est considérée comme réglée. Ce nombre définit le délai de règlement. Entre autres choses, cela signifie qu’une partie prenante peut se déconnecter et être toujours synchronisée avec la blockchain, tant que ce n’est pas plus que le délai de règlement.

Au sein du protocole Ouroboros, chaque nœud du réseau stocke une copie du mempool de transaction – où les transactions sont ajoutées si elles sont cohérentes avec les transactions existantes – et la blockchain. La blockchain stockée localement est remplacée lorsque le nœud prend connaissance d’une chaîne alternative valide plus longue.

Ouroboros BFT

Ouroboros BFT (Byzantine Fault Tolerance) est un protocole simple utilisé par Cardano lors du redémarrage de Byron, qui était la transition de l’ancienne base de code Cardano vers la nouvelle. Ouroboros BFT a aidé à préparer le réseau de Cardano pour la libération de Shelley et, avec cela, sa décentralisation. Il s’agit de la version d’Ourorobos qui est implémentée dans la sidechain Cardano EVM.

Plutôt que d’exiger que les nœuds soient en ligne tout le temps, Ouroboros BFT suppose un réseau fédéré de serveurs - la blockchain - et une communication synchrone entre les serveurs, fournissant un consensus de grand livre d’une manière plus simple et plus déterministe.

Les avantages supplémentaires incluent la preuve instantanée du règlement, le règlement des transactions à la vitesse du réseau - ce qui signifie que le déterminant des transactions est la vitesse de votre connexion réseau à un nœud OBFT - et la confirmation instantanée en un seul aller-retour de communication. Chacun de ces résultats entraîne des améliorations significatives des performances.

À propos de l’explorateur de blocs

Un explorateur de blocs vous permet d’inspecter une blockchain pour voir ses blocs et ses transactions.

Ce document est basé principalement sur l’ explorateur Blockscout , mais les explorateurs de blockchain utilisent nécessairement une terminologie similaire et suivent un modèle similaire dans leur présentation des informations.

Lorsque vous utilisez un explorateur de blocs, il répertorie les champs et leur contenu. Ce document vous aidera à comprendre la signification des noms de champs et la signification de leur contenu.

Glossaire

Ce sont les noms de champ couramment utilisés dans les explorateurs de blocs sur la sidechain EVM de preuve de concept.

Conditions générales

Acteur

Toute entité qui peut faire bouger quelque chose sur une blockchain. Les acteurs peuvent inclure des utilisateurs, des portefeuilles, des adresses et des nœuds de réseau.

Adresse

Une adresse est un emplacement vers ou à partir duquel des transactions se produisent sur la blockchain. Il est associé à une clé publique.

Fonction de hachage

Une fonction de hachage cryptographique prend une chaîne de longueur variable et produit une chaîne de longueur fixe appelée valeur de hachage . Une valeur de hachage est facile à calculer, mais il n’est pas possible de dériver l’entrée étant donné uniquement la sortie, et il n’est pas possible de calculer deux entrées qui produiront la même valeur de hachage. Pour une définition canonique, voir cette publication du NIST.

Toute modification de l’entrée, aussi petite soit-elle, entraînera une sortie très différente. Chaque bloc contient le hachage du bloc précédent afin que n’importe qui puisse vérifier l’intégrité de la chaîne.

Page d’accueil

Temps de blocage moyen

La durée entre l’ajout d’un bloc à la blockchain et l’ajout du bloc suivant ; le temps qu’il faut pour ajouter un bloc à la chaîne. Cela dépend du créneau horaire de la chaîne.

Transactions totales

Une transaction est un événement sur la blockchain, tel qu’un transfert de devise d’une adresse à une autre. Un nombre variable de transactions peut tenir dans chaque bloc.

En comparant le total des transactions au total des blocs, vous pouvez en déduire le nombre moyen de transactions par bloc.

Blocs totaux

Un de plus que la hauteur de bloc actuelle de la chaîne, qui est le dernier numéro de bloc.

Adresses de portefeuille

Le nombre d’adresses de portefeuille utilisées dans la blockchain jusqu’à présent.

Une adresse de portefeuille est la source ou la destination d’un transfert. Dans le modèle de compte Ethereum, un portefeuille a exactement une adresse.

Blocs

Hauteur de bloc

Le numéro de ce bloc. C’est un de moins que le nombre de blocs valides ajoutés à la blockchain jusqu’à présent. (Le premier bloc est le bloc 0). Les blocs invalides ou ignorés ne sont pas comptés.

Horodatage

Heure à laquelle le bloc a été ajouté à la chaîne.

Transactions

Le nombre de transactions incluses dans le bloc.

Validateur

L’adresse de l’acteur qui a ajouté ce bloc à la chaîne.

Taille

La longueur du bloc en octets.

Hacher

La valeur de hachage de ce bloc. Voir la définition de “fonction de hachage” ci-dessus.

Hachage parent

La valeur de hachage du bloc précédent.

Gaz utilisé

Le gaz est payé aux validateurs pour les dédommager des ressources utilisées pour traiter une transaction. Le prix du gaz varie en fonction de l’offre et de la demande.

Limite de gaz

Le montant maximum de gaz que l’acteur qui a initié la transaction est prêt à payer.

Récompense du validateur

Le nombre de pièces attribuées au validateur de ce bloc. Les pièces sont nouvellement frappées; ils ne proviennent pas des frais de transaction.

Transactions

Transaction

L’explorateur de blocs affichera un transfert de devise comme une transaction.

La définition formelle est 'Une donnée, signée par un acteur externe. Il représente soit un message soit un nouvel objet autonome. Les transactions sont enregistrées dans chaque bloc de la blockchain. (Tiré du Livre jaune.)

Appel de contrat

Un appel de contrat est un cas particulier d’une transaction ; la destination est un contrat intelligent plutôt qu’un utilisateur final. Un contrat intelligent a été envoyé au réseau et enregistré sur la blockchain.

Appel

Notez que si un nœud utilise la méthode d’appel web3.js web3.eth.call, il ne s’affichera pas dans un explorateur de blocs car il s’agit d’une action locale ; le réseau n’en est pas informé et cela n’affectera pas la blockchain. Le JSON-RPC sous-jacent est eth_call.

Cette technique est utilisée dans le cadre d’un « essai à blanc » d’un contrat intelligent. Lorsqu’il fonctionne avec succès, le contrat intelligent peut être envoyé à la blockchain à l’aide de web3.eth.sendSignedTransaction.

Source : https://docs.cardano.org/cardano-sidechains/basics/introduction-sidechains/