Le rôle de la cryptographie dans le Web 3 - Partie 2

in #thiagore10 months ago

Ceci est le second article d'une série de 4 à propos du rôle de la cryptographie dans le Web 3. Ces articles servent à vulgariser différents concepts dont on entend régulièrement parler, mais qui sont flous pour les non initiés.

Dans cette article nous traiteront de Merkle Tree, de Hash Table (Table de hachage) et de sa variant, la Distributed Hash Table (table de hachage distribuée).

Merkle tree

Un Merkle Tree, également appelé arbre de hachage de Merkle, est une structure de données qui permet de vérifier rapidement et efficacement l'intégrité des données stockées dans un système distribué comme ceux du Web 3.0. Cette technique a été inventée par Ralph Merkle dans les années 1980.

Un Merkle Tree est construit à partir de hachages cryptographiques, qui sont des fonctions mathématiques unidirectionnelles qui transforment les données en une empreinte numérique unique. Les hachages sont combinés de manière hiérarchique pour créer une structure d'arbre, où chaque nœud est le hachage des nœuds enfants. Le nœud racine de l'arbre est appelé racine de Merkle, et contient un seul hachage qui représente l'ensemble des données.

merkle_tree.png

Dans le Web 3.0, les Merkle Trees sont souvent utilisés pour stocker et vérifier l'intégrité des données dans les blockchains. Par exemple, chaque bloc dans une blockchain peut inclure un arbre de Merkle de toutes les transactions contenues dans ce bloc. Les nœuds complets de la blockchain peuvent ensuite utiliser la racine de Merkle pour vérifier que les transactions dans le bloc n'ont pas été altérées, sans avoir besoin de vérifier chaque transaction individuellement.

De plus, les Merkle Trees sont également utilisés dans d'autres domaines du Web 3.0, comme le stockage décentralisé de fichiers. Dans ce cas, chaque fichier est divisé en petits blocs de données, qui sont stockés dans un réseau distribué. Un Merkle Tree est ensuite construit pour chaque fichier, permettant aux utilisateurs de vérifier que les fichiers sont stockés de manière fiable et sécurisée sans avoir besoin de vérifier chaque bloc de données individuellement.

Content-adressable storage (CAS)

Le Content-addressable storage (CAS) est un système de stockage de données qui utilise le contenu des données elles-mêmes pour générer une adresse unique de stockage. En d'autres termes, la clé d'accès à une donnée est calculée à partir de son contenu plutôt que de sa position dans une structure de stockage. Cela permet de stocker des données de manière décentralisée et de garantir leur unicité, car deux ensembles de données identiques auront la même clé de stockage unique.

Les Merkle Trees sont souvent utilisés avec le CAS pour stocker des données dans un système distribué, car ils permettent de vérifier rapidement et efficacement l'intégrité des données stockées. Dans ce cas, chaque feuille de l'arbre contient une partie de la donnée et le hachage de chaque nœud est calculé à partir des hachages de ses enfants. La racine de l'arbre contient ainsi un hachage unique qui représente l'ensemble des données stockées. Ce hachage peut alors être utilisé comme clé de stockage unique pour les données.

L'utilisation conjointe de Merkle Trees et de CAS permet donc de stocker des données de manière décentralisée tout en garantissant leur intégrité et leur unicité. Cette technique est couramment utilisée dans les systèmes de stockage décentralisés comme IPFS (InterPlanetary File System) ou Filecoin, qui sont des composants clés du Web 3.0.

Hash Table

Une Hash Table (ou table de hachage) est une structure de données qui permet de stocker et de récupérer des éléments de manière très rapide, en utilisant une fonction de hachage qui transforme la clé de chaque élément en une adresse de stockage unique. Cette adresse permet d'accéder directement à l'emplacement où l'élément est stocké, sans avoir besoin de parcourir l'ensemble de la table.

