Mécanique

La graine scellée : pourquoi son empreinte est publiée avant la première participation

· · Par Yuval Abudarham

Un tirage que vos participants recalculent eux-mêmes

Graine publiée avant le tirage, aléa public drand, vidéo partageable. Gratuit pour les participants.

Créer un compteVérifier un tirage existant

Avant qu'un giveaway DrawSeal n'accepte sa première participation, une valeur est déjà publiée : l'empreinte d'un nombre que personne ne connaît encore. C'est la pièce la plus simple du dispositif, et celle qui ferme la porte la plus large.

Ce qu'est une graine

Un tirage a besoin d'une valeur de départ — une graine. À partir d'elle et d'une méthode connue, le calcul est entièrement déterminé : la même graine, la même liste et le même hasard donnent toujours le même gagnant.

Cette propriété est ce qui rend un tirage rejouable. Elle est aussi ce qui le rend dangereux si la graine reste libre : celui qui la choisit après avoir vu la liste choisit le gagnant.

L'empreinte, et les deux propriétés qui comptent

À la programmation du tirage, DrawSeal publie non pas la graine, mais son empreinte : `sha256(graine)`.

Une fonction de hachage a deux propriétés utiles ici :

  • elle ne se remonte pas : de l'empreinte, on ne déduit pas la graine. Publier l'une ne révèle rien de l'autre, et le tirage reste imprévisible ;
  • elle ne se contourne pas : il est hors de portée de fabriquer une seconde graine produisant la même empreinte. Celui qui a publié l'empreinte est donc lié à sa graine.

L'engagement est pris avant l'ouverture, et il ne peut plus être repris. À la révélation, n'importe qui recalcule `sha256(graine)` et compare à ce qui avait été publié : les deux correspondent, ou le tirage est invalide.

Ce que l'empreinte n'empêche pas, à elle seule

C'est le point où beaucoup de dispositifs « provably fair » s'arrêtent, et c'est insuffisant.

L'empreinte lie la graine. Elle ne dit rien de la liste ni du hasard employé. Un organisateur engagé sur sa graine peut encore :

  • ajouter ou retirer un participant après avoir vu ce que la graine produirait ;
  • attendre, parmi plusieurs valeurs de hasard possibles, celle qui lui convient.

D'où les deux autres engagements du dispositif : le numéro de round drand annoncé à l'avance — donc quel hasard, et pas un autre — et le sceau de la liste publié à la clôture, avant que ce round n'existe.

Les trois engagements ne se remplacent pas. Ils ferment trois portes différentes, et il faut les trois.

Le calendrier, qui est tout

MomentCe qui est publiéCe que cela ferme
Programmation`sha256(graine)` + round drand viséChanger de graine, changer de hasard
Clôture des inscriptionsEmpreinte de la liste scelléeModifier le vivier
Heure du tirageLa valeur drand paraît publiquement
AprèsLa graine est révéléeVérification complète

Ce tableau se lit dans un seul sens : chaque ligne est publiée avant que la suivante ne devienne connaissable. C'est cet ordre, et non la cryptographie, qui porte la garantie.

La fenêtre de gel

Un détail pratique qui complète le dispositif : dans les vingt-quatre heures qui précèdent le tirage, le règlement du giveaway n'est plus modifiable. Un engagement pris sur la graine perdrait son sens si les conditions qu'il accompagne pouvaient être réécrites la veille.

Ce qu'il faut retenir

L'empreinte `sha256(graine)` est publiée avant la première participation. Elle ne révèle pas la graine — le tirage reste imprévisible — et interdit d'en présenter une autre ensuite. Seule, elle ne suffit pas : elle n'empêche ni de modifier la liste, ni de choisir parmi plusieurs hasards possibles. Elle n'a de valeur que combinée au round drand annoncé et au sceau de la liste publié à la clôture.

FAQ

Que se passe-t-il si la graine révélée ne correspond pas à l'empreinte ?

Le tirage est invalide, et cela se constate sans discussion : le contrôle est une comparaison de deux chaînes de caractères. C'est un test binaire, que le vérificateur exécute en premier.

L'organisateur connaît-il la graine avant le tirage ?

Elle est détenue par la plateforme, pas par l'organisateur, et elle n'est révélée qu'après. Mais la question n'a pas besoin d'être tranchée par la confiance : même en la connaissant, on ne peut rien en faire, puisque le hasard drand employé n'existe pas encore.

Pourquoi ne pas publier directement la graine ?

Parce que le tirage deviendrait prévisible : n'importe qui pourrait calculer à l'avance qui gagne, et donc décider de participer ou non en connaissance de cause. L'empreinte donne l'engagement sans donner l'information.

sha256 est-il encore sûr ?

Pour cet usage, oui, et largement. La propriété requise est la résistance à la seconde préimage — fabriquer une graine différente ayant la même empreinte —, pour laquelle aucune attaque praticable n'est connue.

Essayer