Les chercheurs du MIT ont développé une nouvelle crypto-monnaie sécurisée qui réduit jusqu'à 99% les données dont les utilisateurs ont besoin pour rejoindre le réseau et vérifier les transactions, par rapport aux crypto-monnaies populaires d'aujourd'hui, ce qui pourrait signifier un réseau plus évolutif. Crédit :Christine Daniloff
Les chercheurs du MIT ont développé une nouvelle crypto-monnaie qui réduit considérablement les données dont les utilisateurs ont besoin pour rejoindre le réseau et vérifier les transactions, jusqu'à 99% par rapport aux crypto-monnaies populaires d'aujourd'hui. Cela signifie un réseau beaucoup plus évolutif.
Crypto-monnaies, comme le populaire Bitcoin, sont des réseaux construits sur la blockchain, un grand livre financier formaté dans une séquence de blocs individuels, chacun contenant des données de transaction. Ces réseaux sont décentralisés, ce qui signifie qu'il n'y a pas de banques ou d'organisations pour gérer les fonds et les soldes, les utilisateurs unissent donc leurs forces pour stocker et vérifier les transactions.
Mais la décentralisation conduit à un problème d'évolutivité. Pour rejoindre une crypto-monnaie, les nouveaux utilisateurs doivent télécharger et stocker toutes les données de transaction de centaines de milliers de blocs individuels. Ils doivent également stocker ces données pour utiliser le service et aider à vérifier les transactions. Cela rend le processus lent ou peu pratique pour certains.
Dans un article présenté au Symposium sur la sécurité des réseaux et des systèmes distribués le mois prochain, les chercheurs du MIT présentent Vault, une crypto-monnaie qui permet aux utilisateurs de rejoindre le réseau en ne téléchargeant qu'une fraction du total des données de transaction. Il intègre également des techniques qui suppriment les comptes vides qui prennent de la place, et permet des vérifications en utilisant uniquement les données de transaction les plus récentes qui sont divisées et partagées sur le réseau, minimiser les exigences de stockage et de traitement des données d'un utilisateur individuel.
Dans les expériences, Vault a réduit la bande passante pour rejoindre son réseau de 99% par rapport à Bitcoin et de 90% par rapport à Ethereum, qui est considérée comme l'une des crypto-monnaies les plus efficaces d'aujourd'hui. Surtout, Vault garantit toujours que tous les nœuds valident toutes les transactions, offrant une sécurité renforcée égale à ses homologues existants.
"Actuellement, il y a beaucoup de crypto-monnaies, mais ils rencontrent des goulots d'étranglement liés à l'adhésion au système en tant que nouvel utilisateur et au stockage. L'objectif général ici est de permettre aux crypto-monnaies de bien évoluer pour de plus en plus d'utilisateurs, " dit le co-auteur Derek Leung, un étudiant diplômé du Laboratoire d'Informatique et d'Intelligence Artificielle (CSAIL).
Les chercheurs du CSAIL, Yossi Gilad et Nickolai Zeldovich, rejoignent Leung sur le papier, qui est également professeur au Département de génie électrique et informatique (EECS); et le récent ancien élève Adam Suhl '18.
Sauter sur des blocs
Chaque bloc d'un réseau de crypto-monnaie contient un horodatage, son emplacement dans la blockchain, et chaîne de longueur fixe de chiffres et de lettres, appelé un "hachage, " c'est essentiellement l'identification du bloc. Chaque nouveau bloc contient le hachage du bloc précédent dans la blockchain. Les blocs dans Vault contiennent également jusqu'à 10, 000 transactions, soit 10 mégaoctets de données, qui doivent toutes être vérifiées par les utilisateurs. La structure de la blockchain et, en particulier, la chaîne de hachages, garantit qu'un adversaire ne peut pas pirater les blocs sans détection.
De nouveaux utilisateurs rejoignent les réseaux de crypto-monnaie, ou "bottes, " en téléchargeant toutes les données des transactions passées pour s'assurer qu'elles sont sécurisées et à jour. Pour rejoindre Bitcoin l'année dernière, par exemple, un utilisateur en téléchargerait 500, 000 blocs totalisant environ 150 gigaoctets. Les utilisateurs doivent également stocker tous les soldes des comptes pour aider à vérifier les nouveaux utilisateurs et s'assurer que les utilisateurs disposent de suffisamment de fonds pour effectuer les transactions. Les besoins de stockage deviennent importants, alors que Bitcoin s'étend au-delà de 22 millions de comptes.
Les chercheurs ont construit leur système sur un nouveau réseau de crypto-monnaie appelé Algorand, inventé par Silvio Micali, le professeur Ford d'ingénierie au MIT, c'est sûr, décentralisé, et plus évolutif que les autres crypto-monnaies.
Avec les crypto-monnaies traditionnelles, les utilisateurs s'affrontent pour résoudre des équations qui valident des blocs, avec le premier à résoudre les équations recevant des fonds. Au fur et à mesure que le réseau évolue, cela ralentit les délais de traitement des transactions. Algorand utilise un concept de « preuve de participation » pour vérifier plus efficacement les blocs et mieux permettre à de nouveaux utilisateurs de se joindre. Pour chaque bloc, un « comité » de vérification représentatif est sélectionné. Les utilisateurs ayant plus d'argent ou de participation dans le réseau ont une probabilité plus élevée d'être sélectionnés. Pour rejoindre le réseau, les utilisateurs vérifient chaque certificat, pas toutes les transactions.
Mais chaque bloc contient des informations clés pour valider le certificat juste avant celui-ci, ce qui signifie que les nouveaux utilisateurs doivent commencer par le premier bloc de la chaîne, accompagné de son certificat, et valider séquentiellement chacun dans l'ordre, ce qui peut prendre du temps. Pour accélérer les choses, les chercheurs donnent à chaque nouveau certificat des informations de vérification basées sur un bloc de quelques centaines ou 1, 000 blocs derrière, appelé "fil d'Ariane". Lorsqu'un nouvel utilisateur se joint, ils font correspondre le fil d'Ariane d'un premier bloc à un fil d'Ariane 1, 000 blocs à venir. Ce fil d'Ariane peut être associé à un autre fil d'Ariane 1, 000 blocs d'avance, etc.
"Le titre du papier est un jeu de mots, " dit Leung. " Un coffre-fort est un endroit où vous pouvez stocker de l'argent, mais la blockchain vous permet également de « sauter » sur des blocs lorsque vous rejoignez un réseau. Quand je démarre, J'ai seulement besoin d'un bloc dans le passé pour vérifier un bloc dans le futur. Je peux sauter tous les blocs entre les deux, ce qui nous permet d'économiser beaucoup de bande passante."
Diviser et jeter
Pour réduire les besoins de stockage de données, les chercheurs ont conçu Vault avec un nouveau schéma de « sharding ». La technique divise les données de transaction en portions plus petites (ou fragments) qu'elle partage sur le réseau, les utilisateurs individuels n'ont donc qu'à traiter de petites quantités de données pour vérifier les transactions.
Pour mettre en œuvre le partage de manière sécurisée, Vault utilise une structure de données bien connue appelée arbre binaire de Merkle. Dans les arbres binaires, un seul nœud supérieur se divise en deux nœuds « enfants », et ces deux nœuds se divisent chacun en deux nœuds enfants, etc.
Dans les arbres Merkle, le nœud supérieur contient un seul hachage, appelé hachage racine. Mais l'arbre est construit par le bas, en haut. L'arbre combine chaque paire de hachages enfants le long du bas pour former leur hachage parent. Il répète ce processus dans l'arbre, affecter un nœud parent à partir de chaque paire de nœuds enfants, jusqu'à ce qu'il combine tout dans le hachage racine. En crypto-monnaies, le nœud supérieur contient un hachage d'un seul bloc. Chaque nœud inférieur contient un hachage qui signifie les informations de solde sur un compte impliqué dans une transaction dans le bloc. Le hachage d'équilibre et le hachage de bloc sont liés ensemble.
Pour vérifier une transaction, le réseau combine les deux nœuds enfants pour obtenir le hachage du nœud parent. Il répète ce processus en remontant l'arbre. Si le hachage combiné final correspond au hachage racine du bloc, la transaction peut être vérifiée. Mais avec les crypto-monnaies traditionnelles, les utilisateurs doivent stocker l'intégralité de l'arborescence.
Avec Vault, les chercheurs divisent l'arbre de Merkle en fragments distincts attribués à des groupes d'utilisateurs distincts. Chaque compte utilisateur ne stocke que les soldes des comptes dans sa partition attribuée, ainsi que des hachages de racine. L'astuce consiste à ce que tous les utilisateurs stockent une couche de nœuds qui traverse l'ensemble de l'arbre Merkle. Lorsqu'un utilisateur doit vérifier une transaction depuis l'extérieur de sa partition, ils tracent un chemin vers cette couche commune. De cette couche commune, ils peuvent déterminer le solde du compte en dehors de leur partition, et continuer la validation normalement.
"Chaque fragment du réseau est responsable du stockage d'une plus petite tranche d'une grande structure de données, mais cette petite tranche permet aux utilisateurs de vérifier les transactions de toutes les autres parties du réseau, " dit Leung.
Cette histoire est republiée avec l'aimable autorisation de MIT News (web.mit.edu/newsoffice/), un site populaire qui couvre l'actualité de la recherche du MIT, innovation et enseignement.