Verificér en tilfældig trækning
Indsæt en certifikatkode for at tjekke den.
Hvad dette værktøj tjekker
Nogen har foretaget en trækning og givet dig en certifikatkode. Denne side fortæller dig, om koden er internt konsistent — om tallene virkelig kommer fra den startværdi, som arrangøren offentliggjorde, og om fingeraftrykket virkelig dækker den startværdi og de indstillinger.
Alt kører i din browser. Certifikatet bliver aldrig sendt nogen steder hen.
De to tjek
Fingeraftryk. Certifikatet indeholder en SHA-256-hash over startværdien og trækningens indstillinger. Denne side genberegner den hash. Hvis den ikke stemmer overens med den, der er gemt i certifikatet, blev startværdien eller indstillingerne ændret efter forpligtelsen blev indgået.
Genafspilning. Generatoren med startværdi er fuldstændig deterministisk, så den samme startværdi og de samme indstillinger giver altid de samme tal. Denne side kører trækningen igen og sammenligner. Hvis tallene er forskellige, er resultatet blevet redigeret.
Et certifikat består kun, når begge tjek består.
Hvad et bestået tjek beviser — og ikke beviser
Det beviser, at arrangøren ikke i det skjulte ændrede startværdien, indstillingerne eller tallene, efter de blev forpligtet.
Det beviser ikke, at startværdien var uforudsigelig. Hvis arrangøren selv valgte startværdien og aldrig offentliggjorde fingeraftrykket før trækningen, kunne de have prøvet mange startværdier og beholdt den, de kunne lide. Fingeraftrykket betyder kun noget, når det blev offentliggjort før trækningen, et sted med et tidsstempel — et opslag, en kommentar, en besked.
Det er hele pointen med forpligtelsestrinnet: det gør “stol på mig” til noget, alle kan tjekke bagefter.
Sådan laver du en trækning, folk kan verificere
- Angiv dit interval, og hvor mange tal du har brug for.
- Tryk på Opret fingeraftryk. Offentliggør den hash, du får — i konkurrenceopslaget, i en kommentar, hvor som helst deltagerne kan se det med et tidsstempel.
- Luk for tilmeldinger, og træk derefter.
- Offentliggør startværdien og certifikatet. Alle kan indsætte det her.
Springer du trin 2 over, bliver certifikatet rent dekorativt. Det er det, at offentliggøre fingeraftrykket først, der giver det vægt.
Hvorfor en startværdi alene ikke er nok
En startværdi er bare tekst. Den producerer først tal, når man ved, hvordan den blev udvidet til dem — hvilken algoritme, hvilket interval, hvor mange tal, om gentagelser var tilladt.
Det er derfor, fingeraftrykket dækker både startværdien og indstillingerne. Uden det kunne en arrangør offentliggøre en startværdi og bagefter hævde, at trækningen kørte over et andet interval, og at et andet sæt tal var det rigtige resultat. Forpligtelsen lukker den dør.
Hvorfor et fingeraftryk ikke kan forfalskes
En SHA-256-hash er en envejsfunktion: let at beregne fremad, og der findes ingen kendt måde at køre den baglæns på. Det er det, der gør forpligtelsen bindende.
For at snyde skulle en arrangør offentliggøre ét fingeraftryk og bagefter afsløre en anden startværdi, der giver samme hash — et second-preimage-angreb. Ingen har fundet et mod SHA-256, og søgerummet gør brute force meningsløst: 2²⁵⁶ er mere end det anslåede antal atomer i det observerbare univers.
Det, de heller ikke kan, er at skubbe resultatet i en bestemt retning. Ændrer man blot ét tegn i startværdien, ændres omkring halvdelen af hashens bits, uforudsigeligt. Der er ingen måde at søge efter en startværdi, der både matcher et offentliggjort fingeraftryk og giver en bekvem vinder, fordi man først skulle fastlægge hashen, og hashen afhænger af alt.
Så fingeraftrykket fastlåser startværdien og indstillingerne helt. Det eneste, det ikke kan fastlåse, er hvornår det blev offentliggjort — hvilket er grunden til, at tidsstemplet på dit opslag udfører halvdelen af arbejdet.
Hvor verificerbare trækninger betyder noget
- Giveaways og konkurrencer — det er dem, der ikke vandt, der spørger
- Udvælgelse i fællesskaber og DAO’er — hvem der får en plads, en bevilling, en rolle
- Forskning — en stikprøveplan en reviewer kan køre igen og bekræfte
- Præmiekampagner med juridisk risiko — nogle jurisdiktioner kræver en påviselig metode, ikke bare en påstand
- Alt, hvor en fremmed skal tro på det — jo længere væk publikummet er, jo mindre er “vi trak tilfældigt” værd i sig selv