Maison  >  Article  >  Construction et vérification d'arbres Merkle à l'aide de OP_CAT

Construction et vérification d'arbres Merkle à l'aide de OP_CAT

WBOY
WBOYoriginal
2024-06-25 18:06:47403parcourir

Après notre série n°1, nous montrons comment construire et vérifier des arbres Merkle à l'aide d'OP_CAT. Dans Bitcoin, les arbres Merkle sont utilisés comme structure de données pour vérifier les données, synchroniser et relier efficacement les transactions et les blocs de la blockchain.

Constructing and Verifying Merkle Trees using OP_CAT

Cet article a été publié pour la première fois sur Medium. Suite à notre série n° 1, nous montrons comment construire et vérifier des arbres Merkle à l'aide de OP_CAT. Dans Bitcoin, les arbres Merkle sont utilisés comme structure de données pour vérifier les données, synchroniser la blockchain et relier efficacement les transactions et les blocs entre eux. L'opcode OP_CAT, qui permet la concaténation de deux variables de pile, peut être utilisé avec les hachages SHA256 de clés publiques pour rationaliser le processus de vérification de l'arborescence Merkle dans Bitcoin Script. OP_CAT permet uniquement la création et l'ouverture d'entrées dans les arbres Merkle, car l'opération fondamentale pour construire et vérifier les arbres Merkle consiste à concaténer deux valeurs puis à les hacher.

Il existe de nombreuses applications pour les arbres Merkle. Voici quelques exemples marquants :

Preuve Merkle
Une preuve Merkle est une méthode cryptographique utilisée pour vérifier qu'une transaction particulière est incluse dans un arbre Merkle sans avoir à télécharger l'intégralité de la blockchain. Ceci est particulièrement utile pour les clients légers et améliore l'efficacité de la vérification des données.

Signature d'arbre
Une signature d'arbre est une méthode cryptographique qui améliore la sécurité et l'efficacité des signatures numériques à l'aide de structures arborescentes, en particulier les arbres Merkle. Cette approche est utilisée pour générer une preuve plus compacte et privée qu'un message ou un ensemble de messages a été signé par une clé particulière, par rapport au Multisig classique.

Preuves sans connaissance
STARK (Succinct Transparent Arguments of Knowledge) est un type de système de preuve à connaissance nulle. STARKS est conçu pour permettre à un prouveur de prouver la validité d'un calcul à un vérificateur sans révéler aucune information sensible sur le calcul lui-même.

Si OP_CAT devait être ajouté à Bitcoin, cela pourrait potentiellement permettre la mise en œuvre d'un vérificateur STARK dans Bitcoin. Script, avec des travaux déjà en cours à ce sujet. Cela permettrait des transactions sécurisées et privées sur le réseau Bitcoin. Comparé aux systèmes de preuve basés sur le couplage comme SNARK, STARK est considéré comme plus convivial pour Bitcoin.

Implémentation
La mise en œuvre de l'arbre Merkle à l'aide de Cryptis est simple. Le code suivant calcule le hachage racine d'un arbre Merkle, en fonction d'une feuille et de son chemin Merkle, généralement utilisé pour vérifier une preuve Merkle. Le code complet se trouve sur https://github.com/sCrypt-Inc/scrypt-btc-merkle.

Une seule exécution entraîne les transactions suivantes :
Vérifiez la transaction sur Mempool
Vérifiez la transaction sur Mempool
Versions de script
Là sont des implémentations alternatives dans des scripts nus, comme celui ci-dessous. L'un des avantages majeurs de l'utilisation de Cryptis pour implémenter merkletrees est sa lisibilité et sa maintenabilité. Les scripts sont souvent très difficiles à lire et à travailler.

OP_EXISTS
S'il vous plaît, dites-moi que vous aviez un compilateur pour générer cela—Jerry–BitcoinBay (@Lightswarm) 1er mars 2024
Restez à l'écoute pour plus de cas d'utilisation d'OP_CAT.
Regardez : sCrypt Les étudiants du hackathon se rendent compte qu'il y a plus dans la blockchain
Nouveau dans la blockchain ? Visitez la section Blockchain pour les débutants de CoinGeek, le guide de ressources ultime pour en savoir plus sur la technologie blockchain.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn