Parlons d’un autre projet de stockage développé par l’équipe @SuiNetwork, @WalrusProtocol 🧐🧐 Mysten Labs, une société de développement Sui, a également développé un projet de couche de données @WalrusProtocol. Walrus est un projet qui s’occupe du stockage et de la disponibilité des données. Après avoir terminé mes recherches, j’ai eu un sentiment - « génial ». C’est le meilleur projet de rangement que j’ai jamais vu. Voici le texte : Il existe deux grandes catégories de projets de stockage décentralisé. Le premier type utilise la réplication complète, où la redondance inefficace est remplacée par la sécurité, où chaque nœud stocke une copie complète des données, représentant le projet @Filecoin Arweave. Le second type utilise la méthode de code d’effacement Reed-Solomon pour découper et enregistrer les données d’origine, représentant les projets @Storj, Sia, etc. ———————————————————————————————— Expliquer les codes d’effacement d’une manière humaine La méthode de stockage des codes d’effacement doit être expliquée, à proprement parler, il s’agit de diviser le fichier original en tranches d’origine f+1, de générer 2f éclats de réparation supplémentaires, d’enregistrer une tranche différente pour chaque nœud de stockage, et toute tranche f+1 peut reconstruire le fichier d’origine. Eh bien, vous pouvez sauter cette expression non humaine et regarder le paragraphe suivant. Disons que nous voulons enregistrer 4 nombres importants : [3, 7, 2, 5], et que ces 4 nombres sont nos « tranches d’origine ». Ensuite, nous devons générer des tranches supplémentaires, Fixer les tranches 1 = 3 + 7 + 2 + 5 = 17 Réparation tranche 2 = 3×1 + 7×2 + 2×3 + 5×4 = 47 Réparation tranche 3 = 3×1² + 7×2² + 2×3² + 5×4² = 131 Nous avons maintenant 7 tranches : [3, 7, 2, 5, 17, 47, 131], à droite. Disons que le système a 7 nœuds, et que nous les distribuons, Zhang San : 3 Li Si : 7 Rois 5:2 Zhao Liu : 5 Argent 7:17 Fils 8:47 Jean 9:131 En supposant que Li Si, Zhao Liu et Zhou Jiu perdent des données, nous n’avons que : [3, _, 2, _, 17, 47, _]. Alors, comment récupérer les données d’origine ? Vous vous souvenez de la formule pour les tranches supplémentaires ? C’est vrai, résolvez une équation linéaire binaire. 3 + X + 2 + Y = 17 3×1 + X×2 + 2×3 + Y×4 = 47 Le résultat est X=7, Y=5. Bien sûr, ce n’est qu’un exemple simple. Il vous suffit de vous rappeler l’effet obtenu par le code d’effacement. L’effet est que tant que plus de 1/3 des nœuds sont sains. En d’autres termes, dans le système de codage d’effacement, les nœuds ne stockent que des tranches de données, tant que plus de 1/3 des nœuds peuvent fonctionner, les données peuvent être récupérées, mais la stabilité des nœuds est nécessaire en raison du coût élevé de remplacement. Cependant, dans un système entièrement répliqué, il doit y avoir un nœud complet pour télécharger toutes les copies des données. Le premier sacrifie une partie de la sécurité en échange d’un faible coût, tandis que le second échange la redondance contre la sécurité et la stabilité du système. ———————————————————————————————— L’innovation du code d’effacement bidimensionnel (2D) de Walrus L’approche de Walrus consiste en fait à trouver un terrain d’entente et à atteindre un certain équilibre entre les deux. Le noyau utilise également le codage d’effacement, mais il crée une technologie améliorée Red Stuff sur cette technologie. Red Stuff utilise une méthode d’encodage plus intelligente pour fragmenter les données. Vous vous souvenez de l’exemple précédent de l’effacement des codes ? Pour enregistrer 4 nombres importants : [3, 7, 2, 5], générez des tranches supplémentaires, et enfin résolvez l’équation linéaire binaire. Encore une fois, c’est un exemple pour expliquer Red Stuff. L’encodage Red Stuff est un algorithme d’encodage bidimensionnel (2D) que vous pouvez considérer comme « Sudoku ». 3 7 25 dans le code Red Stuf devient, [3 7] [2 5] Supposons que la règle de codage soit : Colonne 3 = Colonne 1 + Colonne 2 Colonne 4 = Colonne 1×2 + Colonne 2×2 Rangée 3 = Rangée 1 + Rangée 2 Rangée 4 = Rangée 1×2 + Rangée 2×2 C’est la tranche supplémentaire qui devient [3 7 10 20] [2 5 7 14] [5 12 18 34] [10 24 34 68] Ensuite, nous les distribuons aux nœuds en lignes et en colonnes, Zhang 3 : 3 7 10 20, c’est-à-dire la première ligne Lee IV : 2 5 7 14, ligne 2 Rois 5:5, 12, 18, 34,... Zhao Liu : 10 24 35 68,... Argent 7:3 2 5 10, colonne 1 8 Dim : 7 5 12 24,... JN 9:10, 7, 18, 34,... Zheng Shi : 20 14 34 68,... Supposons que Wang Wu perde des données, c’est-à-dire que les données de la ligne 3 sont perdues. En fait, il n’a qu’à demander à Zhang San dans la première rangée et Li Si dans la deuxième rangée, et leur demander les chiffres 10 et 7 respectivement. La même équation linéaire binaire est résolue pour obtenir le résultat. À partir des exemples populaires mais pas si rigoureux ci-dessus, nous pouvons résumer les caractéristiques de Red Stuff, Lors de la récupération de données, vous n’avez pas besoin de lignes ou de colonnes complètes, mais uniquement de données spécifiques à l’emplacement. Cette caractéristique peut être appelée « localité ». De plus, un nombre peut être récupéré à partir de deux dimensions : les lignes et les colonnes, c’est-à-dire la « réutilisation de l’information ». Deuxièmement, pour les données complexes, vous pouvez d’abord restaurer la dimension la plus « facile » et la plus pratique à calculer, puis utiliser la dimension de difficulté dans le calcul des données récupérées, c’est-à-dire la « progressivité ». En pratique, supposons qu’un fichier soit encodé en tranches 301 dans le cadre de l’architecture du code d’effacement. Dans un système de codage d’effacement typique, il faut 101 tranches pour récupérer 1 tranche, mais dans Red Stuff, il suffit d’environ 200 symboles individuels pour récupérer 1 paire de tranches. En supposant qu’un fichier de 1 Go est stocké, le système dispose de 301 nœuds, le système habituel de code d’effacement, après une défaillance de nœud, doit télécharger 1 Go pour restaurer les tranches, et Red Stuff, chaque nœud stocke : tranche primaire (3,3 Mo) + tranche secondaire (3,3 Mo) = 6,6 Mo. Seulement environ 10 Mo de données symboliques sont téléchargés lors de la récupération, ce qui permet d’économiser 99 % de la bande passante. Cette conception permet à Walrus de maintenir un réseau de stockage décentralisé à grande échelle avec des coûts de bande passante très faibles, réduisant ainsi les coûts de récupération de O(|blob|) à O(|blob|/n). C’est pourquoi la substance rouge est appelée « auto-guérison ». En outre, Walrus ajoute un certain nombre de fonctionnalités de sécurité, comme le fait d’être le premier protocole à prendre en charge les défis de stockage dans les réseaux asynchrones. Le soi-disant « défi » ici est similaire à la vérification ponctuelle du mécanisme Optimiste sur le stockage des données des nœuds. Red Stuff ajoute des engagements cryptographiques vérifiables à chaque tranche, chaque symbole peut être vérifié indépendamment, et ainsi de suite. Pour résumer les caractéristiques, 1) La première sécurité asynchrone : résout le problème de confiance du stockage distribué aux nœuds ; 2) Auto-vérification : mécanisme anti-contrefaçon intégré ; 3) Progressif : Gérer les changements dynamiques dans les nœuds ; 4) Évolutif : prend en charge des centaines à des milliers de nœuds ; pour trouver le meilleur équilibre entre sécurité et efficacité. (Ce qui précède est la première partie de cet article)
38,44K