Celestia : le premier réseau blockchain modulaire
Celestia Labs propose une innovation majeure pour les plateformes blockchain du Web3. En effet, par conception, Celestia se veut modulaire, séparant les deux couches maîtresses d’une blockchain : le mécanisme de consensus et la couche d’exécution.
Dans cet article, nous allons étudier cette curieuse architecture, basée sur le concept de disponibilité des données (data availability). Quels sont ses avantages ? Comment les blockchains existantes pourront-elles en tirer parti ?
Celestia, un projet mené par une équipe de choc
Équipe exécutive
L’équipe de développement de Celestia est menée par Mustafa Al-Bassam, docteur au prestigieux University College de Londres. L’UCL est l’une des toutes premières universités intégrant depuis 2015 un centre de recherches académique dédié aux technologies blockchain, le Center for Blockchain Technologies.
Mustafa Al-Bassam a notamment publié une thèse sur la sécurité des couches de base des blockchains. Dans ce papier, il propose différents concepts et implémentations, permettant de mettre à l’échelle les couches de base des réseaux blockchain? Pour autant, leurs propriétés essentielles ne sont pas sacrifiées. Nous parlons de décentralisation, de sécurité et de vérifiabilité publique. Ses travaux ont abouti à la création de Chainspace (acquis par Facebook), un système reposant sur le sharding (la fragmentation de la blockchain).
Au-delà de ses travaux sur le sharding, Mustafa Al-Bassam a également conçu LazyLedger – l’ancien nom de Celestia. Avec ce concept, la scalabilité de la blockchain repose sur une architecture bien particulière : la séparation des couches dédiées au consensus et à l’exécution des transactions.
Afin de donner vie à son système, Mustafa Al-Bassam s’est entouré d’une équipe de haut vol. Ismail Khoffi (CTO), ingénieur senior, a travaillé chez Tendermint et à l’Interchain Foundation. John Adler (CRO) n’est autre que le créateur des optimistic rollups, bien connus des aficionados d’Ethereum. Nick White (COO) a fait ses armes à l’Université de Stanford en ingénierie électrique; titulaire d’un Bachelor of Science et d’un Master of Science, il est le cofondateur d’Harmony.
Développement, marketing, produit et conseillers
Le quatuor orchestre la coordination de 9 experts en ingénierie logicielle et développeurs, spécialisés dans les systèmes distribués, la sécurité et les données. Ces derniers ont travaillé sur Ethereum ou Ethereum Classic, chez ProximaX, Oracle ou encore Google… Enfin, l’équipe intègre un chef de produit et un VP du marketing.
Une levée de fonds réussie
Début 2021, Celestia Labs a clôt une levée de fonds d’un million et demi de dollars en seed. Nous retrouvons parmi les participants Interchain Foundation, Binance Labs, Maven 11, KR1, Signature Ventures, Divergence Ventures, Dokia Capital, P2P Capital, Tokonomy, Cryptium Labs… Mais aussi des investisseurs privés tels Michael Ng, Simon Johnson, Michael Youssefmir et Ramsey Khoury.
Celestia Labs est également conseillé par 6 experts, qui ont cofondé ou travaillé avec des noms bien connus de l’industrie (Cosmos, IBC, Libra, Summa).
Maintenant que les présentations sont faites, vous devinez que Celestia n’est pas seulement une énième plateforme blockchain de plus dans l’écosystème, mais un nouveau paradigme pour le Web décentralisé.
Architecture générale de Celestia
Celestia (anciennement LazyLedger) présente une architecture inédite. Traditionnellement, le modèle de conception des blockchains couple mécanisme de consensus et exécution des transactions. L’une des approches visant à améliorer la scalabilité de ces dernières repose sur le sharding, c’est-à-dire la fragmentation des données composant la chaîne principale.
Avec Celestia, les deux couches – consensus et exécution – sont séparées. Le rôle du mécanisme de consensus est seulement de s’assurer que les données des blocs sont disponibles. Pour ce faire, il utilise des preuves de la disponibilité des données (data availability proofs). Les transactions sont alors exécutées hors-chaîne : les nœuds n’ont plus besoin de les traiter pour s’assurer de la validité des blocs.
Bien que l’approche adoptée par Celestia Labs diffère du sharding, elle repose sur le même outil mathématique : les preuves de disponibilité des données, basées sur les codes correcteurs.
Le lecteur assidu connaît déjà les codes correcteurs, puisqu’ils sont aussi utilisés sur Solana pour son mécanisme de propagation des blocs.
Les codes correcteurs (erasure codes)
En informatique, en télécommunication et en théorie de l’information, les codes correcteurs (erasure codes, error correction codes) sont utilisés pour contrôler et/ou reconstituer des données transitant via des canaux de communications parasités ou déficients. Ils sont utilisés dans de nombreux domaines. Au-delà de la télécommunication (radio, satellite, TCP, etc.), ils sont utiles pour le stockage de données (gravure de CD, mémoire vive).
La technique consiste à suréchantillonner les données. Il existe différents procédés. On utilise généralement des polynômes, dont les coefficients transitent à travers le canal de communication. Le message (les données) de longueur k devient un message plus long, de longueur n (n > k). Grâce aux n symboles, on peut reconstruire le message originel en cas de pertes de données. La fraction k/n est appelée taux d’encodage et le ratio k’/k (où k’ est le nombre de symboles requis pour retrouver k) l’efficacité.
Le système le plus connu est l’encodage de Reed-Solomon. Proposé dans les années 60 par Irving Reed et Gustave Solomon, il s’agit de construire un polynôme formel, dans un corps fini, à partir des données à suréchantillonner.
Celestia utilise les codes de Reed-Solomon afin de vérifier que les données de blocs (associées à la racine de son arbre de Merkle) sont disponibles. Les clients légers vont en requêter des fractions aléatoires, puis effectuer cette vérification. Dans notre cas, les codes correcteurs sont multidimensionnels :
Les codes correcteurs sont fondamentaux pour comprendre le fonctionnement de Celestia. Les avantages que cette conception confèrent ne sont pas des moindres, comme vous allez le voir.
Fonctionnement de Celestia
Les nœuds échantillonnent aléatoirement de petites portions des blocs de la chaîne. C’est assez semblable au partage de fichiers en pair-à-pair (BitTorrent) où les fichiers sont découpés entre les nœuds du réseau.
Une fois que la blockchain est entièrement échantillonnée, ont obtient les fameuses preuves de disponibilité desdites données. La sécurité du réseau dépend alors du nombre de clients qui le composent. Tous ces nœuds (qui ne sont donc pas dédiés au consensus) y participent. C’est une propriété unique : les nœuds ne produisant pas de blocs permettent à la fois de sécuriser le réseau et d’augmenter le débit de transactions.
Validation des blocs
Sur Celestia, un bloc est considéré valide seulement si les données correspondant à ce bloc sont accessibles. Les producteurs de blocs ne peuvent pas livrer les en-têtes de ces blocs sans les données associées. De ce fait, la vérification des blocs est donc réduite à celle de la disponibilité des données. Le coût est sous-linéaire, grâce aux preuves de disponibilité.
La différence avec la technique du sharding saute aux yeux. En effet, avec Celestia, nous nous focalisons sur la vérification des blocs, et non pas sur leur production.
Les clients légers de Celestia (data availability sampling light clients)
Ce logiciel client léger est le premier produit présenté par Celestia Labs (data availability light client). Il permettra à n’importe qui de déployer sa blockchain personnalisée en quelques minutes.
Contrairement aux blockchains “traditionnelles”, Celestia est conçue pour fournir des preuves de la disponibilité des données et du consensus, non pas l’exécution des transactions. Le logiciel client léger a donc pour rôle de vérifier qu’il y a consensus et disponibilité des données, pour chaque bloc. Ainsi, il n’effectue aucune vérification de la validité des transactions qu’il contient.
Quant aux nœuds complets, ils donnent l’alerte aux clients légers en cas de fraude, toujours grâce à des preuves. C’est une idée qui est vieille comme le whitepaper de Bitcoin, où Satoshi décrivait un tel système. Peu explorée, ce sont des chercheurs travaillant sur Tendermint qui ont proposé une première approche formelle du problème. Celestia Labs offre aujourd’hui sa première implémentation concrète.
Avantages
Outre la sécurité du réseau assurée par des nœuds légers, l’architecture de Celestia présente un avantage majeur : une grande scalabilité. Le compromis sur la sécurité dépend du nombre de clients légers. Il y a ainsi un nombre minimum de nœuds requis pour s’assurer que les données originales sont disponibles. Plus ce nombre est élevé, et plus la taille des blocs peut augmenter, tout en gardant le même niveau de décentralisation et de sécurité. En conséquence, le débit du réseau augmente.
Rollups et sidechains
Les sidechains qui seront construites sur Celestia utilisant des rollups devront compter sur ces clients légers. En effet, le niveau de sécurité des rollups dépend de la disponibilité des données :
- Les optimistic rollups nécessitent cette disponibilité pour détecter les fraudes ;
- Les ZK-rollups pour connaître l’état de la blockchain.
Par exemple, avec Optimint, les développeurs pourront construire des chaînes basées sur Cosmos. Elles utiliseront alors Celestia comme couche de consensus et de disponibilité des donnés.
Interopérabilité cross-chain
Ces clients légers sont également la clef de l’interopérabilité cross-chain. Il existe plusieurs standards, comme l’IBC (Inter-Blockchain Communication). Les chaînes utilisant Celestia bénéficieront d’une sécurité accrue et d’une meilleure interopérabilité.
Caractéristiques techniques
Implémentation de la librairie Namespaced Merkle Tree
Cette librairie est un arbre de Merkle binaire, arrangé par des espaces de noms. Chaque rollup construit via Celestia retrouvera les données requises de sa chaîne en ignorant les données des autres chaînes. Les nœuds de l’arbre sont identifiés par les nombres minimaux et maximaux de leurs enfants. Le système est semblable à celui de Tendermint, mais l’arbre de Merkle standard de Tendermint est remplacé par un NMT.
Encodage de Reed-Solomon spécifique
Comme expliqué plus haut, Celestia utilise un type particulier d’encodage de Reed-Solomon, le rsmt2d. Combiné aux NMT, cela rend statistiquement très difficile pour les producteurs de blocs de cacher des données.
Format de données spécifique pour les producteurs de blocs
Celestia Labs a codé un plugin IPLD spécifique, optimisant la façon dont les producteurs de blocs fournissent les données. Le réseau pair-à-pair des clients légers peut ainsi les échantillonner facilement.
La prochaine étape pour Celestia Labs consiste à implémenter les autres types de nœuds.
Les différents types de nœuds sur Celestia
Il y a plusieurs types de nœuds au sein du réseau Celestia. Ils ont donc chacun des rôles distincts, qui dépendent de la configuration de leurs paramètres (en-têtes des blocs, corps des blocs et transactions).
Nœuds complets
Ce sont bien sûr les plus sécurisés. Ils possèdent des en-têtes de blocs étendus, l’entièreté du corps des blocs, toutes les transactions, et produisent des preuves de fraude pour les transactions invalides.
Nœuds partiels
Ils produisent aussi des preuves de fraudes, et contribuent à valider les codes correcteurs pour des blocs aléatoires. On parle de nœuds partiels car, à la différence des nœuds complets, ils ne possèdent pas l’entièreté du corps des blocs.
Nœuds légers
Ce sont eux qui échantillonnent la disponibilité des données. Ils n’ont donc pas besoin de posséder les transactions, ni le corps des blocs (seulement des échantillons). Ils sont sécurisés sous réserve d’une minorité honnête.
Nœuds superlégers
Ces derniers n’effectuent pas d’échantillonnage, et sont sécurisés sous réserve d’une majorité honnête. Ils ne possèdent pas le corps des blocs et des en-têtes compactes.
Nœuds de stockage
Ils fournissent les mêmes garanties que les nœuds complets en termes de sécurité. Ils assurent le stockage complet des corps des blocs sous forme de codes d’erreurs.
Nœuds de stockage partiel
Ils fournissent le même degré de sécurité que les nœuds partiels et assurent le stockage partiel des corps des blocs sous forme de codes d’erreurs.
Les clusters : des ponts pour l’avenir multichaînes
Désormais, l’écosystème crypto est assurément multichaînes : la plupart des applications décentralisées majeures sont déployées sur différents réseaux. Ainsi, qu’il s’agisse des nouveaux layers 1 populaires comme Solana, ou des plateformes cross-chain telles Cosmos et Polkadot, les maîtres mots de 2022 sont l’interopérabilité et la composabilité.
Les dApps doivent donc être capables d’échanger des données sur différentes chaînes, et d’accéder à l’état de ces chaînes (en lecture comme en écriture) de la façon la plus efficace possible. On parle de cross-chain communication, et Celestia Labs a sa propre approche.
Le compromis : interopérabilité, composabilité et sécurité
La communication inter-chaînes doit être sécurisée, mais résulte toujours d’un équilibre, d’un compromis par rapport à cette propriété. En effet, l’utilisation d’une chaîne unique présentera toujours une sécurité maximale : les nœuds validateurs complets garantissent toujours qu’un bloc invalide sera rejeté.
Sécurité des communications inter-chaînes
Celestia Labs considère que deux éléments garantissent une communication cross-chain sécurisée :
- La vivacité (liveness) des relais : une transaction modifiant l’état de la chaîne A de telle sorte que l’état de la chaîne B en soit aussi affecté doit obligatoirement engendrer une transaction sur la chaîne B. Par exemple, c’est le cas des atomic swaps, ou du verrouillage de jetons sur A nécessaire pour créer leur équivalent sur B (wrapped tokens).
- La vérification de l’état des chaînes : lorsque l’utilisateur effectue une action sur A engendrant un changement d’état sur B (ou inversement), il faut s’assurer que l’information reçue sur l’une correspond à l’état valide de la chaîne, selon ses règles.
Il est donc impossible d’assurer la sécurité de la communication sans s’appuyer sur une tierce partie ou une méthode synchrone. Par exemple, un pont entre une chaîne-mère et une sidechain est une tierce partie (Ethereum – Polygon ou Ethereum – Solana). L’utilisateur fait confiance à ces bridges, car si la majorité des opérateurs est honnête, il est impossible pour eux de voler ses fonds.
Dans le cas des rollups, il n’y a pas besoin d’une majorité honnête. C’est possible grâce aux preuves à divulgation nulle de connaissance (ZKP) ou aux preuves de fraudes. Grâce à elles, la chaîne principale peut vérifier la validité des transactions de la chaîne secondaire.
On parle alors de minorité honnête quant à la vivacité du système. Au moins un relayeur doit envoyer les rollups sur la chaîne parente pour que l’utilisateur puisse retirer ses fonds. N’importe qui peut être relayeur ou agrégateur. Cependant, le réseau doit dans ce cas être synchrone : les messages envoyés par l’utilisateur doivent être reçus par le réseau en une fenêtre temporelle minime.
Les clusters de Celestia
Celestia Labs distingue deux catégories de communication inter-chaînes.
Premièrement, la communication à confiance minimisée (trust-minimized cross-chain communication) s’appuie soit sur la minorité honnête, soit sur la synchronie du réseau. De nombreux modèles sont hybrides. Deuxièmement, la communication de confiance, qui s’appuie sur la majorité honnête quant à la vivacité du réseau et à la vérification des états.
Une fois de plus, la disponibilité des données entre en jeu. En effet, pour vérifier l’état des chaînes, les ponts doivent s’assurer qu’une majorité des opérateurs sont honnêtes, dans le cas de la communication synchrone.
Un cluster est alors défini comme suit : un ensemble de chaînes communicant avec une confiance minimisée. Les preuves de fraude ou de validité peuvent remplir ce rôle, tout comme la validation directe des transactions. Ainsi, Ethereum et ses différents rollups forment un cluster. De même, Polygon et Solana sont des clusters.
La propriété principale d’un cluster est que toute chaîne du cluster peut valider la machine d’état d’une autre chaîne présente dans ce même cluster. Par exemple, touts les rollups d’Ethereum sont compatibles avec la machine virtuelle d’Ethereum (EVM). En revanche, Solana ne pourra pas partager un cluster avec Ethereum.
Les clusters peuvent communiquer entre eux (inter-cluster communication) en s’appuyant sur des techniques de validation d’état où la confiance n’est pas minimisée (c’est-à-dire où la majorité des 2/3 des validateurs est nécessaire pour signer les blocs). C’est le cas, par exemple, du pont Ethereum-Polygon.
On parle de souveraineté des clusters, car il est impossible pour une chaîne du cluster A d’amener une chaîne du cluster B dans le cercle du cluster A sans hard fork du cluster A ou B.
Deuxième compromis : composabilité et scalabilité
Instinctivement, on pourrait supprimer le compromis interopérabilité/sécurité en exécutant toutes les transactions sur la même chaîne. Mais comme vous le savez sans doute déjà, il y a des limites théoriques à la scalabilité des blockchains, même avec les meilleures techniques – le fameux trilemme de Vitalik Buterin. D’où l’idée d’avoir des chaînes multiples.
Taille limite des clusters
Il y a également des limites quant à la taille des clusters, même en utilisant les rollups. Tout d’abord, chaque chaîne doit pouvoir interpréter l’environnement d’exécution des autres au sein d’un même cluster. Ensuite, chaque cluster a une capacité quant à la disponibilité des données. Chaque chaîne doit pouvoir vérifier la disponibilité des données des autres au sein du cluster. Quelle que soit la méthode utilisée (preuves ou téléchargement direct des données) il y a une limite physique – les ressources nécessaires pour maintenir un nœud validateur.
Dans la pratique, les clusters sont à l’image de l’écosystème crypto actuel. Nous avons un ensemble de chaînes, communicant entre elles au sein d’un même cluster; puis les clusters communiquent entre eux via des ponts.
Ponts et communication de confiance
Ces ponts s’appuient sur une communication de confiance : les validateurs doivent prévenir le vol des fonds des utilisateurs. Pour maximiser la scalabilité du système, il faut maximiser la scalabilité de la communication intra-clusters. De telle sorte, la capacité limite des clusters doit être atteinte avant d’ouvrir de nouveaux clusters. Bien entendu, ce sont les rollups qui assurent la scalabilité intra-clusters.
Nous en revenons à la séparation entre couche d’exécution et couche de consensus. Celestia fournit une couche modulaire de consensus et de disponibilité des données pour toutes les blockchains. Celestia n’impose pas la méthode de communication cross-chain utilisée : c’est un outil permettant de créer des clusters.
Communication intra-cluster et confiance minimisée
La communication intra-cluster nécessite la vérification de l’état des différentes chaînes. Cette vérification doit être à confiance minimisée, cela nécessite donc la disponibilité des données de chaque chaîne du cluster. En effet :
- S’il s’agit d’optimistic rollups, les clients doivent vérifier qu’ils ont été publiés, afin que les nœuds complets aient accès aux données permettant de générer des preuves de fraude quant aux transitions d’état ;
- Pour les ZK-rollups, les clients doivent aussi vérifier qu’ils ont été publiés pour s’assurer que les nœuds connaîtront l’état de la chaîne ;
- Évidemment, dans le cas d’une validation directe des transactions par les chaînes principales, elles doivent pouvoir connaître leurs états respectifs.
Celestia fournit donc cette couche de disponibilité des données. Cela permet de créer des clusters de chaînes, et ces clusters sont situés sur le niveau supérieur de la pile technologique, la couche d’exécution. Les différentes chaînes des clusters s’appuient sur Celestia pour communiquer entre elles. En s’assurant que les blocs sont bien inclus dans la chaîne de disponibilité de Celestia, il est possible d’obtenir la vérification d’état à confiance minimisée pour toutes les chaînes du cluster. Les trois méthodes évoquées peuvent être utilisées.
Le Devnet de Celestia
Le Devnet de Celestia est actif depuis novembre 2021. Tout a commencé à Berlin, lorsque l’équipe a déployé 7 nœuds validateurs, 4 nœuds complet et les nœuds légers chargé d’échantillonner les preuves de disponibilité des données.
Composants
Le celestia-node est chargé d’assurer le consensus et le maintien de la blockchain. Ce composant permet aux nœuds complets et légers de créer de nouveaux blocs, de synchroniser ces blocs et leurs en-têtes, et bien sûr d’échantillonner les données.
La celestia-app maintien la machine d’état de la chaîne. Elle assure le staking et l’exécution des transactions.
Enfin, optimint est le logiciel cité plus haut, qui permet de déployer une zone Cosmos sur Celestia en tant que rollup. Le réseau pair-à-pair déployé collecte les transactions, puis les envoie sur Celestia, afin d’assurer le consensus et la disponibilité des données.
Le Devnet permet de mettre en pratique les fonctionnalités évoquées ci-dessus. La prochaine étape, le Testnet, devrait être franchie en 2022. Il sera public : pour participer en tant que validateur ou développeur, il faut s’inscrire sur la liste d’attente.
Parallèlement au développement du protocole, Celestia Labs travaille à fournir aux projets de rollups sur Ethereum une couche sécurisée et peu coûteuse pour leurs besoins en disponibilité des données. De même, l’équipe construit une couche de règlement pour ces mêmes rollups EVM-compatibles, qui pourront être déployés de façon native, directement sur Celestia.
En conclusion
Celestia est un projet extrêmement ambitieux qui ne s’arrêtera pas au déploiement du Mainnet. L’idée est de fournir le premier réseau blockchain entièrement modulaire. Chacun devrait pouvoir déployer sa propre blockchain aussi facilement qu’un smart contract. Celestia Labs collabore avec les équipes les plus talentueuses du Web 3.0 : StarkWare, Matter Labs, Offchain Labs, Fuel, Optimism, Axelar, Connext et Composable…
Les bâtisseurs du Web décentralisé n’ont pas fini de nous surprendre… Et de stimuler notre matière grise !
Ressources
Retrouvez l’interview de Mustafa Al-Bassam et Nick White, réalisée par Sami et sous-titrée en français sur notre chaîne YouTube :
Pour découvrir Celestia en profondeur, rien de mieux que de lire les livres blancs :
La thèse de Mustafa Al-Bassam sur la mise à l’échelle sécurisée des réseaux blockchain est également une lecture complexe mais passionnante.
Le blog de Celestia Labs (en anglais) fournit bien des informations et des explications utiles.
Retrouvez Celestia sur les réseaux sociaux :