C’est peut-être un concept inconnu pour vous. Cependant, la disponibilité des données (Data Availability, DA) est un aspect fondamental en blockchain.
Elle garantit l'accès à toutes les informations nécessaires. Ces informations permettent ensuite la vérification et la validation des transactions par tous les participants du réseau.
Qu’est-ce que c’est ? Comment ça fonctionne ? Vous découvrirez tout au long de cet article.
Sommaire :
- Data Availability : qu’est-ce que c’est ?
- Importance de la Data Availability dans les réseaux blockchain
- Conséquences d'un manque de disponibilité des données
- Défis de la disponibilité des données
- Les différentes solutions de Disponibilité des Données (DA)
- L’importance de la Data Availability pour les Rollups
- Celestia : l’exemple parfait du Data Availability Sampling (DAS)
- La disponibilité des données assure l'accessibilité des transactions et blocs de la blockchain. Tous les nœuds du réseau peuvent les vérifier.
- La DA rencontre plusieurs défis. Parmi eux, les problèmes d'interopérabilité entre différents réseaux blockchain, le compromis entre évolutivité et sécurité, et les risques de rétention des données.
- Plusieurs solutions existent pour améliorer la DA. On trouve les Couches de Disponibilité des Données (DAL), l'Échantillonnage de la Disponibilité des Données (DAS), et les Comités de Disponibilité des Données (DAC).
Data Availability : qu’est-ce que c’est ?
La disponibilité des données (DA) fait référence à la capacité d'accès et de vérification des données stockées sur la blockchain.
Plus précisément, il s'agit de garantir l'accès à toutes les informations. Ces informations comprennent les transactions, les blocs, et l'état du registre, pour tous les participants du réseau.
Importance de la Data Availability dans les réseaux blockchain
La disponibilité des données est cruciale pour plusieurs raisons dans les réseaux blockchain :
Pour qu'un nouveau bloc soit validé et ajouté à la blockchain, il doit être accessible et vérifiable par tous les nœuds du réseau. Si les données ne sont pas disponibles, la validité des transactions ne peut être confirmée. Cela peut entraîner des transactions frauduleuses ou invalides.
La sécurité de la blockchain repose sur la capacité des nœuds à vérifier indépendamment chaque transaction et chaque bloc. Sans disponibilité des données, les nœuds ne peuvent pas effectuer ces vérifications, permettant ainsi à des acteurs malveillants de dissimuler des transactions frauduleuses.
Pour que les blockchains gèrent un volume croissant de transactions, l'accès aux données est essentiel. Sans cela, des solutions d'évolutivité comme le sharding ou les rollups ne peuvent pas fonctionner efficacement.
La décentralisation, un principe fondamental des blockchains, dépend de la disponibilité des données. Elle permet à tous les participants de vérifier les transactions et les blocs sans dépendre d'une autorité centrale. Cela renforce la résilience du réseau.
Conséquences d'un manque de disponibilité des données
Un manque de disponibilité des données peut entraîner plusieurs problèmes :
- Fraude et Transactions invalides : Si un bloc ne dispose pas de toutes ses données, des transactions frauduleuses peuvent passer inaperçues. Les nœuds ne peuvent alors pas vérifier l'intégralité des transactions.
- Brèche de Sécurité : La sécurité de la blockchain est mise en péril, car les nœuds ne peuvent pas garantir la validité des blocs et des transactions. Cela peut permettre à des acteurs malveillants de compromettre le réseau en incluant des transactions invalides.
- Problèmes de Consensus : La disponibilité des données est très importante pour le consensus. Sans accès à toutes les données nécessaires, les nœuds ne peuvent pas vérifier si un bloc respecte les règles de consensus. Cela peut entraîner des forks ou des divisions dans la blockchain.
Défis de la disponibilité des données
Problèmes d'interopérabilité
L'interopérabilité se réfère à la capacité des différents systèmes blockchain à communiquer et à travailler ensemble de manière fluide. Cela pose des défis significatifs, car chaque réseau peut adopter une approche différente pour la DA.
Par exemple, certains réseaux utilisent des couches de disponibilité des données (DAL). D'autres préfèrent l'échantillonnage de la disponibilité des données (DAS) ou des comités de disponibilité des données (DAC). Ces méthodes sont conçues pour répondre aux besoins spécifiques de chaque réseau. Cependant, elles peuvent ne pas être compatibles entre elles.
Lorsque des blockchains avec des approches différentes tentent de collaborer, elles peuvent rencontrer des difficultés pour partager et vérifier les données.
Compromis entre évolutivité et sécurité
La blockchain fait face à un trilemme bien connu. Il est difficile de maximiser simultanément trois attributs : sécurité, décentralisation, et évolutivité (scalabilité).
Pour améliorer la DA, une blockchain peut augmenter la taille des blocs ou la fréquence des transactions. Cela augmente la charge sur les nœuds du réseau, surtout sur les nœuds légers. Ils ont des ressources limitées pour télécharger et vérifier toutes les données. Cette situation peut compromettre la sécurité, car il devient plus facile pour des acteurs malveillants de cacher des transactions frauduleuses.
Les solutions d'évolutivité, comme le sharding ou les rollups, reposent souvent sur une plus grande centralisation des données. Par exemple, les rollups regroupent plusieurs transactions off-chain avant de les publier sur la blockchain principale. Cela réduit la charge sur cette dernière.
Toutefois, cette approche peut centraliser la gestion des données, ce qui va à l'encontre du principe de décentralisation des blockchains.
Risque de rétention des données
La rétention des données par des participants malveillants ou par erreur peut gravement affecter la transparence et la vérification dans un réseau blockchain.
Lorsque des données ne sont pas entièrement disponibles, il devient difficile pour les nœuds de vérifier l'exactitude des transactions et des blocs. Par exemple, si un producteur de blocs ne publie pas toutes les données d'un bloc, les nœuds ne peuvent pas vérifier l'intégrité de ce bloc. Cela ouvre donc la porte à des transactions frauduleuses.
Supposons qu'un acteur malveillant contrôle un shard dans un système de sharding et retient certaines données critiques. Les nœuds des autres shards ne peuvent pas vérifier les transactions dans ce shard. Cela compromet l'intégralité du réseau. De même, dans les rollups, si les données des transactions agrégées ne sont pas publiées sur la blockchain principale, il devient impossible de vérifier la validité de ces transactions.
Les différentes solutions de Disponibilité des Données (DA)
Couches de Disponibilité des Données (DAL)
Les Couches de Disponibilité des Données (DAL) sont des solutions de stockage spécialisées qui visent à assurer l'accessibilité des données sur la blockchain.
Elles séparent la gestion de la disponibilité des données des autres opérations blockchain, comme l‘exécution des transactions.
Les DAL utilisent plusieurs techniques pour améliorer l'accessibilité des données, notamment :
- Codage d'effacement (Erasure Coding) : Cette technique divise les données en plusieurs fragments et ajoute une redondance. Cela permet de reconstruire l'ensemble des données même si certaines parties sont perdues ou inaccessibles.
- Fragmentation des données : Les données sont divisées en morceaux plus petits. Cela facilite leur stockage et leur traitement indépendamment.
Échantillonnage de la Disponibilité des Données (DAS)
L’Échantillonnage de la Disponibilité des Données (DAS) est une technique qui permet de vérifier la disponibilité des données sans avoir à télécharger l'intégralité de celles-ci.
Cette méthode repose sur la sélection aléatoire de petits morceaux de données pour vérifier leur accessibilité. Autrement dit : au lieu de vérifier chaque fragment de données individuellement, les nœuds ne vérifient qu'un échantillon aléatoire de fragments.
Voici comment fonctionne le modèle de DAS :
- Sélection aléatoire : Les données de la blockchain sont divisées en fragments. Les nœuds sélectionnent aléatoirement quelques-uns de ces fragments pour les vérifier.
- Vérification probabiliste : Si les fragments échantillonnés sont accessibles, il est probable que le reste des données le soit également. Cela permet de vérifier la disponibilité des données de manière efficace sans charger excessivement les nœuds.
Vous l’aurez compris, le modèle DAS permet d’assurer une haute disponibilité et une vérification fiable des données tout en minimisant la charge de traitement sur chaque nœud.
Comités de Disponibilité des Données (DAC)
Les Comités de Disponibilité des Données (DAC) sont des groupes de nœuds de confiance. En fait, ils sont responsables de garantir la disponibilité des données dans un réseau blockchain. Ces comités vérifient que toutes les données, y compris les transactions et les changements d'état, sont correctement stockées et accessibles.
Les membres des DAC sont souvent sélectionnés via un processus de vote décentralisé. Cela évite les points de défaillance uniques et les risques de centralisation. Les DAC sont d'ailleurs très utiles dans les solutions de mise à l'échelle comme les rollups, où ils aident à gérer les données liées aux calculs effectués hors de la blockchain principale.
Ils assurent que les données sont disponibles pour tous les participants, renforçant ainsi la sécurité et l'efficacité du réseau.
L’importance de la Data Availability pour les Rollups
Au cas où vous ne le saviez pas, les rollups sont une solution de mise à l'échelle (scalabilité) pour les blockchains. Ils permettent de traiter un grand nombre de transactions. Comment ? Et bien en déplaçant une partie du traitement hors de la chaîne principale (off-chain) avant de regrouper et de publier ces transactions sur la chaîne principale (on-chain).
Maintenant, la disponibilité des données (Data Availability, DA) est essentielle au bon fonctionnement des rollups. Cela vaut tant pour les “optimistic rollup” que pour les “Zk Rollup”.
Dans le premier cas, toutes les transactions sont, par défaut, considérées comme valides. Sauf si une preuve de fraude est soulevée.
Pour que le mécanisme de preuve de fraude fonctionne, toutes les données de transaction doivent être disponibles. Si un acteur malveillant cache certaines données, il devient impossible de prouver qu'une fraude a eu lieu. La disponibilité des données garantit ainsi que les transactions peuvent être vérifiées et que les preuves de fraude peuvent être présentées.
Dans le second cas, des preuves cryptographiques (preuves à divulgation nulle de connaissance) sont utilisées pour prouver que les transactions sont valides sans divulguer les données sous-jacentes.
Bien que les preuves cryptographiques garantissent la validité des transactions, les utilisateurs doivent toujours avoir accès aux données de base pour vérifier les états et les soldes de leurs comptes. Si ces données ne sont pas disponibles, les utilisateurs ne peuvent pas interagir de manière efficace avec la blockchain.
Celestia : l’exemple parfait du Data Availability Sampling (DAS)
Celestia est un exemple de blockchain (modulaire) qui se concentre spécifiquement sur la disponibilité des données.
Contrairement aux blockchains traditionnelles, Celestia décompose les fonctions de la blockchain pour se concentrer exclusivement sur la disponibilité des données. Cette approche modulaire permet une meilleure scalabilité et une plus grande flexibilité.
Celestia repose sur un modèle de “Data Availability Sampling” (échantillonnage de la disponibilité des données). Plutôt que de vérifier toutes les données de manière exhaustive, Celestia utilise l'échantillonnage aléatoire pour vérifier la disponibilité des données. Les nœuds sélectionnent aléatoirement des fragments de données et les vérifient. Si les fragments échantillonnés sont disponibles, il est probable que les autres fragments le soient aussi.
De plus, Celestia utilise le “codage d'effacement” pour diviser les données en fragments redondants. Cela permet la reconstruction des données même en cas de perte partielle.
Enfin, les données sont fragmentées et distribuées à travers le réseau. Cela permet à Celestia de garantir que les informations restent disponibles et accessibles même si certaines parties du réseau sont défaillantes.