Dans le contexte du Web 3.0, les Hash Tables sont souvent utilisées pour stocker des informations telles que les adresses des utilisateurs, les contrats intelligents ou les transactions. Par exemple, dans la blockchain Ethereum, les adresses des comptes et des contrats intelligents sont stockées dans une Hash Table appelée "State Trie". Cette Hash Table permet aux nœuds de la blockchain de récupérer rapidement et efficacement les informations nécessaires pour valider les transactions et exécuter les contrats intelligents.

Distributed Hash Table (DHT)

Un Distributed Hash Table (DHT) est une table de hachage distribuée, c'est-à-dire qu'elle est répartie sur plusieurs nœuds d'un réseau décentralisé. Contrairement à une Hash Table classique, où toutes les données sont stockées sur un seul serveur, un DHT permet de stocker des données sur plusieurs nœuds, ce qui offre plusieurs avantages, tels que la résilience aux pannes et la répartition de la charge de stockage.

Dans un DHT, les données sont réparties sur les différents nœuds du réseau en fonction de leur clé de hachage. Chaque nœud stocke une partie des données du DHT, et est responsable de les stocker et de les fournir aux autres nœuds du réseau sur demande. Lorsqu'un nœud doit accéder à une donnée stockée dans le DHT, il calcule le hachage de la clé de cette donnée, et utilise ce hachage pour trouver le nœud qui stocke cette donnée. Ensuite, le nœud peut récupérer la donnée en question directement auprès du nœud qui la stocke.

Les DHT sont couramment utilisées dans les systèmes de stockage décentralisé, tels que IPFS et BitTorrent. Dans ces systèmes, les fichiers sont découpés en petits blocs qui sont stockés dans le DHT. Les nœuds du réseau peuvent récupérer les blocs dont ils ont besoin auprès du DHT, ce qui permet de stocker et de partager des fichiers de manière décentralisée et résiliente.

DHT.png

Conclusion

Dans cet article, nous avons exploré deux concepts clés du Web 3.0 : les Merkle Trees et les Hash Tables. Les Merkle Trees offrent une méthode efficace pour vérifier l'intégrité des données stockées dans un système distribué, permettant ainsi de garantir que les transactions et les fichiers ne sont pas altérés. Les Hash Tables, quant à elles, fournissent une structure de données rapide et efficace pour stocker et récupérer des informations clés dans le Web 3.0, telles que les adresses des utilisateurs, les contrats intelligents et les transactions.

De plus, nous avons également abordé la Distributed Hash Table (DHT), qui étend les capacités des Hash Tables en permettant le stockage et la récupération de données sur plusieurs nœuds d'un réseau décentralisé. Les DHT offrent une résilience aux pannes et une répartition de charge, ce qui en fait une solution idéale pour le stockage décentralisé et le partage de fichiers dans des systèmes comme IPFS et BitTorrent.

Dans le prochain article, nous couvriront les concepts de Zero Knowledge Proofs (preuves à divulgation nulle), de Directed Acyclic Graph (DAG) et de Multisig.

Sort:  

Cher @soushi888, votre contenu a été sélectionné manuellement par les curateurs @itharagaian, @deadzy pour recevoir une curation de la communauté Francophone Hive-FR

Hive-FR Separator.png
dApp Hive-FR: https://hive-fr.com
 
Hive-FR Delegation program: manual curation + 85% reward back
 

My previous @v4vapp proposal has expired. I have a new one which is running but unfunded right now. I'm still running @v4vapp and all my other services.

I've just updated v4v.app and I'm getting ready for some exciting new features after the next hard fork.

Please consider asking your friends to vote for prop #265 or consider unvoting the return vote.

For understandable reasons in the current crypto climate it is harder to get funded by the DHF, I accept this so I'm asking a wider audience for help again. I'll also add that I power up Hive every day and usually power up larger amounts on 1st of the Month. I'm on Hive for ideological reasons much more than for only economic benefit.

Additionally you can also help with a vote for Brianoflondon's Witness using KeyChain or HiveSigner

If you have used v4v.app I'd really like to hear your feedback, and if you haven't I'd be happy to hear why or whether there are other things you want it to do.