Cryptomonnaie

Explorer les schémas de validation-validation sur Ethereum – The Startup

Explorer les schémas de validation-validation sur Ethereum - The Startup


0*J4yTapxOotqOhwiL - Explorer les schémas de validation-validation sur Ethereum - The Startup

Ethereum est une blockchain publique, et en tant que telle, il peut être difficile de gérer des données privées. Il existe plusieurs applications qui nécessitent que les valeurs soient masquées pour fonctionner correctement.

Par exemple, dans un jeu traditionnel de ciseaux à papier, les deux joueurs choisissent des valeurs secrètes, et ils partagent leurs valeurs pour voir qui gagne. La difficulté de cette approche sur la blockchain est que les deux joueurs ne peuvent pas partager leurs valeurs en même temps, et le joueur qui passe en premier doit diffuser publiquement leur valeur, ce qui signifie que leur adversaire peut agir en conséquence. Heureusement pour nous, les schémas d'engagement sont une excellente solution.

Un schéma d'engagement est un algorithme cryptographique utilisé pour permettre à quelqu'un de valider une valeur tout en la cachant aux autres avec la possibilité de la révéler plus tard. Les valeurs d'un schéma d'engagement sont contraignantes, ce qui signifie que personne ne peut les modifier une fois engagé. Le schéma comporte deux phases: une phase de validation dans laquelle une valeur est choisie et spécifiée, et une phase de révélation dans laquelle la valeur est révélée et vérifiée.

Pour mieux comprendre, considérez cette visualisation simplifiée. Imaginez Alice, l'expéditeur, placer un message dans une boîte verrouillée et le remettre à Bob, le destinataire. Bob ne peut pas accéder au message car il est verrouillé dans la boîte, et Alice ne peut pas changer le message car il est en sa possession, mais quand Alice veut révéler le message, elle peut déverrouiller la boîte et montrer le message à Bob.

Voyons comment construire correctement un jeu de ciseaux à papier de roche sur Ethereum en utilisant un schéma d'engagement.

Commençons par nos valeurs de constructeur et d'initialisation. Nous aurons besoin de choix pour les joueurs à sélectionner - rock, papier et ciseaux. Nous aurons également des étapes afin que les fonctions ne puissent s'exécuter que dans leurs phases respectives. Enfin, nous allons créer une structure pour représenter les engagements des joueurs, ainsi que certaines valeurs d'initialisation qui seront définies dans le constructeur, certaines variables d'état et les événements.

Constructeur et valeurs d'initialisation

Ensuite, nous allons créer une fonction de validation, en commençant par les vérifications. Tout d'abord, nous allons exiger la fonction à exécuter uniquement pendant l'une des deux étapes de validation. Ensuite, nous pouvons nous assurer que la valeur appropriée a été envoyée avec la transaction et renvoyer les fonds supplémentaires. Une fois nos vérifications effectuées, nous pouvons enregistrer l’engagement, émettre le Commettre événement et passer à l'étape suivante.

La fonction commit

Passons maintenant à la fonction de révélation, en commençant par les vérifications. Bien exiger que cette fonction ne s'exécute que pendant l'une des étapes de révélation et n'accepte que des choix valides. Ensuite, nous trouverons les données du joueur afin que nous puissions vérifier leur hachage d'engagement pour déterminer si elles sont valides. Si leur hachage est valide, nous le stockerons, tirez le Révéler événement et passer à l'étape suivante.

La fonction de révélation

Enfin, nous avons la fonction de distribution, où nous allons déterminer le gagnant et le payer. Comme toujours, nous allons exiger que la fonction ne s'exécute que si nous sommes dans la phase de distribution, ou si la phase de révélation est épuisée. Ensuite, nous calculerons les paiements et déterminerons le gagnant en examinant tous les résultats possibles. Une fois que nous aurons déterminé le gagnant, nous transférerons les fonds à leur adresse, émettrons le Paiement et réinitialisez l'état de la prochaine partie.

La fonction de distribution

Maintenant que nous avons terminé notre contrat, examinons-le en entier.

Notre contrat est une fourchette de ce contrat.

Les schémas d'engagement sont un excellent moyen de cacher une valeur sur Ethereum tout en conservant la preuve de son engagement. Pour en savoir plus sur les régimes d'engagement, consultez cet exemple d'enchère à l'aveugle dans les documents Solidity ou lisez cet excellent article d'Austin Thomas Griffith.

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer