Au fil des années, la théorie de la chaîne d’applications a été mise en œuvre de diverses manières. Le besoin de modularité a augmenté au fil du temps, à mesure que les développeurs de blockchain se rendent compte que leurs plates-formes peuvent être mises à l'échelle plus efficacement en externalisant une partie du travail impliqué dans l'exécution des dApps.
Initialement réservée uniquement aux chaînes souveraines, souvent construites à l'aide de l'Interchain Stack, l'évolution des chaînes d'applications inclut désormais des chaînes de consommateurs qui louent la sécurité du Cosmos Hub, ainsi que des rollups qui s'appuient sur des chaînes de couche 1 pour effectuer certains travaux de règlement et de pontage, comme avec brio. Ces changements entraînent différentes hypothèses et problèmes de sécurité qui doivent être résolus. Celestia vise à résoudre un problème spécial appelé disponibilité des données, mais avant d'expliquer comment ce problème est lié à votre projet, essayons de comprendre le dernier mot à la mode du Web3 : la modularité.
Le travail effectué par les chaînes à une seule couche 1, y compris les chaînes Ethereum et souveraines #Cosmos , peut être grossièrement divisé en 4 couches :
La couche d'exécution traite les transactions et est responsable de la mise à jour de l'état de la chaîne. Par exemple : mettez à jour le solde de votre portefeuille lorsqu'un ami vous envoie des jetons.
La couche pont de règlement est chargée de finaliser la transaction, ou plutôt de confirmer au-delà de tout doute raisonnable que la transaction est valide. Cela s'applique particulièrement au résumé, que nous aborderons plus tard. Récemment, la couche de règlement a été plus communément considérée comme une couche de transition, permettant aux Rollups de communiquer avec le réseau blockchain plus large, tandis que le règlement lui-même est devenu un sujet plus controversé. Sur les réseaux classiques comme Cosmos Application Chain, le règlement est gratuit car la couche consensus valide efficacement chaque transaction avant qu'elle n'atteigne la couche d'exécution.
La couche de consensus est l'endroit où plusieurs parties s'accordent sur le contenu d'un bloc et sur la manière dont leurs transactions doivent être ordonnées.
La couche de disponibilité des données est chargée de garantir que chacun a accès aux transactions correctes qui ont été soumises au réseau. Comme nous l'expliquerons plus tard, la couche de règlement doit accéder à ces transactions pour vérifier que la couche d'exécution est honnête.
Dans le contexte d'une chaîne basée sur le SDK Cosmos (qui possède son propre ensemble de validateurs et fonctionne comme une chaîne d'applications souveraine), la couche de consensus est essentiellement responsable de la disponibilité des données et du règlement final des transactions. Cependant, lancer une chaîne souveraine nécessite de disposer d'un ensemble de validateurs et d'un token de preuve de participation, à moins que vous ne choisissiez une solution de sécurité partagée comme Interchain Security. Outre les complexités juridiques et opérationnelles liées au lancement d’une chaîne avec un jeton, il convient également de prendre en compte des considérations d’évolutivité.
Mise à l'échelle efficace grâce à l'agrégation
À mesure que le Web se développe, le trilemme de l’évolutivité devient plus évident. À première vue, il peut sembler que la blockchain doit faire des sacrifices en termes de sécurité du réseau, de degré de décentralisation ou de nombre de transactions qu'elle peut traiter par seconde. Pour les chaînes dans leur ensemble, l’amélioration d’une chaîne se fait traditionnellement au détriment de l’autre. Cependant, à travers les travaux effectués sur les protocoles modulaires, nous pouvons constater que certaines composantes de ce trilemme sont spécifiques à chaque couche de la pile modulaire.
Par exemple : une couche d'exécution qui accepte les transactions et les traite en changements d'état nécessite un débit rapide. Qu'il soit décentralisé et sécurisé n'a sans doute pas d'importance tant qu'il existe suffisamment de couches de règlement décentralisées et sécurisées, de consensus et de disponibilité des données pour garantir et vérifier que les transactions correctes sont exécutées. Un certain degré de décentralisation au niveau de l'exécution contribue à la vivacité du réseau, mais n'est pas essentiel pour prévenir toute forme de mauvaise conduite. En d’autres termes, cela n’affecte aucune hypothèse de confiance concernant le réseau.
Avec une pile de blockchain modulaire, les développeurs peuvent externaliser la majeure partie du travail nécessaire au fonctionnement d'une blockchain. Les développeurs d'applications sont entièrement responsables de la couche d'exécution, ce qui augmente l'évolutivité et réduit considérablement le temps de développement. C’est essentiellement la raison pour laquelle les rollups sont si efficaces et si populaires à l’heure actuelle. Le rollup, souvent appelé couche 2, permet à un ou plusieurs serveurs d'exécuter des transactions hors chaîne sans attendre qu'un lent algorithme de consensus se mette d'accord sur le contenu d'un bloc. Cela peut sembler dangereux, mais ils pourraient le faire sans encourir de risques importants en fournissant des preuves de validité coûteuses en termes de calcul dans le cas de l'agrégation dite à connaissance nulle (ZK), ou en fournissant une fenêtre de temps dans laquelle les nœuds où les opérateurs peuvent soumettre des preuves d’échec comme preuve que quelqu’un a agi de manière inappropriée, comme c’est le cas avec l’agrégation optimiste. Mais dans ce cadre, un nouveau problème se pose : celui de la disponibilité des données.
Qu'est-ce qu'un problème de disponibilité des données ?
Lorsqu'un utilisateur soumet une transaction sur le rollup, le message est envoyé directement au séquenceur, qui n'est généralement qu'un ordinateur très rapide qui regroupe ces transactions via un processus hors chaîne. Après l'avoir compressé à une taille plus petite, le lot est soumis à une couche de règlement telle qu'Ethereum. En raison de la forte demande d'espace de bloc sur ces réseaux, il s'agit d'une solution beaucoup moins coûteuse que la publication de transactions individuelles directement sur la couche de règlement. Actuellement, la plupart des agrégations utilisent un seul séquenceur (c'est-à-dire une seule entité qui effectue le tri), bien que des séquenceurs partagés soient à l'étude. Ceci est généralement sûr car les utilisateurs peuvent garantir que l'exécution d'une transaction est valide grâce à une preuve de validité ou une preuve d'échec qui peut être vérifiée au niveau du règlement. Cependant, l'agrégation ne garantit pas que le séquenceur est honnête concernant les transactions soumises et qu'il envoie les mêmes données à tout le monde.
C’est la nature du problème de disponibilité des données. La couche de règlement, ou tout nœud complet observant le réseau, est chargé d'inspecter le travail effectué par l'agrégation, et les données de transaction sont nécessaires pour ce faire. Par défaut, l'agrégation ne peut pas prouver facilement et à moindre coût que le séquenceur a traité toutes les transactions entrantes dans un bloc, ou que toutes les transactions qui ont été ajoutées au bloc sont dans le domaine public. En conséquence, les séquenceurs peuvent censurer les données de transaction soumises par les utilisateurs ou, pire encore, empêcher leur vérification par la couche de règlement.
Bien que ce type de censure puisse techniquement également se produire sur une blockchain classique, cela est pratiquement impossible en raison du grand nombre de validateurs dans un réseau de preuve de participation et du fait qu'un seul d'entre eux doit être honnête. Mais plus important encore, la couche de règlement n’a pas besoin de données pour vérification car la transaction a déjà été réglée via le processus de consensus.

#Celestia Comment résoudre ce problème ?
#Celestia est une blockchain de couche 1 construite à l'aide du SDK Cosmos, fournissant la disponibilité des données en tant que service d'agrégation. Le plus souvent, le réseau Celestia reçoit toutes les transactions utilisateur entrantes du séquenceur, bien qu'il puisse également être le premier destinataire de ces transactions avant qu'elles n'entrent dans le rollup pour exécution, en fonction de la configuration du rollup. Utilisons un exemple pour l’expliquer du point de vue de la transaction. Nous supposerons un réseau fictif appelé Roll Protocol, construit comme un rollup optimiste basé sur le SDK Cosmos.
Disons que vous utilisez Keplr pour envoyer des jetons $ROLL à votre ami via Roll Protocol. Une fois soumise, la transaction d'envoi est d'abord transmise au séquenceur de Roll Protocol.
Le séquenceur est un ordinateur exécutant un processus hors chaîne du protocole Roll, qui examine désormais toutes les transactions et les teste par rapport à l'état actuel du protocole Roll pour voir si elles sont effectivement valides. Pour le message que vous envoyez, il vérifie s'il contient une adresse de destinataire valide, si vous disposez de suffisamment de tokens $ROLL à envoyer à votre ami, etc.
Les transactions valides sont ensuite collectées dans un bloc et exécutées par le séquenceur, ce qui signifie que des modifications sont apportées à son stockage. Les soldes de votre portefeuille et de ceux de votre ami seront mis à jour pour refléter les pièces échangées.
Ce bloc contenant les transactions est ensuite partagé avec Celestia par le séquenceur et placé sous l'espace de noms « Roll Protocol », qui n'est en réalité qu'une étiquette permettant de séparer facilement les données. Les validateurs du réseau Celestia se mettent ensuite d'accord sur le contenu du bloc, qui est finalisé sur le réseau et distribué à tous les nœuds.
Dans le même temps, toutes les transactions réussies faisant partie d'un bloc sont converties en lot par le séquenceur et soumises à la couche de règlement, qui n'est généralement qu'un contrat intelligent sur une chaîne de couche 1 comme Ethereum. La couche de règlement est la blockchain à laquelle une preuve d'échec est envoyée si quelqu'un découvre qu'une transaction particulière n'est pas valide (par exemple, vous n'avez pas réellement les fonds nécessaires pour envoyer des pièces à votre ami). Mais qui fait ce travail ?
D'autres nœuds complets exécutés par des dApps distincts (tels que les DEX) exécuteront également des transactions en même temps que l'exécution du séquenceur. Cela leur permet de rester informé et de vous fournir des mises à jour sur votre solde, par exemple. De plus, ils peuvent vérifier à l'avance si des transactions sont invalides. Si tel est le cas, une preuve d’échec est soumise à la couche de règlement.
Vous vous souviendrez peut-être que l’agrégation optimiste dispose d’une fenêtre de temps avant qu’une transaction ne soit réglée. Tant que vous faites confiance à l'entité qui exploite le nœud complet, demander à ces nœuds complets de vérifier la validité à l'avance peut aider les utilisateurs à considérer les transactions comme « finales » avant la fermeture de la fenêtre d'optimisme. Nous appelons ce système « confiance minimisée » car il vous suffit de vraiment avoir confiance que le réseau contient au moins un des nombreux nœuds honnêtes pour ignorer la fenêtre temporelle optimiste.
Afin de tester si le séquenceur se comporte mal, les nœuds complets, ainsi que la couche de règlement, devront accéder à certaines données publiées sur Celestia, car le séquenceur peut avoir exécuté des transactions non valides. Heureusement, le réseau Celestia a publié un bloc contenant toutes les transactions entrantes du Roll Protocol qui étaient auparavant incluses dans le lot, nous sommes donc sûrs de disposer des informations dont nous avons besoin pour prouver l'intégrité du donneur d'ordre en cas de besoin.
Il convient de noter que Celestia ne se soucie pas du contenu de chaque transaction. En fait, il ne peut même pas comprendre ces transactions car il n’existe pas d’environnement d’exécution sur Celestia utilisant le même langage. En séparant ces préoccupations grâce à cette pile modulaire, le donneur d'ordre peut se concentrer sur l'exécution rapide des transactions, la couche de règlement peut se concentrer sur la sécurité et fournir des capacités de transition, et la couche de consensus et de disponibilité des données peut se concentrer sur la décentralisation. Cela améliore considérablement l'évolutivité et l'optimisation en garantissant que chaque sous-composant responsable du fonctionnement du réseau est hautement spécialisé.
Bien que notre exemple utilise des cumuls basés sur le SDK Cosmos, les cumuls compatibles EVM ne sont pas exclus. Celestia fonctionne également comme une couche de disponibilité des données pour l'écosystème EVM et est sans doute beaucoup moins cher que des alternatives telles que EIP-4844 (également connu sous le nom de Danksharding) sur Ethereum.
Comparaison de l'agrégation et des chaînes souveraines
Il y a de nombreux avantages à créer des Rollups et à utiliser le réseau Celestia. Si vous développez déjà une interchaîne, vous pouvez continuer à utiliser les outils et logiciels que vous connaissez tout en augmentant le débit du protocole, en éliminant le besoin de validateurs sur le réseau et potentiellement même en le lançant sans jeton si nécessaire. Examinons quelques-unes des différences entre la création de cumuls et de chaînes d'applications souveraines :
Évolutivité et efficacité : les rollups utilisant Celestia offrent généralement une évolutivité et une efficacité supérieures par rapport aux chaînes souveraines du SDK Cosmos. En effet, les rollups déplacent la majorité du traitement des transactions vers la couche 2, ce qui permet de traiter plus rapidement un plus grand nombre de transactions, alors que les chaînes souveraines sont goulot d'étranglement par l'algorithme de consensus. Si votre application nécessite un grand nombre de transactions, un rollup peut être plus adapté qu'une chaîne souveraine. Dans ce cas, votre application devra dépenser des jetons sur la couche de règlement, ce qui peut être coûteux selon la chaîne que vous choisissez, même si Celestia réduit la quantité de données à publier.
Vivacité et décentralisation : les rollups s'exécutent généralement à l'aide d'un seul séquenceur. Des recherches sont en cours pour construire des séquenceurs partagés efficaces, mais ces travaux sont encore en avance et pourraient réduire l'efficacité de la mise en commun. Actuellement, la décentralisation au niveau de l’exécution n’existe pas réellement. Par conséquent, si le séquenceur se déconnecte, le risque est plus grand que la redondance et la vivacité du rollup soient affectées. Des mécanismes redondants peuvent être conçus, mais les développeurs de rollups héritent de la complexité de l'infrastructure généralement partagée par les validateurs sur une blockchain souveraine.
Sécurité : Rollups utilise la sécurité de la couche de règlement sous-jacente, tandis que la chaîne souveraine doit assurer la sécurité de son propre réseau. Si vous choisissez d'utiliser une chaîne de SDK Cosmos souveraine, vous devez vous assurer que vous disposez d'un ensemble large et diversifié de validateurs pour sécuriser votre réseau, ainsi que d'une capitalisation boursière suffisamment importante (au cas où vous utiliseriez des preuves) pour miser sur votre réseau. jetons. Les rollups vous permettent d'hériter de la sécurité de la couche de règlement, ce qui peut être utile s'il est difficile de mettre en œuvre vous-même certaines des exigences de votre chaîne d'applications.
Complexité : Construire un système Rollup peut être plus complexe que créer une chaîne souveraine à l'aide du SDK Cosmos. Cela est dû à la nécessité de gérer les interactions entre le rollup, Celestia et la couche de règlement. Si votre équipe n'a pas d'expérience en agrégation ou ne souhaite pas faire face à une complexité supplémentaire, une chaîne souveraine peut être un meilleur choix. Cependant, l'utilisation du framework Rollkit rend le processus de développement beaucoup plus facile, vous permettant de créer des rollups avec une relative facilité.
Interopérabilité : les chaînes Cosmos SDK bénéficient du protocole Inter-Blockchain Communication (IBC), qui permet à différentes chaînes d'interagir. Bien que les rollups puissent interagir avec d'autres chaînes, les détails dépendront de l'implémentation spécifique et peuvent être plus complexes. Dans la plupart des cas, l’agrégation utilise une couche de règlement comme plate-forme de transition.