Qu'est-ce qu'un schéma de commit-révélation dans la blockchain ? (2025)

Débutant11/22/2023, 6:46:03 PM
Explorez l'évolution des schémas Commit-Reveal en 2025 dans la blockchain, avec une réduction de la surcharge computationnelle, des applications inter-chaînes, des protocoles de sécurité renforcés, une adoption croissante par les entreprises et des intégrations innovantes de l'IA qui renforcent encore la confidentialité et la sécurité dans les transactions décentralisées.

Mises à jour 2025 sur les schémas de commit-révélation

Le schéma Commit-Reveal continue d'évoluer en 2025 avec plusieurs avancées significatives qui améliorent son utilité et son efficacité dans les applications blockchain. Les développements suivants représentent l'état de l'art de cette technologie :

Méthodes d'implémentation avancées

Les innovations récentes se sont concentrées sur la réduction de la surcharge computationnelle des schémas traditionnels de Commit-Reveal. Des algorithmes optimisés permettent désormais une vérification plus rapide tout en maintenant l'intégrité de la sécurité. Ces améliorations ont conduit à une adoption accrue sur diverses plateformes de blockchain au-delà d'Ethereum, y compris les solutions de couche 2 qui bénéficient de :

  • Réduction des coûts de gaz pour les opérations de commit-reveal
  • Des temps de confirmation plus courts entre les phases de validation et de révélation
  • Protection de la vie privée améliorée grâce à des techniques cryptographiques améliorées

Applications Cross-Chain

Le paradigme Commit-Reveal s'est élargi pour faciliter des opérations sécurisées entre chaînes, permettant aux engagements sur une blockchain d'être révélés et vérifiés sur une autre. Cette avancée en matière d'interopérabilité permet :

  • Transferts d'actifs sécurisés entre différentes blockchains
  • Mécanismes de vote inter-chaînes avec une confidentialité améliorée
  • Systèmes d'enchères multi-chaînes avec un accès au marché plus large

Améliorations de la sécurité

La recherche en 2025 a abordé les vulnérabilités précédentes dans les implémentations Commit-Reveal :

Adoption des entreprises

Le secteur des entreprises montre un intérêt croissant pour les schémas Commit-Reveal pour les applications commerciales :

  • Les systèmes de gestion de la chaîne d'approvisionnement utilisent le commit-reveal pour les processus d'enchères scellées.
  • Les institutions financières mettent en œuvre le schéma pour les systèmes de règlement privé.
  • Les organisations de santé utilisent le commit-reveal pour le partage de données sensibles tout en préservant la vie privée des patients.

Intégration avec les systèmes d'IA

Peut-être que le développement le plus excitant est l'intégration des schémas Commit-Reveal avec l'intelligence artificielle :

  • Marchés de prédiction IA où les modèles s'engagent à des prédictions avant que les événements ne se produisent
  • Systèmes d'apprentissage automatique décentralisés qui protègent les données d'entraînement grâce à un engagement-révélateur
  • Oracles qui fournissent une randomité vérifiable grâce à des processus de commit-révélation collaboratifs entre les nœuds d'IA

Ces avancées démontrent comment le schéma Commit-Reveal continue de servir de mécanisme fondamental pour les applications blockchain nécessitant équité, transparence et sécurité. À mesure que la technologie mûrit, son implémentation devient plus efficace et adaptable, ouvrant de nouvelles possibilités pour les systèmes décentralisés dans divers secteurs. Le développement continu de ce protocole met en évidence l'engagement de la communauté blockchain à créer des solutions solides pour les défis de la vie privée et de la sécurité dans des environnements distribués.

La technologie Blockchain apporte des approches innovantes pour atteindre le consensus, la sécurité et la confidentialité. Une de ces innovations est le schéma de commit-révélation, un protocole cryptographique qui renforce la confidentialité et la sécurité des utilisateurs de blockchain. Alors que vous naviguez dans ce cours, vous découvrirez les couches de confiance, de transparence et d'innovation que le schéma Commit-Révélation apporte au domaine numérique décentralisé. Chaque module de cet article est méticuleusement conçu pour fournir une compréhension complète du schéma Commit-Révélation, de son implémentation et de son impact sur le paysage blockchain.

Qu'est-ce que Blockchain ?

