En tant que registre distribué, la blockchain doit stocker des données historiques sur tous les nœuds afin de garantir la sécurité et une décentralisation suffisante du stockage des données. Étant donné que l'exactitude de chaque changement d'état est liée à l'état précédent (source de la transaction), pour garantir l'exactitude des transactions, une blockchain devrait en principe stocker tous les enregistrements historiques depuis la première transaction jusqu'à la transaction actuelle. Si l'on prend l'exemple d'Ethereum, même si la taille moyenne des blocs est estimée à 20 kb, la taille totale actuelle des blocs Ethereum atteint 370 GB. Outre le bloc lui-même, un nœud complet doit également enregistrer le statut et les reçus de transaction. En comptant cette partie, la capacité de stockage totale d'un seul nœud a dépassé 1 TB, ce qui concentre l'exploitation du nœud sur quelques personnes.
La dernière hauteur de bloc d'Ethereum, source d'image : Etherscan
Par rapport aux structures de stockage de type base de données ou liste chaînée, la non-comparabilité de la blockchain provient de la capacité à vérifier les données nouvellement générées à l'aide de données historiques. Par conséquent, la sécurité des données historiques est la première question à prendre en compte dans le stockage de la couche DA. Lorsque l'on évalue la sécurité des données des systèmes de blockchain, on l'analyse souvent à partir de la quantité de redondance des données et de la méthode de vérification de la disponibilité des données.
En partant du principe qu'il faut assurer une sécurité de base, le prochain objectif essentiel que la couche DA doit atteindre est de réduire les coûts et d'accroître l'efficacité. La première consiste à réduire les coûts de stockage, indépendamment des différences de performance du matériel, c'est-à-dire à réduire l'utilisation de la mémoire causée par le stockage de données de taille unitaire. À ce stade, les principaux moyens de réduire les coûts de stockage dans la blockchain sont d'adopter la technologie du sharding et d'utiliser le stockage basé sur les récompenses pour s'assurer que les données sont effectivement stockées et réduire le nombre de sauvegardes de données. Toutefois, il n'est pas difficile de constater, à partir des méthodes d'amélioration susmentionnées, qu'il existe une relation de jeu entre le coût du stockage et la sécurité des données. La réduction de l'occupation de l'espace de stockage est souvent synonyme d'une diminution de la sécurité. Par conséquent, une excellente couche DA doit parvenir à un équilibre entre le coût du stockage et la sécurité des données. En outre, si la couche DA est une chaîne publique distincte, elle doit réduire le coût en minimisant le processus intermédiaire d'échange de données. Lors de chaque processus de transfert, les données d'index doivent être conservées pour les appels de requête ultérieurs. Par conséquent, plus le processus d'appel est long, plus il reste de données d'index et plus le coût de stockage augmente. Enfin, le coût du stockage des données est directement lié à la durabilité des données. D'une manière générale, plus le coût de stockage des données est élevé, plus il est difficile pour la chaîne publique de stocker les données de manière persistante.
Après la réduction des coûts, l'étape suivante consiste à accroître l'efficacité, c'est-à-dire la capacité à appeler rapidement les données de la couche DA lorsqu'elles doivent être utilisées. Ce processus se déroule en deux étapes. La première consiste à rechercher les nœuds qui stockent des données. Ce processus est principalement destiné aux chaînes publiques qui n'ont pas atteint la cohérence des données sur l'ensemble du réseau. Si la chaîne publique assure la synchronisation des données pour les nœuds de l'ensemble du réseau, ce point peut être ignoré. La consommation de temps d'un processus. Deuxièmement, dans les systèmes de blockchain grand public actuels, notamment Bitcoin, Ethereum et Filecoin, la méthode de stockage des nœuds est la base de données Leveldb. Dans Leveldb, les données sont stockées de trois manières. Tout d'abord, les données écrites immédiatement seront stockées dans des fichiers de type Memtable. Lorsque la mémoire tampon est pleine, le type de fichier passe de la mémoire tampon à la mémoire tampon immuable. Les deux types de fichiers sont stockés en mémoire, mais les fichiers Memtable Immutable ne peuvent plus être modifiés, seules des données peuvent y être lues. Le stockage à chaud utilisé dans le réseau IPFS stocke les données dans cette partie. Lorsqu'il est appelé, il peut être rapidement lu dans la mémoire. Cependant, la mémoire mobile d'un nœud ordinaire est souvent de niveau GB, et il est facile d'écrire lentement. Lorsqu'un nœud tombe en panne ou qu'une autre situation anormale se produit, les données contenues dans la mémoire sont définitivement perdues. Si vous souhaitez que les données soient stockées de manière persistante, vous devez les stocker sous la forme d'un fichier SST sur un disque dur à état solide (SSD). Cependant, lors de la lecture des données, vous devez d'abord lire les données dans la mémoire, ce qui réduit considérablement la vitesse d'indexation des données. Enfin, pour les systèmes qui utilisent un stockage partagé, la restauration des données nécessite d'envoyer des demandes de données à plusieurs nœuds et de les restaurer. Ce processus réduit également la vitesse de lecture des données.
Méthode de stockage de données Leveldb, source d'images : Leveldb-handbook
Avec le développement de DeFi et les divers problèmes rencontrés par CEX, les besoins des utilisateurs en matière de transactions entre chaînes d'actifs décentralisés augmentent également. Quel que soit le mécanisme inter-chaînes de verrouillage de hachage, de notaire public ou de chaîne de relais, la détermination simultanée des données historiques sur les deux chaînes ne peut être évitée. La clé de ce problème réside dans la séparation des données sur les deux chaînes, et la communication directe ne peut pas être réalisée dans des systèmes décentralisés différents. Une solution est donc proposée à ce stade en modifiant la méthode de stockage de la couche DA, qui non seulement stocke les données historiques de plusieurs chaînes publiques sur la même chaîne publique de confiance, mais n'a besoin d'appeler les données que sur cette chaîne publique lors de la vérification. Peut. Pour ce faire, la couche DA doit pouvoir établir des méthodes de communication sécurisées avec différents types de chaînes publiques, ce qui signifie que la couche DA possède une bonne polyvalence.
Méthode de stockage des données après Sharding, source de l'image : Kernel Ventures
La technologie DAS est basée sur l'optimisation des méthodes de stockage Sharding. Au cours du processus de mise en commun, en raison du simple stockage aléatoire des nœuds, un certain bloc peut être perdu. Deuxièmement, pour les données fragmentées, il est également très important de confirmer l'authenticité et l'intégrité des données au cours du processus de restauration. Dans le DAS, ces deux problèmes sont résolus par le code Eraser et l'engagement polynomial KZG.
La validation des données permet de s'assurer que les données appelées par un nœud sont exactes et complètes. Afin de minimiser la quantité de données et les coûts de calcul nécessaires au processus de validation, la couche DA utilise désormais une structure arborescente comme méthode de validation principale. La forme la plus simple consiste à utiliser l'arbre de Merkle pour la vérification, qui utilise la forme d'enregistrements d'arbres binaires complets ; il suffit de conserver une racine de Merkle et de vérifier la valeur de hachage du sous-arbre de l'autre côté du chemin du nœud ; la complexité temporelle de la vérification est de niveau O(logN) (le logN est par défaut log2(N)). Bien que le processus de validation ait été grandement simplifié, la quantité de données pour le processus de validation en général continue d'augmenter avec l'accroissement des données. Pour résoudre le problème de l'augmentation du volume de validation, une autre méthode de validation, l'arbre de Verkle, est proposée à ce stade, dans laquelle chaque nœud de l'arbre de Verkle stocke non seulement la valeur mais joint également un engagement vectoriel, qui peut rapidement valider l'authenticité des données en utilisant la valeur du nœud d'origine et la preuve d'engagement, sans qu'il soit nécessaire d'appeler les valeurs d'autres nœuds frères, ce qui rend le calcul de chaque validation plus facile et plus rapide. Le nombre de calculs pour chaque vérification n'est donc lié qu'à la profondeur de l'arbre de Verkle, qui est une constante fixe, ce qui accélère considérablement la vitesse de vérification. Toutefois, le calcul de l'engagement vectoriel nécessite la participation de tous les nœuds frères de la même couche, ce qui augmente considérablement le coût de l'écriture et de la modification des données. Cependant, pour des données telles que les données historiques, qui sont stockées de manière permanente et ne peuvent pas être modifiées, et qui ne peuvent être que lues mais pas écrites, l'arbre de Verkle est tout à fait adapté. En outre, l'arbre de Merkle et l'arbre de Verkle ont eux-mêmes une forme de variantes K-ary, la mise en œuvre spécifique du mécanisme est similaire, il suffit de changer le nombre de sous-arbres sous chaque nœud, la comparaison des performances spécifiques peut être vue dans le tableau suivant.
Comparaison des performances temporelles des méthodes de vérification des données, source de l'image : Verkle Trees
L'expansion continue de l'écosystème de la blockchain a entraîné une augmentation constante du nombre de chaînes publiques. En raison des avantages et du caractère irremplaçable de chaque chaîne publique dans leurs domaines respectifs, il est presque impossible pour les chaînes publiques de niveau 1 de s'unifier dans un court laps de temps. Toutefois, avec le développement du DeFi et les divers problèmes rencontrés par le CEX, les utilisateurs ont de plus en plus besoin d'actifs d'échange décentralisés entre les chaînes. C'est pourquoi le stockage de données multi-chaînes de la couche DA, qui peut éliminer les problèmes de sécurité dans les interactions de données entre les chaînes, fait l'objet d'une attention de plus en plus grande. Cependant, pour accepter des données historiques provenant de différentes chaînes publiques, la couche DA doit fournir un protocole décentralisé pour le stockage et la vérification normalisés des flux de données. Par exemple, kvye, un logiciel intermédiaire de stockage basé sur Arweave, récupère activement les données de la chaîne et toutes les données de la chaîne sont stockées dans Arweave sous une forme standard afin de minimiser les différences dans le processus de transmission des données. Relativement parlant, la couche 2, qui fournit spécifiquement le stockage des données de la couche DA pour une certaine chaîne publique, interagit avec les données par l'intermédiaire de nœuds partagés internes. Bien qu'il réduise le coût de l'interaction et améliore la sécurité, il présente des limites relativement importantes et ne peut fournir des données qu'à des chaînes publiques spécifiques qui fournissent des services.
Ce type de solution de stockage n'a pas encore de nom défini, et le représentant le plus connu est DankSharding sur Ethereum, c'est pourquoi cet article utilise la classe DankSharding pour se référer à ce type de solution. Ce type de solution utilise principalement les deux technologies de stockage DA mentionnées ci-dessus, Sharding et DAS. Tout d'abord, les données sont divisées en parts appropriées par le biais du partage, puis chaque nœud extrait un bloc de données sous forme de DAS pour le stockage. S'il y a suffisamment de nœuds dans l'ensemble du réseau, nous pouvons choisir un plus grand nombre de fragments N, de sorte que la pression de stockage de chaque nœud ne représente que 1/N de l'original, ce qui permet de multiplier par N l'espace de stockage global. En même temps, pour éviter la situation extrême où un certain bloc n'est stocké dans aucun bloc, DankSharding encode les données à l'aide d'un code d'effacement, et seule la moitié des données peut être complètement restaurée. La dernière étape est le processus de vérification des données, qui utilise la structure de l'arbre de Verkle et l'engagement polynomial pour réaliser une vérification rapide.
Pour l'AD de la chaîne principale, l'une des méthodes de traitement des données les plus simples consiste à stocker les données historiques à court terme. Par essence, la blockchain joue le rôle d'un grand livre public, ce qui permet à l'ensemble du réseau d'être témoin des modifications apportées au contenu du grand livre, sans qu'il soit nécessaire de le stocker en permanence. Si l'on prend l'exemple de Solana, bien que ses données historiques soient synchronisées avec Arweave, le nœud principal du réseau ne conserve que les données de transaction des deux derniers jours. Sur la chaîne publique basée sur les enregistrements de compte, les données historiques à chaque instant conservent le statut final du compte sur la blockchain, ce qui est suffisant pour fournir une base de vérification pour les changements à l'instant suivant. Les projets qui ont besoin de données avant cette période peuvent les stocker eux-mêmes sur d'autres chaînes publiques décentralisées ou par l'intermédiaire d'un tiers de confiance. En d'autres termes, ceux qui ont besoin de données supplémentaires doivent payer pour le stockage des données historiques.
Contrat EthStorage, source de l'image : Kernel Ventures
Méthode de lecture des données de Celestia, source de l'image : Celestia Core
En ce qui concerne les principes techniques de l'AD de la chaîne principale, de nombreuses technologies similaires au Sharding sont empruntées à la chaîne publique de stockage. Parmi les AN tierces, certaines utilisent directement la chaîne publique de stockage pour effectuer certaines tâches de stockage. Par exemple, les données de transaction spécifiques à Celestia sont placées sur le réseau LL-IPFS. Dans la solution DA de tiers, outre la construction d'une chaîne publique séparée pour résoudre le problème de stockage de la couche 1, un moyen plus direct consiste à connecter directement la chaîne publique de stockage à la couche 1 pour stocker les énormes données historiques sur la couche 1. Pour les blockchains à haute performance, le volume de données historiques est encore plus important. À pleine vitesse, le volume de données de la chaîne publique à haute performance Solana est proche de 4 PG, ce qui dépasse complètement la capacité de stockage des nœuds ordinaires. La solution choisie par Solana consiste à stocker les données historiques sur le réseau de stockage décentralisé Arweave et à ne conserver que deux jours de données sur les nœuds principaux du réseau à des fins de vérification. Pour garantir la sécurité du processus stocké, Solana et Arweave Chain ont spécialement conçu un protocole de pont de stockage, Solar Bridge. Les données vérifiées par le nœud Solana seront synchronisées avec Arweave et la balise correspondante sera renvoyée. C'est uniquement grâce à cette étiquette que le nœud Solana peut consulter les données historiques de la blockchain Solana à tout moment. Sur Arweave, il n'est pas nécessaire que tous les nœuds du réseau maintiennent la cohérence des données et l'utilisent comme seuil pour participer aux opérations du réseau. Au lieu de cela, on adopte le stockage des récompenses. Tout d'abord, Arweave n'utilise pas une structure de chaîne traditionnelle pour construire des blocs, mais s'apparente davantage à une structure de graphe. Dans Arweave, un nouveau bloc pointera non seulement vers le bloc précédent, mais aussi, de manière aléatoire, vers un bloc généré Recall Block. L'emplacement spécifique du bloc de rappel est déterminé par le résultat du hachage du bloc précédent et par la hauteur du bloc. L'emplacement du bloc de rappel est inconnu jusqu'à ce que le bloc précédent soit extrait. Toutefois, lors de la génération d'un nouveau bloc, le nœud doit disposer des données du bloc de rappel afin d'utiliser le mécanisme POW pour calculer le hachage de la difficulté spécifiée. Seul le premier mineur à calculer le hash correspondant à la difficulté peut obtenir la récompense, ce qui encourage les mineurs à stocker autant que possible. les données historiques. Dans le même temps, moins il y a de personnes qui stockent un certain bloc historique, moins les nœuds ont de concurrents lorsqu'ils génèrent des nonces répondant à la difficulté, ce qui encourage les mineurs à stocker moins de blocs dans le réseau. Enfin, pour s'assurer que les nœuds stockent en permanence des données dans Arweave, il introduit le mécanisme de notation des nœuds de WildFire. Les nœuds auront tendance à communiquer avec les nœuds qui peuvent fournir plus rapidement davantage de données historiques, tandis que les nœuds moins bien notés sont souvent incapables d'obtenir les derniers blocs et données de transaction le plus rapidement possible et ne peuvent donc pas tirer parti de la concurrence POW...
Méthode de construction des blocs Arweave, source de l'image : Arweave Yellow-Paper
Ensuite, nous comparerons les avantages et les inconvénients des cinq solutions de stockage sur la base des quatre dimensions des indicateurs de performance DA.
Comparaison des performances des solutions de stockage, source de l'image : Kernel Ventures
La blockchain actuelle est en train de passer du Crypto au Web3, plus inclusif. Ce processus n'apporte pas seulement une richesse de projets sur la blockchain. Pour permettre le fonctionnement simultané de tant de projets sur Layer1 tout en garantissant l'expérience des projets Gamefi et Socialfi, Layer1 représenté par Ethereum a adopté des méthodes telles que le Rollup et les Blobs pour améliorer le TPS. Parmi les nouvelles blockchains, le nombre de blockchains à haute performance augmente également. Mais un TPS plus élevé n'est pas seulement synonyme de performances accrues, mais aussi d'une plus grande pression de stockage sur le réseau. Pour les données historiques massives, diverses méthodes d'analyse des données basées sur la chaîne principale et des tiers sont actuellement proposées pour s'adapter à l'augmentation de la pression de stockage sur la chaîne. Chaque méthode d'amélioration présente des avantages et des inconvénients et s'applique à des situations différentes.
Les blockchains qui se concentrent sur le paiement ont des exigences extrêmement élevées en matière de sécurité des données historiques et ne cherchent pas à atteindre un TPS particulièrement élevé. Si ce type de chaîne publique en est encore au stade de la préparation, il est possible d'adopter une méthode de stockage de type DankSharding, qui permet d'augmenter considérablement la capacité de stockage tout en garantissant la sécurité. Toutefois, s'il s'agit d'une chaîne publique comme le bitcoin, qui a déjà pris forme et qui compte un grand nombre de nœuds, il est extrêmement risqué d'apporter des améliorations irréfléchies à la couche de consensus. Par conséquent, l'AD dédié à la chaîne principale avec une sécurité plus élevée dans le stockage hors chaîne peut être utilisé pour équilibrer les questions de sécurité et de stockage... Cependant, il convient de noter que les fonctions de la blockchain ne sont pas statiques, mais en constante évolution. Par exemple, les premières fonctions d'Ethereum étaient principalement limitées aux paiements et au simple traitement automatisé des actifs et des transactions à l'aide de contrats intelligents. Cependant, comme le paysage de la blockchain continue de s'étendre, divers projets Socialfi et Defi ont été progressivement ajoutés à Ethereum. Faire évoluer Ethereum dans une direction plus globale. Récemment, avec l'explosion de l'écologie d'inscription sur Bitcoin, les frais de transaction du réseau Bitcoin ont été multipliés par près de 20 depuis le mois d'août. Cela signifie qu'à ce stade, la vitesse de transaction du réseau Bitcoin ne peut pas répondre à la demande de transactions et que les opérateurs ne peuvent qu'augmenter les frais pour que les transactions soient traitées le plus rapidement possible. La communauté Bitcoin doit maintenant faire un choix : accepter des frais élevés et des vitesses de transaction lentes ou réduire la sécurité du réseau pour augmenter les vitesses de transaction mais aller à l'encontre de l'objectif initial du système de paiement. Si la communauté Bitcoin opte pour cette dernière solution, face à la pression croissante des données, la solution de stockage correspondante devra également être adaptée.
Les frais de transaction du réseau principal de Bitcoin fluctuent, source de l'image : OKLINK
Les chaînes publiques dotées de fonctions complètes ont davantage recours au TPS, et la croissance des données historiques est encore plus importante. Il est difficile de s'adapter à la croissance rapide des TPS à long terme en adoptant une solution de type DankSharding. Par conséquent, il est préférable de transférer les données vers une AD tierce pour les stocker. Parmi eux, l'AD spécifique à la chaîne principale présente la plus grande compatibilité et peut avoir plus d'avantages si l'on ne prend en compte que les problèmes de stockage d'une seule chaîne publique. Mais aujourd'hui, alors que les chaînes publiques de niveau 1 sont en plein essor, le transfert d'actifs entre chaînes et l'interaction des données sont devenus des objectifs communs de la communauté de la blockchain. Si l'on tient compte du développement à long terme de l'ensemble de l'écosystème blockchain, le stockage des données historiques de différentes chaînes publiques sur la même chaîne publique peut éliminer de nombreux problèmes de sécurité dans le processus d'échange et de vérification des données. Par conséquent, la différence entre le DA modulaire et le DA de la chaîne publique de stockage pourrait être un meilleur choix. En partant du principe d'une polyvalence étroite, l'AD modulaire se concentre sur la fourniture de services de couche d'AD de la blockchain, en introduisant des données historiques de gestion d'index plus raffinées, qui peuvent raisonnablement classer différentes données de chaîne publique et stocker des données de chaîne publique. A plus d'avantages que. Toutefois, cette solution ne tient pas compte du coût de l'adaptation de la couche de consensus sur la chaîne publique existante. Ce processus est extrêmement risqué. Lorsque des problèmes surviennent, ils peuvent entraîner des vulnérabilités systémiques et faire en sorte que la chaîne publique perde le consensus de la communauté. Par conséquent, s'il s'agit d'une solution transitoire pendant le processus d'expansion de la blockchain, le stockage temporaire le plus simple de la chaîne principale peut être plus approprié. Enfin, la discussion ci-dessus est basée sur les performances en fonctionnement réel. Cependant, si l'objectif d'une certaine chaîne publique est de développer son écologie et d'attirer davantage de parties au projet et de participants, elle peut également préférer les projets qui sont soutenus et financés par sa fondation... Par exemple, lorsque la performance globale est équivalente ou même légèrement inférieure à celle des solutions de stockage de la chaîne publique, la communauté Ethereum tendra également à privilégier les projets de la couche 2 soutenus par la Fondation Ethereum, tels que EthStorage, pour continuer à développer l'écosystème Ethereum.
Dans l'ensemble, les fonctions de la blockchain d'aujourd'hui deviennent de plus en plus complexes, ce qui entraîne également des besoins accrus en matière d'espace de stockage. Lorsqu'il y a suffisamment de nœuds de vérification de couche 1, il n'est pas nécessaire que les données historiques soient sauvegardées par tous les nœuds de l'ensemble du réseau. Ce n'est que lorsque le nombre de sauvegardes atteint une certaine valeur que la sécurité relative peut être garantie... Parallèlement, la division du travail dans les chaînes publiques est également devenue de plus en plus détaillée.., La couche 1 est responsable du consensus et de l'exécution, le Rollup est responsable du calcul et de la vérification, et une blockchain distincte est utilisée pour le stockage des données. Chaque pièce peut se concentrer sur une certaine fonction sans être limitée par les performances des autres pièces. Toutefois, la question de savoir quelle quantité spécifique de stockage ou quelle proportion de nœuds devrait être autorisée à stocker des données historiques peut permettre d'atteindre un équilibre entre la sécurité et l'efficacité, et comment assurer une interopérabilité sécurisée entre différentes blockchains, est une question qui exige que les développeurs de blockchains y réfléchissent et l'améliorent en permanence. Les investisseurs doivent cependant prêter attention au principal projet de DA spécifique à la chaîne Ethereum, car Ethereum a déjà suffisamment de partisans à ce stade et n'a pas besoin de s'appuyer sur d'autres communautés pour étendre son influence. Ce qu'il faut surtout, c'est améliorer et développer votre communauté et attirer davantage de projets dans l'écosystème Ethereum. Toutefois, pour les chaînes publiques en position de rattrapage, telles que Solana et Aptos, la chaîne elle-même ne dispose pas d'une écologie aussi complète, de sorte qu'elle peut être plus encline à s'associer à d'autres communautés pour construire une vaste écologie inter-chaînes afin d'étendre son influence. C'est pourquoi la couche 1 émergente, l'AD générale des tiers, mérite plus d'attention.
Kernel Ventures est un fonds de capital-risque cryptographique dirigé par la communauté de la recherche et du développement avec plus de 70 investissements précoces axés sur l'infrastructure, le middleware, les dApps, en particulier ZK, Rollup, DEX, les blockchains modulaires, et les domaines verticaux d'onboarding pour des milliards d'utilisateurs de crypto à l'avenir, tels que l'abstraction de compte, la disponibilité des données, l'évolutivité, etc. Au cours des sept dernières années, nous nous sommes engagés à soutenir la croissance des communautés de développement de base et des associations universitaires de blockchain dans le monde entier.
En tant que registre distribué, la blockchain doit stocker des données historiques sur tous les nœuds afin de garantir la sécurité et une décentralisation suffisante du stockage des données. Étant donné que l'exactitude de chaque changement d'état est liée à l'état précédent (source de la transaction), pour garantir l'exactitude des transactions, une blockchain devrait en principe stocker tous les enregistrements historiques depuis la première transaction jusqu'à la transaction actuelle. Si l'on prend l'exemple d'Ethereum, même si la taille moyenne des blocs est estimée à 20 kb, la taille totale actuelle des blocs Ethereum atteint 370 GB. Outre le bloc lui-même, un nœud complet doit également enregistrer le statut et les reçus de transaction. En comptant cette partie, la capacité de stockage totale d'un seul nœud a dépassé 1 TB, ce qui concentre l'exploitation du nœud sur quelques personnes.
La dernière hauteur de bloc d'Ethereum, source d'image : Etherscan
Par rapport aux structures de stockage de type base de données ou liste chaînée, la non-comparabilité de la blockchain provient de la capacité à vérifier les données nouvellement générées à l'aide de données historiques. Par conséquent, la sécurité des données historiques est la première question à prendre en compte dans le stockage de la couche DA. Lorsque l'on évalue la sécurité des données des systèmes de blockchain, on l'analyse souvent à partir de la quantité de redondance des données et de la méthode de vérification de la disponibilité des données.
En partant du principe qu'il faut assurer une sécurité de base, le prochain objectif essentiel que la couche DA doit atteindre est de réduire les coûts et d'accroître l'efficacité. La première consiste à réduire les coûts de stockage, indépendamment des différences de performance du matériel, c'est-à-dire à réduire l'utilisation de la mémoire causée par le stockage de données de taille unitaire. À ce stade, les principaux moyens de réduire les coûts de stockage dans la blockchain sont d'adopter la technologie du sharding et d'utiliser le stockage basé sur les récompenses pour s'assurer que les données sont effectivement stockées et réduire le nombre de sauvegardes de données. Toutefois, il n'est pas difficile de constater, à partir des méthodes d'amélioration susmentionnées, qu'il existe une relation de jeu entre le coût du stockage et la sécurité des données. La réduction de l'occupation de l'espace de stockage est souvent synonyme d'une diminution de la sécurité. Par conséquent, une excellente couche DA doit parvenir à un équilibre entre le coût du stockage et la sécurité des données. En outre, si la couche DA est une chaîne publique distincte, elle doit réduire le coût en minimisant le processus intermédiaire d'échange de données. Lors de chaque processus de transfert, les données d'index doivent être conservées pour les appels de requête ultérieurs. Par conséquent, plus le processus d'appel est long, plus il reste de données d'index et plus le coût de stockage augmente. Enfin, le coût du stockage des données est directement lié à la durabilité des données. D'une manière générale, plus le coût de stockage des données est élevé, plus il est difficile pour la chaîne publique de stocker les données de manière persistante.
Après la réduction des coûts, l'étape suivante consiste à accroître l'efficacité, c'est-à-dire la capacité à appeler rapidement les données de la couche DA lorsqu'elles doivent être utilisées. Ce processus se déroule en deux étapes. La première consiste à rechercher les nœuds qui stockent des données. Ce processus est principalement destiné aux chaînes publiques qui n'ont pas atteint la cohérence des données sur l'ensemble du réseau. Si la chaîne publique assure la synchronisation des données pour les nœuds de l'ensemble du réseau, ce point peut être ignoré. La consommation de temps d'un processus. Deuxièmement, dans les systèmes de blockchain grand public actuels, notamment Bitcoin, Ethereum et Filecoin, la méthode de stockage des nœuds est la base de données Leveldb. Dans Leveldb, les données sont stockées de trois manières. Tout d'abord, les données écrites immédiatement seront stockées dans des fichiers de type Memtable. Lorsque la mémoire tampon est pleine, le type de fichier passe de la mémoire tampon à la mémoire tampon immuable. Les deux types de fichiers sont stockés en mémoire, mais les fichiers Memtable Immutable ne peuvent plus être modifiés, seules des données peuvent y être lues. Le stockage à chaud utilisé dans le réseau IPFS stocke les données dans cette partie. Lorsqu'il est appelé, il peut être rapidement lu dans la mémoire. Cependant, la mémoire mobile d'un nœud ordinaire est souvent de niveau GB, et il est facile d'écrire lentement. Lorsqu'un nœud tombe en panne ou qu'une autre situation anormale se produit, les données contenues dans la mémoire sont définitivement perdues. Si vous souhaitez que les données soient stockées de manière persistante, vous devez les stocker sous la forme d'un fichier SST sur un disque dur à état solide (SSD). Cependant, lors de la lecture des données, vous devez d'abord lire les données dans la mémoire, ce qui réduit considérablement la vitesse d'indexation des données. Enfin, pour les systèmes qui utilisent un stockage partagé, la restauration des données nécessite d'envoyer des demandes de données à plusieurs nœuds et de les restaurer. Ce processus réduit également la vitesse de lecture des données.
Méthode de stockage de données Leveldb, source d'images : Leveldb-handbook
Avec le développement de DeFi et les divers problèmes rencontrés par CEX, les besoins des utilisateurs en matière de transactions entre chaînes d'actifs décentralisés augmentent également. Quel que soit le mécanisme inter-chaînes de verrouillage de hachage, de notaire public ou de chaîne de relais, la détermination simultanée des données historiques sur les deux chaînes ne peut être évitée. La clé de ce problème réside dans la séparation des données sur les deux chaînes, et la communication directe ne peut pas être réalisée dans des systèmes décentralisés différents. Une solution est donc proposée à ce stade en modifiant la méthode de stockage de la couche DA, qui non seulement stocke les données historiques de plusieurs chaînes publiques sur la même chaîne publique de confiance, mais n'a besoin d'appeler les données que sur cette chaîne publique lors de la vérification. Peut. Pour ce faire, la couche DA doit pouvoir établir des méthodes de communication sécurisées avec différents types de chaînes publiques, ce qui signifie que la couche DA possède une bonne polyvalence.
Méthode de stockage des données après Sharding, source de l'image : Kernel Ventures
La technologie DAS est basée sur l'optimisation des méthodes de stockage Sharding. Au cours du processus de mise en commun, en raison du simple stockage aléatoire des nœuds, un certain bloc peut être perdu. Deuxièmement, pour les données fragmentées, il est également très important de confirmer l'authenticité et l'intégrité des données au cours du processus de restauration. Dans le DAS, ces deux problèmes sont résolus par le code Eraser et l'engagement polynomial KZG.
La validation des données permet de s'assurer que les données appelées par un nœud sont exactes et complètes. Afin de minimiser la quantité de données et les coûts de calcul nécessaires au processus de validation, la couche DA utilise désormais une structure arborescente comme méthode de validation principale. La forme la plus simple consiste à utiliser l'arbre de Merkle pour la vérification, qui utilise la forme d'enregistrements d'arbres binaires complets ; il suffit de conserver une racine de Merkle et de vérifier la valeur de hachage du sous-arbre de l'autre côté du chemin du nœud ; la complexité temporelle de la vérification est de niveau O(logN) (le logN est par défaut log2(N)). Bien que le processus de validation ait été grandement simplifié, la quantité de données pour le processus de validation en général continue d'augmenter avec l'accroissement des données. Pour résoudre le problème de l'augmentation du volume de validation, une autre méthode de validation, l'arbre de Verkle, est proposée à ce stade, dans laquelle chaque nœud de l'arbre de Verkle stocke non seulement la valeur mais joint également un engagement vectoriel, qui peut rapidement valider l'authenticité des données en utilisant la valeur du nœud d'origine et la preuve d'engagement, sans qu'il soit nécessaire d'appeler les valeurs d'autres nœuds frères, ce qui rend le calcul de chaque validation plus facile et plus rapide. Le nombre de calculs pour chaque vérification n'est donc lié qu'à la profondeur de l'arbre de Verkle, qui est une constante fixe, ce qui accélère considérablement la vitesse de vérification. Toutefois, le calcul de l'engagement vectoriel nécessite la participation de tous les nœuds frères de la même couche, ce qui augmente considérablement le coût de l'écriture et de la modification des données. Cependant, pour des données telles que les données historiques, qui sont stockées de manière permanente et ne peuvent pas être modifiées, et qui ne peuvent être que lues mais pas écrites, l'arbre de Verkle est tout à fait adapté. En outre, l'arbre de Merkle et l'arbre de Verkle ont eux-mêmes une forme de variantes K-ary, la mise en œuvre spécifique du mécanisme est similaire, il suffit de changer le nombre de sous-arbres sous chaque nœud, la comparaison des performances spécifiques peut être vue dans le tableau suivant.
Comparaison des performances temporelles des méthodes de vérification des données, source de l'image : Verkle Trees
L'expansion continue de l'écosystème de la blockchain a entraîné une augmentation constante du nombre de chaînes publiques. En raison des avantages et du caractère irremplaçable de chaque chaîne publique dans leurs domaines respectifs, il est presque impossible pour les chaînes publiques de niveau 1 de s'unifier dans un court laps de temps. Toutefois, avec le développement du DeFi et les divers problèmes rencontrés par le CEX, les utilisateurs ont de plus en plus besoin d'actifs d'échange décentralisés entre les chaînes. C'est pourquoi le stockage de données multi-chaînes de la couche DA, qui peut éliminer les problèmes de sécurité dans les interactions de données entre les chaînes, fait l'objet d'une attention de plus en plus grande. Cependant, pour accepter des données historiques provenant de différentes chaînes publiques, la couche DA doit fournir un protocole décentralisé pour le stockage et la vérification normalisés des flux de données. Par exemple, kvye, un logiciel intermédiaire de stockage basé sur Arweave, récupère activement les données de la chaîne et toutes les données de la chaîne sont stockées dans Arweave sous une forme standard afin de minimiser les différences dans le processus de transmission des données. Relativement parlant, la couche 2, qui fournit spécifiquement le stockage des données de la couche DA pour une certaine chaîne publique, interagit avec les données par l'intermédiaire de nœuds partagés internes. Bien qu'il réduise le coût de l'interaction et améliore la sécurité, il présente des limites relativement importantes et ne peut fournir des données qu'à des chaînes publiques spécifiques qui fournissent des services.
Ce type de solution de stockage n'a pas encore de nom défini, et le représentant le plus connu est DankSharding sur Ethereum, c'est pourquoi cet article utilise la classe DankSharding pour se référer à ce type de solution. Ce type de solution utilise principalement les deux technologies de stockage DA mentionnées ci-dessus, Sharding et DAS. Tout d'abord, les données sont divisées en parts appropriées par le biais du partage, puis chaque nœud extrait un bloc de données sous forme de DAS pour le stockage. S'il y a suffisamment de nœuds dans l'ensemble du réseau, nous pouvons choisir un plus grand nombre de fragments N, de sorte que la pression de stockage de chaque nœud ne représente que 1/N de l'original, ce qui permet de multiplier par N l'espace de stockage global. En même temps, pour éviter la situation extrême où un certain bloc n'est stocké dans aucun bloc, DankSharding encode les données à l'aide d'un code d'effacement, et seule la moitié des données peut être complètement restaurée. La dernière étape est le processus de vérification des données, qui utilise la structure de l'arbre de Verkle et l'engagement polynomial pour réaliser une vérification rapide.
Pour l'AD de la chaîne principale, l'une des méthodes de traitement des données les plus simples consiste à stocker les données historiques à court terme. Par essence, la blockchain joue le rôle d'un grand livre public, ce qui permet à l'ensemble du réseau d'être témoin des modifications apportées au contenu du grand livre, sans qu'il soit nécessaire de le stocker en permanence. Si l'on prend l'exemple de Solana, bien que ses données historiques soient synchronisées avec Arweave, le nœud principal du réseau ne conserve que les données de transaction des deux derniers jours. Sur la chaîne publique basée sur les enregistrements de compte, les données historiques à chaque instant conservent le statut final du compte sur la blockchain, ce qui est suffisant pour fournir une base de vérification pour les changements à l'instant suivant. Les projets qui ont besoin de données avant cette période peuvent les stocker eux-mêmes sur d'autres chaînes publiques décentralisées ou par l'intermédiaire d'un tiers de confiance. En d'autres termes, ceux qui ont besoin de données supplémentaires doivent payer pour le stockage des données historiques.
Contrat EthStorage, source de l'image : Kernel Ventures
Méthode de lecture des données de Celestia, source de l'image : Celestia Core
En ce qui concerne les principes techniques de l'AD de la chaîne principale, de nombreuses technologies similaires au Sharding sont empruntées à la chaîne publique de stockage. Parmi les AN tierces, certaines utilisent directement la chaîne publique de stockage pour effectuer certaines tâches de stockage. Par exemple, les données de transaction spécifiques à Celestia sont placées sur le réseau LL-IPFS. Dans la solution DA de tiers, outre la construction d'une chaîne publique séparée pour résoudre le problème de stockage de la couche 1, un moyen plus direct consiste à connecter directement la chaîne publique de stockage à la couche 1 pour stocker les énormes données historiques sur la couche 1. Pour les blockchains à haute performance, le volume de données historiques est encore plus important. À pleine vitesse, le volume de données de la chaîne publique à haute performance Solana est proche de 4 PG, ce qui dépasse complètement la capacité de stockage des nœuds ordinaires. La solution choisie par Solana consiste à stocker les données historiques sur le réseau de stockage décentralisé Arweave et à ne conserver que deux jours de données sur les nœuds principaux du réseau à des fins de vérification. Pour garantir la sécurité du processus stocké, Solana et Arweave Chain ont spécialement conçu un protocole de pont de stockage, Solar Bridge. Les données vérifiées par le nœud Solana seront synchronisées avec Arweave et la balise correspondante sera renvoyée. C'est uniquement grâce à cette étiquette que le nœud Solana peut consulter les données historiques de la blockchain Solana à tout moment. Sur Arweave, il n'est pas nécessaire que tous les nœuds du réseau maintiennent la cohérence des données et l'utilisent comme seuil pour participer aux opérations du réseau. Au lieu de cela, on adopte le stockage des récompenses. Tout d'abord, Arweave n'utilise pas une structure de chaîne traditionnelle pour construire des blocs, mais s'apparente davantage à une structure de graphe. Dans Arweave, un nouveau bloc pointera non seulement vers le bloc précédent, mais aussi, de manière aléatoire, vers un bloc généré Recall Block. L'emplacement spécifique du bloc de rappel est déterminé par le résultat du hachage du bloc précédent et par la hauteur du bloc. L'emplacement du bloc de rappel est inconnu jusqu'à ce que le bloc précédent soit extrait. Toutefois, lors de la génération d'un nouveau bloc, le nœud doit disposer des données du bloc de rappel afin d'utiliser le mécanisme POW pour calculer le hachage de la difficulté spécifiée. Seul le premier mineur à calculer le hash correspondant à la difficulté peut obtenir la récompense, ce qui encourage les mineurs à stocker autant que possible. les données historiques. Dans le même temps, moins il y a de personnes qui stockent un certain bloc historique, moins les nœuds ont de concurrents lorsqu'ils génèrent des nonces répondant à la difficulté, ce qui encourage les mineurs à stocker moins de blocs dans le réseau. Enfin, pour s'assurer que les nœuds stockent en permanence des données dans Arweave, il introduit le mécanisme de notation des nœuds de WildFire. Les nœuds auront tendance à communiquer avec les nœuds qui peuvent fournir plus rapidement davantage de données historiques, tandis que les nœuds moins bien notés sont souvent incapables d'obtenir les derniers blocs et données de transaction le plus rapidement possible et ne peuvent donc pas tirer parti de la concurrence POW...
Méthode de construction des blocs Arweave, source de l'image : Arweave Yellow-Paper
Ensuite, nous comparerons les avantages et les inconvénients des cinq solutions de stockage sur la base des quatre dimensions des indicateurs de performance DA.
Comparaison des performances des solutions de stockage, source de l'image : Kernel Ventures
La blockchain actuelle est en train de passer du Crypto au Web3, plus inclusif. Ce processus n'apporte pas seulement une richesse de projets sur la blockchain. Pour permettre le fonctionnement simultané de tant de projets sur Layer1 tout en garantissant l'expérience des projets Gamefi et Socialfi, Layer1 représenté par Ethereum a adopté des méthodes telles que le Rollup et les Blobs pour améliorer le TPS. Parmi les nouvelles blockchains, le nombre de blockchains à haute performance augmente également. Mais un TPS plus élevé n'est pas seulement synonyme de performances accrues, mais aussi d'une plus grande pression de stockage sur le réseau. Pour les données historiques massives, diverses méthodes d'analyse des données basées sur la chaîne principale et des tiers sont actuellement proposées pour s'adapter à l'augmentation de la pression de stockage sur la chaîne. Chaque méthode d'amélioration présente des avantages et des inconvénients et s'applique à des situations différentes.
Les blockchains qui se concentrent sur le paiement ont des exigences extrêmement élevées en matière de sécurité des données historiques et ne cherchent pas à atteindre un TPS particulièrement élevé. Si ce type de chaîne publique en est encore au stade de la préparation, il est possible d'adopter une méthode de stockage de type DankSharding, qui permet d'augmenter considérablement la capacité de stockage tout en garantissant la sécurité. Toutefois, s'il s'agit d'une chaîne publique comme le bitcoin, qui a déjà pris forme et qui compte un grand nombre de nœuds, il est extrêmement risqué d'apporter des améliorations irréfléchies à la couche de consensus. Par conséquent, l'AD dédié à la chaîne principale avec une sécurité plus élevée dans le stockage hors chaîne peut être utilisé pour équilibrer les questions de sécurité et de stockage... Cependant, il convient de noter que les fonctions de la blockchain ne sont pas statiques, mais en constante évolution. Par exemple, les premières fonctions d'Ethereum étaient principalement limitées aux paiements et au simple traitement automatisé des actifs et des transactions à l'aide de contrats intelligents. Cependant, comme le paysage de la blockchain continue de s'étendre, divers projets Socialfi et Defi ont été progressivement ajoutés à Ethereum. Faire évoluer Ethereum dans une direction plus globale. Récemment, avec l'explosion de l'écologie d'inscription sur Bitcoin, les frais de transaction du réseau Bitcoin ont été multipliés par près de 20 depuis le mois d'août. Cela signifie qu'à ce stade, la vitesse de transaction du réseau Bitcoin ne peut pas répondre à la demande de transactions et que les opérateurs ne peuvent qu'augmenter les frais pour que les transactions soient traitées le plus rapidement possible. La communauté Bitcoin doit maintenant faire un choix : accepter des frais élevés et des vitesses de transaction lentes ou réduire la sécurité du réseau pour augmenter les vitesses de transaction mais aller à l'encontre de l'objectif initial du système de paiement. Si la communauté Bitcoin opte pour cette dernière solution, face à la pression croissante des données, la solution de stockage correspondante devra également être adaptée.
Les frais de transaction du réseau principal de Bitcoin fluctuent, source de l'image : OKLINK
Les chaînes publiques dotées de fonctions complètes ont davantage recours au TPS, et la croissance des données historiques est encore plus importante. Il est difficile de s'adapter à la croissance rapide des TPS à long terme en adoptant une solution de type DankSharding. Par conséquent, il est préférable de transférer les données vers une AD tierce pour les stocker. Parmi eux, l'AD spécifique à la chaîne principale présente la plus grande compatibilité et peut avoir plus d'avantages si l'on ne prend en compte que les problèmes de stockage d'une seule chaîne publique. Mais aujourd'hui, alors que les chaînes publiques de niveau 1 sont en plein essor, le transfert d'actifs entre chaînes et l'interaction des données sont devenus des objectifs communs de la communauté de la blockchain. Si l'on tient compte du développement à long terme de l'ensemble de l'écosystème blockchain, le stockage des données historiques de différentes chaînes publiques sur la même chaîne publique peut éliminer de nombreux problèmes de sécurité dans le processus d'échange et de vérification des données. Par conséquent, la différence entre le DA modulaire et le DA de la chaîne publique de stockage pourrait être un meilleur choix. En partant du principe d'une polyvalence étroite, l'AD modulaire se concentre sur la fourniture de services de couche d'AD de la blockchain, en introduisant des données historiques de gestion d'index plus raffinées, qui peuvent raisonnablement classer différentes données de chaîne publique et stocker des données de chaîne publique. A plus d'avantages que. Toutefois, cette solution ne tient pas compte du coût de l'adaptation de la couche de consensus sur la chaîne publique existante. Ce processus est extrêmement risqué. Lorsque des problèmes surviennent, ils peuvent entraîner des vulnérabilités systémiques et faire en sorte que la chaîne publique perde le consensus de la communauté. Par conséquent, s'il s'agit d'une solution transitoire pendant le processus d'expansion de la blockchain, le stockage temporaire le plus simple de la chaîne principale peut être plus approprié. Enfin, la discussion ci-dessus est basée sur les performances en fonctionnement réel. Cependant, si l'objectif d'une certaine chaîne publique est de développer son écologie et d'attirer davantage de parties au projet et de participants, elle peut également préférer les projets qui sont soutenus et financés par sa fondation... Par exemple, lorsque la performance globale est équivalente ou même légèrement inférieure à celle des solutions de stockage de la chaîne publique, la communauté Ethereum tendra également à privilégier les projets de la couche 2 soutenus par la Fondation Ethereum, tels que EthStorage, pour continuer à développer l'écosystème Ethereum.
Dans l'ensemble, les fonctions de la blockchain d'aujourd'hui deviennent de plus en plus complexes, ce qui entraîne également des besoins accrus en matière d'espace de stockage. Lorsqu'il y a suffisamment de nœuds de vérification de couche 1, il n'est pas nécessaire que les données historiques soient sauvegardées par tous les nœuds de l'ensemble du réseau. Ce n'est que lorsque le nombre de sauvegardes atteint une certaine valeur que la sécurité relative peut être garantie... Parallèlement, la division du travail dans les chaînes publiques est également devenue de plus en plus détaillée.., La couche 1 est responsable du consensus et de l'exécution, le Rollup est responsable du calcul et de la vérification, et une blockchain distincte est utilisée pour le stockage des données. Chaque pièce peut se concentrer sur une certaine fonction sans être limitée par les performances des autres pièces. Toutefois, la question de savoir quelle quantité spécifique de stockage ou quelle proportion de nœuds devrait être autorisée à stocker des données historiques peut permettre d'atteindre un équilibre entre la sécurité et l'efficacité, et comment assurer une interopérabilité sécurisée entre différentes blockchains, est une question qui exige que les développeurs de blockchains y réfléchissent et l'améliorent en permanence. Les investisseurs doivent cependant prêter attention au principal projet de DA spécifique à la chaîne Ethereum, car Ethereum a déjà suffisamment de partisans à ce stade et n'a pas besoin de s'appuyer sur d'autres communautés pour étendre son influence. Ce qu'il faut surtout, c'est améliorer et développer votre communauté et attirer davantage de projets dans l'écosystème Ethereum. Toutefois, pour les chaînes publiques en position de rattrapage, telles que Solana et Aptos, la chaîne elle-même ne dispose pas d'une écologie aussi complète, de sorte qu'elle peut être plus encline à s'associer à d'autres communautés pour construire une vaste écologie inter-chaînes afin d'étendre son influence. C'est pourquoi la couche 1 émergente, l'AD générale des tiers, mérite plus d'attention.
Kernel Ventures est un fonds de capital-risque cryptographique dirigé par la communauté de la recherche et du développement avec plus de 70 investissements précoces axés sur l'infrastructure, le middleware, les dApps, en particulier ZK, Rollup, DEX, les blockchains modulaires, et les domaines verticaux d'onboarding pour des milliards d'utilisateurs de crypto à l'avenir, tels que l'abstraction de compte, la disponibilité des données, l'évolutivité, etc. Au cours des sept dernières années, nous nous sommes engagés à soutenir la croissance des communautés de développement de base et des associations universitaires de blockchain dans le monde entier.