Au cœur, une blockchain est comme un registre numérique avec une particularité. Contrairement aux registres traditionnels, elle est décentralisée, ce qui signifie qu'aucune entité unique n'a le contrôle sur l'ensemble de la blockchain, et elle est accessible à quiconque fait partie de son réseau. Chaque 'bloc' dans une blockchain contient une liste de transactions. Une fois qu'un bloc est rempli de transactions, un nouveau bloc est formé, créant une 'chaîne' de blocs connectés - d'où le nom, 'blockchain.'

L'une des caractéristiques brillantes de la blockchain est son accent sur la confiance et la transparence. Quiconque dans le réseau a accès à chaque transaction sur une blockchain et peut la consulter. Cette ouverture décourage la malhonnêteté et favorise la confiance au sein de la communauté. Vous vous demandez peut-être, comment atteint-elle un tel niveau de transparence ? La réponse réside dans ses mécanismes de consensus uniques et ses principes cryptographiques, que nous approfondirons au fur et à mesure de ce cours.

Introduction au schéma Commit-Révéler

Maintenant que vous avez un aperçu de ce qu'est la blockchain, introduisons une saveur spéciale - le schéma Commit-Reveal. C'est comme un spectacle de magie où un magicien (l'utilisateur) s'engage d'abord à un certain acte sans le révéler au public (le réseau) et ensuite, à un stade ultérieur, dévoile l'acte. En termes de blockchain, il s'agit d'un processus en deux étapes : la 'Phase de Commit' et la 'Phase de Reveal'.

Dans la phase d'engagement, un utilisateur soumet une version hachée de ses informations au blockchain. Cette version hachée est comme une version brouillée des informations originales qui cache le contenu réel. La magie de la fonction de hachage est qu'il s'agit d'un voyage à sens unique ; vous ne pouvez pas déchiffrer le hachage pour revenir à sa forme originale, gardant ainsi les informations secrètes pour le moment. Vient ensuite la phase de révélation, où l'utilisateur révèle les informations originales, qui sont ensuite vérifiées par le réseau en les hachant à nouveau et en les comparant au hachage engagé initial. Si cela correspond, voilà ! Le réseau confirme la révélation, et le tour de magie est complet.

Grâce au système Commit-Reveal, les réseaux blockchain peuvent atteindre un nouveau niveau d'engagement dans des applications telles que les enchères, les systèmes de vote, et plus encore, que nous explorerons en détail dans les modules à venir.

La phase de validation

Alors que nous naviguons dans les profondeurs du schéma Commit-Reveal, notre premier arrêt est la ‘Phase de Commit.’ Dans cette phase, les utilisateurs “s'engagent” à une certaine valeur, mais ils le font d'une manière qui garde la valeur réelle secrète. Imaginez que vous avez un nombre secret en tête, mais au lieu de dire à tout le monde ce que c'est, vous le mettez dans une boîte verrouillée et la montrez à tout le monde. Ils savent que vous avez un nombre, mais ils ne savent pas ce que c'est. C'est ça, s'engager, dans le blockchain !

Maintenant, comment verrouillons-nous notre valeur secrète ? Dans le monde de la blockchain, nous utilisons quelque chose appelé une fonction de hachage pour cela. Une fonction de hachage est comme un mélangeur magique. Vous mettez votre valeur secrète, et il en ressort une version brouillée, connue sous le nom de hachage. Ce hachage est unique ; même un petit changement dans la valeur originale crée un hachage complètement différent. La beauté de cela est que c'est un processus unidirectionnel - une fois que la valeur est hachée, il n'y a pas de moyen facile de déterminer la valeur originale à partir du hachage. Donc, lorsque les utilisateurs s'engagent à partager leur valeur, ce qu'ils font réellement, c'est partager le hachage de leur valeur avec tout le monde sur la blockchain.

La phase de révélation

Après le suspense construit dans la phase de Commit, il est temps pour la grande révélation ! La phase de Reveal est celle où les valeurs engagées sont enfin dévoilées à tous les participants sur la blockchain. Pour revenir à notre analogie de la boîte verrouillée, c'est le moment où la boîte est ouverte, et tout le monde peut voir quel numéro vous aviez caché. Dans le monde de la blockchain, la révélation est un processus simple mais crucial qui offre transparence et équité dans diverses applications.

Lorsque l'utilisateur révèle sa valeur engagée, le réseau peut facilement vérifier son authenticité en hachant la valeur révélée et en la comparant au hachage original partagé lors de la phase de commit. Si les hachages correspondent, cela confirme que l'utilisateur n'a pas changé d'avis en cours de route. Ce processus de vérification simple mais puissant aide à maintenir un environnement de confiance où chacun respecte les règles. C'est comme avoir un arbitre dans un jeu, garantissant que tous les joueurs respectent les conditions convenues.

Implémentation de Commit-Reveal dans les Smart Contracts

Maintenant que nous avons déchiffré la magie du schéma Commit-Reveal, voyons comment il prend vie dans le monde de la blockchain à travers les smart contracts. Un smart contract est comme un contrat traditionnel, mais il est numérique et auto-exécutable. Imaginez un robot impartial qui s'assure automatiquement que toutes les parties respectent leurs accords, et vous avez l'idée d'un smart contract. C'est l'outil qui prend l'idée théorique de Commit-Reveal et la rend pratique dans le domaine numérique. Mettre en œuvre un schéma Commit-Reveal via un smart contract, c'est comme chorégraphier une danse où chaque pas suit un rythme défini. Passons en revue cette chorégraphie étape par étape.

Créer le contrat

Commencez par créer un contrat intelligent sur une plateforme blockchain comme Ethereum. Ce contrat contiendra les règles d'engagement pour le schéma de Commit-Reveal codées à l'intérieur.

La fonction Commit

Concevez une fonction de commit dans le contrat intelligent. Cette fonction permettra aux utilisateurs de soumettre leurs valeurs hachées (la phase de commit) au contrat.

Stockage des valeurs engagées

Au fur et à mesure que les utilisateurs engagent leurs valeurs, le contrat intelligent stockera ces hachages en toute sécurité sur la blockchain, en attendant la phase de révélation.

La fonction de révélation

Ensuite, dans le contrat intelligent, créez une fonction de révélation. Lorsque le moment sera venu, cette fonction permettra aux utilisateurs de révéler leurs valeurs d'origine.

Vérification et Validation

Lors de la révélation, le contrat intelligent vérifiera les valeurs révélées en les hachant et en les comparant avec les hachages initialement engagés. Si tout correspond, la révélation est validée.

Finalisation

Une fois que toutes les révélations sont collectées et vérifiées, le contrat intelligent peut automatiquement exécuter les étapes suivantes, que ce soit le comptage des votes, la détermination des gagnants des enchères ou toute autre action spécifique à l'application.

Audit et Test

Avant de déployer, testez minutieusement le contrat intelligent pour vous assurer qu'il fonctionne comme prévu et qu'il est sécurisé contre les potentielles exploitations. Grâce à ces étapes, le contrat intelligent orchestre la danse Commit-Reveal, garantissant un processus équitable et transparent.

Exemple de code

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// La fonction de commit permet aux utilisateurs de soumettre leurs valeurs hachéesfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Déjà engagé");    commits[msg.sender].hash = _hash;}// La fonction de reveal permet aux utilisateurs de révéler leurs valeurs originalesfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Déjà révélé");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Les hachages ne correspondent pas");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Une fonction d'exemple pour finaliser qui pourrait compter les votesfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Une fonction pour auditer l'état du contrat (juste un exemple, pas pratique pour de grands ensembles de données)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Explication:

  • Créer le contrat : Le contrat CommitReveal est créé.
  • La fonction Commit : La fonction de validation accepte une valeur hachée (_hash) et l'enregistre contre l'adresse de l'expéditeur.
  • Stockage des valeurs engagées :Les valeurs hachées sont stockées dans une mappage appelé commits.
  • La fonction de révélation : La fonction de révélation permet aux utilisateurs de soumettre leur valeur originale (_value) et un sel (_salt). Elle vérifie que le hachage de ceux-ci correspond au hachage initialement engagé.
  • Vérification et Validation : Cela se fait dans la fonction de révélation en comparant les hachages.
  • Finalisation : La fonction tallyVotes est un exemple simplifié de la façon dont vous pourriez compter les votes. Elle itère à travers toutes les adresses possibles (impraticable pour de grands ensembles de données) et additionne les valeurs révélées.
  • Audit et Test :La fonction d'audit est un exemple très simpliste de la façon dont vous pourriez vérifier l'état du contrat.

Ceci est un exemple très simplifié et manque de nombreuses considérations pratiques dont vous auriez besoin pour un système de production (comme prévenir les débordements, optimiser l'utilisation du gaz, gérer de grands ensembles de données et ajouter un contrôle d'accès approprié). La fonction de finalisation, en particulier, est impraticable en raison de l'itération sur toutes les adresses possibles et nécessiterait un design différent dans un scénario du monde réel. Ce code est destiné comme point de départ et outil éducatif, pas comme solution prête pour la production.

Cas d'utilisation du schéma Commit-Reveal dans la Blockchain

Amélioration des plateformes d'enchères

Les enchères en ligne sont l'une des applications essentielles du schéma Commit-Reveal. Pour empêcher les autres d'utiliser les montants des enchères comme levier, les participants peuvent soumettre leurs offres de manière secrète pendant la phase de commit. Lorsque la période d'enchères se termine, la phase de révélation commence, permettant aux participants de divulguer leurs offres. La plus haute offre valide est déterminée, garantissant un processus d'enchères juste et compétitif.

Créer des systèmes de vote équitables

Les systèmes de vote peuvent bénéficier considérablement du schéma Commit-Reveal, en particulier dans des scénarios exigeant l'anonymat et l'honnêteté des électeurs. Dans cette configuration, lors des élections ou de tout événement de vote, les électeurs s'engagent sur leurs choix pendant la phase d'engagement sans les révéler aux autres, garantissant ainsi l'intégrité et le secret des votes. Une fois la période de vote terminée, la phase de révélation commence, permettant aux électeurs de divulguer leurs votes. Ceux-ci sont ensuite comptabilisés pour déterminer le résultat, favorisant un processus de vote équitable et transparent.

Contrats à soumission scellée

Dans les contrats à soumission scellée, les soumissionnaires soumettent leurs offres de manière cachée en utilisant le schéma Commit-Reveal. Ce processus garantit qu'aucun des soumissionnaires ne connaît les montants des offres des autres, favorisant une concurrence équitable. Après la période de soumission des offres, la phase de révélation a lieu, et le contrat est attribué au soumissionnaire qualifié ayant la meilleure offre.

Scénarios de jeu

Le système Commit-Reveal trouve une application amusante dans des scénarios de jeu tels qu'une version numérique de Pierre, Papier, Ciseaux. Les joueurs s'engagent sur leurs choix sans les révéler, garantissant un jeu équitable. Une fois que les deux joueurs ont fait leur engagement, la phase de révélation suit, déterminant le gagnant en fonction des choix effectués.

Atténuer les problèmes de préemption

Dans les environnements blockchain, le front-running est une préoccupation où des acteurs malveillants pourraient potentiellement bénéficier de la connaissance des transactions en attente. Le schéma Commit-Reveal aide à atténuer de tels problèmes en cachant initialement les détails des transactions. Au moment où la phase de révélation arrive, il est trop tard pour les acteurs malveillants d'agir sur l'information, préservant ainsi l'intégrité des transactions.

Architectures de Commit-and-Reveal à faible latence

Des architectures plus récentes comme F3B ont évolué pour réduire les frais généraux associé aux schémas traditionnels de Commit-Reveal. F3B minimise l'écriture de données sur le Blockchain, offrant une architecture Commit-and-Reveal à faible latence. Ce développement est remarquable car il signifie l'optimisation et l'innovation continues dans les schémas de Commit-Reveal, les rendant plus efficaces pour des applications réelles.

Génération de nombres aléatoires

Dans les environnements blockchain, générer des nombres aléatoires peut être un défi en raison de la nature déterministe des protocoles blockchain. Le schéma Commit-Reveal sert d'alternative décentralisée pour générer des nombres aléatoires sur la blockchain Ethereum. Par exemple, Randao, une implémentation RNG Commit-Reveal, utilise des flux de données publics et incite à la participation à la génération de nombres aléatoires.

Conclusion

Alors que ce regard intéressant sur le schéma Commit-Reveal touche à sa fin, il est important de considérer comment ce mécanisme simple mais puissant aide à construire la confiance et l'ouverture dans les applications blockchain. Nous avons eu un aperçu de la façon dont la technologie blockchain pourrait changer de nombreux domaines en rendant les enchères équitables, les systèmes de vote honnêtes et les scénarios de jeu plus créatifs, entre autres, grâce au schéma Commit-Reveal. Le voyage ne s'arrête pas ici ; la nature en constante évolution de la technologie blockchain présente de nouveaux horizons à explorer. Armé des connaissances acquises au cours de ce cours, vous êtes bien positionné pour plonger plus profondément dans la blockchain, explorer ses possibilités infinies et contribuer à façonner un avenir numérique transparent, équitable et décentralisé.

Auteur : Piero
Traduction effectuée par : Cedar
Examinateur(s): Matheus、Edward、Ashley He
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.

Qu'est-ce qu'un schéma de commit-révélation dans la blockchain ? (2025)

Débutant11/22/2023, 6:46:03 PM
Explorez l'évolution des schémas Commit-Reveal en 2025 dans la blockchain, avec une réduction de la surcharge computationnelle, des applications inter-chaînes, des protocoles de sécurité renforcés, une adoption croissante par les entreprises et des intégrations innovantes de l'IA qui renforcent encore la confidentialité et la sécurité dans les transactions décentralisées.

Mises à jour 2025 sur les schémas de commit-révélation

Le schéma Commit-Reveal continue d'évoluer en 2025 avec plusieurs avancées significatives qui améliorent son utilité et son efficacité dans les applications blockchain. Les développements suivants représentent l'état de l'art de cette technologie :

Méthodes d'implémentation avancées

Les innovations récentes se sont concentrées sur la réduction de la surcharge computationnelle des schémas traditionnels de Commit-Reveal. Des algorithmes optimisés permettent désormais une vérification plus rapide tout en maintenant l'intégrité de la sécurité. Ces améliorations ont conduit à une adoption accrue sur diverses plateformes de blockchain au-delà d'Ethereum, y compris les solutions de couche 2 qui bénéficient de :

  • Réduction des coûts de gaz pour les opérations de commit-reveal
  • Des temps de confirmation plus courts entre les phases de validation et de révélation
  • Protection de la vie privée améliorée grâce à des techniques cryptographiques améliorées

Applications Cross-Chain

Le paradigme Commit-Reveal s'est élargi pour faciliter des opérations sécurisées entre chaînes, permettant aux engagements sur une blockchain d'être révélés et vérifiés sur une autre. Cette avancée en matière d'interopérabilité permet :

  • Transferts d'actifs sécurisés entre différentes blockchains
  • Mécanismes de vote inter-chaînes avec une confidentialité améliorée
  • Systèmes d'enchères multi-chaînes avec un accès au marché plus large

Améliorations de la sécurité

La recherche en 2025 a abordé les vulnérabilités précédentes dans les implémentations Commit-Reveal :

Adoption des entreprises

Le secteur des entreprises montre un intérêt croissant pour les schémas Commit-Reveal pour les applications commerciales :

  • Les systèmes de gestion de la chaîne d'approvisionnement utilisent le commit-reveal pour les processus d'enchères scellées.
  • Les institutions financières mettent en œuvre le schéma pour les systèmes de règlement privé.
  • Les organisations de santé utilisent le commit-reveal pour le partage de données sensibles tout en préservant la vie privée des patients.

Intégration avec les systèmes d'IA

Peut-être que le développement le plus excitant est l'intégration des schémas Commit-Reveal avec l'intelligence artificielle :

  • Marchés de prédiction IA où les modèles s'engagent à des prédictions avant que les événements ne se produisent
  • Systèmes d'apprentissage automatique décentralisés qui protègent les données d'entraînement grâce à un engagement-révélateur
  • Oracles qui fournissent une randomité vérifiable grâce à des processus de commit-révélation collaboratifs entre les nœuds d'IA

Ces avancées démontrent comment le schéma Commit-Reveal continue de servir de mécanisme fondamental pour les applications blockchain nécessitant équité, transparence et sécurité. À mesure que la technologie mûrit, son implémentation devient plus efficace et adaptable, ouvrant de nouvelles possibilités pour les systèmes décentralisés dans divers secteurs. Le développement continu de ce protocole met en évidence l'engagement de la communauté blockchain à créer des solutions solides pour les défis de la vie privée et de la sécurité dans des environnements distribués.

La technologie Blockchain apporte des approches innovantes pour atteindre le consensus, la sécurité et la confidentialité. Une de ces innovations est le schéma de commit-révélation, un protocole cryptographique qui renforce la confidentialité et la sécurité des utilisateurs de blockchain. Alors que vous naviguez dans ce cours, vous découvrirez les couches de confiance, de transparence et d'innovation que le schéma Commit-Révélation apporte au domaine numérique décentralisé. Chaque module de cet article est méticuleusement conçu pour fournir une compréhension complète du schéma Commit-Révélation, de son implémentation et de son impact sur le paysage blockchain.

Qu'est-ce que Blockchain ?

Au cœur, une blockchain est comme un registre numérique avec une particularité. Contrairement aux registres traditionnels, elle est décentralisée, ce qui signifie qu'aucune entité unique n'a le contrôle sur l'ensemble de la blockchain, et elle est accessible à quiconque fait partie de son réseau. Chaque 'bloc' dans une blockchain contient une liste de transactions. Une fois qu'un bloc est rempli de transactions, un nouveau bloc est formé, créant une 'chaîne' de blocs connectés - d'où le nom, 'blockchain.'

L'une des caractéristiques brillantes de la blockchain est son accent sur la confiance et la transparence. Quiconque dans le réseau a accès à chaque transaction sur une blockchain et peut la consulter. Cette ouverture décourage la malhonnêteté et favorise la confiance au sein de la communauté. Vous vous demandez peut-être, comment atteint-elle un tel niveau de transparence ? La réponse réside dans ses mécanismes de consensus uniques et ses principes cryptographiques, que nous approfondirons au fur et à mesure de ce cours.

Introduction au schéma Commit-Révéler

Maintenant que vous avez un aperçu de ce qu'est la blockchain, introduisons une saveur spéciale - le schéma Commit-Reveal. C'est comme un spectacle de magie où un magicien (l'utilisateur) s'engage d'abord à un certain acte sans le révéler au public (le réseau) et ensuite, à un stade ultérieur, dévoile l'acte. En termes de blockchain, il s'agit d'un processus en deux étapes : la 'Phase de Commit' et la 'Phase de Reveal'.

Dans la phase d'engagement, un utilisateur soumet une version hachée de ses informations au blockchain. Cette version hachée est comme une version brouillée des informations originales qui cache le contenu réel. La magie de la fonction de hachage est qu'il s'agit d'un voyage à sens unique ; vous ne pouvez pas déchiffrer le hachage pour revenir à sa forme originale, gardant ainsi les informations secrètes pour le moment. Vient ensuite la phase de révélation, où l'utilisateur révèle les informations originales, qui sont ensuite vérifiées par le réseau en les hachant à nouveau et en les comparant au hachage engagé initial. Si cela correspond, voilà ! Le réseau confirme la révélation, et le tour de magie est complet.

Grâce au système Commit-Reveal, les réseaux blockchain peuvent atteindre un nouveau niveau d'engagement dans des applications telles que les enchères, les systèmes de vote, et plus encore, que nous explorerons en détail dans les modules à venir.

La phase de validation

Alors que nous naviguons dans les profondeurs du schéma Commit-Reveal, notre premier arrêt est la ‘Phase de Commit.’ Dans cette phase, les utilisateurs “s'engagent” à une certaine valeur, mais ils le font d'une manière qui garde la valeur réelle secrète. Imaginez que vous avez un nombre secret en tête, mais au lieu de dire à tout le monde ce que c'est, vous le mettez dans une boîte verrouillée et la montrez à tout le monde. Ils savent que vous avez un nombre, mais ils ne savent pas ce que c'est. C'est ça, s'engager, dans le blockchain !

Maintenant, comment verrouillons-nous notre valeur secrète ? Dans le monde de la blockchain, nous utilisons quelque chose appelé une fonction de hachage pour cela. Une fonction de hachage est comme un mélangeur magique. Vous mettez votre valeur secrète, et il en ressort une version brouillée, connue sous le nom de hachage. Ce hachage est unique ; même un petit changement dans la valeur originale crée un hachage complètement différent. La beauté de cela est que c'est un processus unidirectionnel - une fois que la valeur est hachée, il n'y a pas de moyen facile de déterminer la valeur originale à partir du hachage. Donc, lorsque les utilisateurs s'engagent à partager leur valeur, ce qu'ils font réellement, c'est partager le hachage de leur valeur avec tout le monde sur la blockchain.

La phase de révélation

Après le suspense construit dans la phase de Commit, il est temps pour la grande révélation ! La phase de Reveal est celle où les valeurs engagées sont enfin dévoilées à tous les participants sur la blockchain. Pour revenir à notre analogie de la boîte verrouillée, c'est le moment où la boîte est ouverte, et tout le monde peut voir quel numéro vous aviez caché. Dans le monde de la blockchain, la révélation est un processus simple mais crucial qui offre transparence et équité dans diverses applications.

Lorsque l'utilisateur révèle sa valeur engagée, le réseau peut facilement vérifier son authenticité en hachant la valeur révélée et en la comparant au hachage original partagé lors de la phase de commit. Si les hachages correspondent, cela confirme que l'utilisateur n'a pas changé d'avis en cours de route. Ce processus de vérification simple mais puissant aide à maintenir un environnement de confiance où chacun respecte les règles. C'est comme avoir un arbitre dans un jeu, garantissant que tous les joueurs respectent les conditions convenues.

Implémentation de Commit-Reveal dans les Smart Contracts

Maintenant que nous avons déchiffré la magie du schéma Commit-Reveal, voyons comment il prend vie dans le monde de la blockchain à travers les smart contracts. Un smart contract est comme un contrat traditionnel, mais il est numérique et auto-exécutable. Imaginez un robot impartial qui s'assure automatiquement que toutes les parties respectent leurs accords, et vous avez l'idée d'un smart contract. C'est l'outil qui prend l'idée théorique de Commit-Reveal et la rend pratique dans le domaine numérique. Mettre en œuvre un schéma Commit-Reveal via un smart contract, c'est comme chorégraphier une danse où chaque pas suit un rythme défini. Passons en revue cette chorégraphie étape par étape.

Créer le contrat

Commencez par créer un contrat intelligent sur une plateforme blockchain comme Ethereum. Ce contrat contiendra les règles d'engagement pour le schéma de Commit-Reveal codées à l'intérieur.

La fonction Commit

Concevez une fonction de commit dans le contrat intelligent. Cette fonction permettra aux utilisateurs de soumettre leurs valeurs hachées (la phase de commit) au contrat.

Stockage des valeurs engagées

Au fur et à mesure que les utilisateurs engagent leurs valeurs, le contrat intelligent stockera ces hachages en toute sécurité sur la blockchain, en attendant la phase de révélation.

La fonction de révélation

Ensuite, dans le contrat intelligent, créez une fonction de révélation. Lorsque le moment sera venu, cette fonction permettra aux utilisateurs de révéler leurs valeurs d'origine.

Vérification et Validation

Lors de la révélation, le contrat intelligent vérifiera les valeurs révélées en les hachant et en les comparant avec les hachages initialement engagés. Si tout correspond, la révélation est validée.

Finalisation

Une fois que toutes les révélations sont collectées et vérifiées, le contrat intelligent peut automatiquement exécuter les étapes suivantes, que ce soit le comptage des votes, la détermination des gagnants des enchères ou toute autre action spécifique à l'application.

Audit et Test

Avant de déployer, testez minutieusement le contrat intelligent pour vous assurer qu'il fonctionne comme prévu et qu'il est sécurisé contre les potentielles exploitations. Grâce à ces étapes, le contrat intelligent orchestre la danse Commit-Reveal, garantissant un processus équitable et transparent.

Exemple de code

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// La fonction de commit permet aux utilisateurs de soumettre leurs valeurs hachéesfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Déjà engagé");    commits[msg.sender].hash = _hash;}// La fonction de reveal permet aux utilisateurs de révéler leurs valeurs originalesfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Déjà révélé");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Les hachages ne correspondent pas");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Une fonction d'exemple pour finaliser qui pourrait compter les votesfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Une fonction pour auditer l'état du contrat (juste un exemple, pas pratique pour de grands ensembles de données)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Explication:

  • Créer le contrat : Le contrat CommitReveal est créé.
  • La fonction Commit : La fonction de validation accepte une valeur hachée (_hash) et l'enregistre contre l'adresse de l'expéditeur.
  • Stockage des valeurs engagées :Les valeurs hachées sont stockées dans une mappage appelé commits.
  • La fonction de révélation : La fonction de révélation permet aux utilisateurs de soumettre leur valeur originale (_value) et un sel (_salt). Elle vérifie que le hachage de ceux-ci correspond au hachage initialement engagé.
  • Vérification et Validation : Cela se fait dans la fonction de révélation en comparant les hachages.
  • Finalisation : La fonction tallyVotes est un exemple simplifié de la façon dont vous pourriez compter les votes. Elle itère à travers toutes les adresses possibles (impraticable pour de grands ensembles de données) et additionne les valeurs révélées.
  • Audit et Test :La fonction d'audit est un exemple très simpliste de la façon dont vous pourriez vérifier l'état du contrat.

Ceci est un exemple très simplifié et manque de nombreuses considérations pratiques dont vous auriez besoin pour un système de production (comme prévenir les débordements, optimiser l'utilisation du gaz, gérer de grands ensembles de données et ajouter un contrôle d'accès approprié). La fonction de finalisation, en particulier, est impraticable en raison de l'itération sur toutes les adresses possibles et nécessiterait un design différent dans un scénario du monde réel. Ce code est destiné comme point de départ et outil éducatif, pas comme solution prête pour la production.

Cas d'utilisation du schéma Commit-Reveal dans la Blockchain

Amélioration des plateformes d'enchères

Les enchères en ligne sont l'une des applications essentielles du schéma Commit-Reveal. Pour empêcher les autres d'utiliser les montants des enchères comme levier, les participants peuvent soumettre leurs offres de manière secrète pendant la phase de commit. Lorsque la période d'enchères se termine, la phase de révélation commence, permettant aux participants de divulguer leurs offres. La plus haute offre valide est déterminée, garantissant un processus d'enchères juste et compétitif.

Créer des systèmes de vote équitables

Les systèmes de vote peuvent bénéficier considérablement du schéma Commit-Reveal, en particulier dans des scénarios exigeant l'anonymat et l'honnêteté des électeurs. Dans cette configuration, lors des élections ou de tout événement de vote, les électeurs s'engagent sur leurs choix pendant la phase d'engagement sans les révéler aux autres, garantissant ainsi l'intégrité et le secret des votes. Une fois la période de vote terminée, la phase de révélation commence, permettant aux électeurs de divulguer leurs votes. Ceux-ci sont ensuite comptabilisés pour déterminer le résultat, favorisant un processus de vote équitable et transparent.

Contrats à soumission scellée

Dans les contrats à soumission scellée, les soumissionnaires soumettent leurs offres de manière cachée en utilisant le schéma Commit-Reveal. Ce processus garantit qu'aucun des soumissionnaires ne connaît les montants des offres des autres, favorisant une concurrence équitable. Après la période de soumission des offres, la phase de révélation a lieu, et le contrat est attribué au soumissionnaire qualifié ayant la meilleure offre.

Scénarios de jeu

Le système Commit-Reveal trouve une application amusante dans des scénarios de jeu tels qu'une version numérique de Pierre, Papier, Ciseaux. Les joueurs s'engagent sur leurs choix sans les révéler, garantissant un jeu équitable. Une fois que les deux joueurs ont fait leur engagement, la phase de révélation suit, déterminant le gagnant en fonction des choix effectués.

Atténuer les problèmes de préemption

Dans les environnements blockchain, le front-running est une préoccupation où des acteurs malveillants pourraient potentiellement bénéficier de la connaissance des transactions en attente. Le schéma Commit-Reveal aide à atténuer de tels problèmes en cachant initialement les détails des transactions. Au moment où la phase de révélation arrive, il est trop tard pour les acteurs malveillants d'agir sur l'information, préservant ainsi l'intégrité des transactions.

Architectures de Commit-and-Reveal à faible latence

Des architectures plus récentes comme F3B ont évolué pour réduire les frais généraux associé aux schémas traditionnels de Commit-Reveal. F3B minimise l'écriture de données sur le Blockchain, offrant une architecture Commit-and-Reveal à faible latence. Ce développement est remarquable car il signifie l'optimisation et l'innovation continues dans les schémas de Commit-Reveal, les rendant plus efficaces pour des applications réelles.

Génération de nombres aléatoires

Dans les environnements blockchain, générer des nombres aléatoires peut être un défi en raison de la nature déterministe des protocoles blockchain. Le schéma Commit-Reveal sert d'alternative décentralisée pour générer des nombres aléatoires sur la blockchain Ethereum. Par exemple, Randao, une implémentation RNG Commit-Reveal, utilise des flux de données publics et incite à la participation à la génération de nombres aléatoires.

Conclusion

Alors que ce regard intéressant sur le schéma Commit-Reveal touche à sa fin, il est important de considérer comment ce mécanisme simple mais puissant aide à construire la confiance et l'ouverture dans les applications blockchain. Nous avons eu un aperçu de la façon dont la technologie blockchain pourrait changer de nombreux domaines en rendant les enchères équitables, les systèmes de vote honnêtes et les scénarios de jeu plus créatifs, entre autres, grâce au schéma Commit-Reveal. Le voyage ne s'arrête pas ici ; la nature en constante évolution de la technologie blockchain présente de nouveaux horizons à explorer. Armé des connaissances acquises au cours de ce cours, vous êtes bien positionné pour plonger plus profondément dans la blockchain, explorer ses possibilités infinies et contribuer à façonner un avenir numérique transparent, équitable et décentralisé.

Auteur : Piero
Traduction effectuée par : Cedar
Examinateur(s): Matheus、Edward、Ashley He
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!