Ověření losování
Vložte kód certifikátu pro kontrolu.
Co tento nástroj kontroluje
Někdo provedl losování a dal vám kód certifikátu. Tato stránka vám řekne, zda je tento kód vnitřně konzistentní — zda čísla skutečně vycházejí ze seedu, který organizátor zveřejnil, a zda otisk závazku skutečně pokrývá tento seed a tato nastavení.
Vše běží ve vašem prohlížeči. Certifikát se nikam neodesílá.
Dvě kontroly
Otisk závazku. Certifikát nese hash SHA-256 nad seedem a nastavením losování. Tato stránka tento hash přepočítá. Pokud nesouhlasí s tím uloženým v certifikátu, seed nebo nastavení byly po vytvoření závazku pozměněny.
Přehrání. Generátor se seedem je zcela deterministický, takže stejný seed a stejná nastavení vždy vytvoří stejná čísla. Tato stránka losování znovu spustí a porovná výsledek. Pokud se čísla liší, výsledek byl upraven.
Certifikát projde pouze tehdy, když obě kontroly uspějí.
Co úspěšná kontrola dokazuje a co ne
Dokazuje, že organizátor po vytvoření závazku potichu nezměnil seed, nastavení ani čísla.
Nedokazuje, že seed byl nepředvídatelný. Pokud si organizátor seed vybral sám a otisk závazku před losováním nezveřejnil, mohl vyzkoušet mnoho seedů a ponechat ten, který se mu líbil. Otisk závazku má smysl jen tehdy, když byl zveřejněn před losováním, někde s časovým razítkem — v příspěvku, komentáři, zprávě.
Přesně to je smyslem kroku se závazkem: mění „věřte mi” na něco, co může kdokoli dodatečně ověřit.
Jak provést losování, které lidé mohou ověřit
- Nastavte rozsah a kolik čísel potřebujete.
- Stiskněte Vytvořit otisk závazku. Zveřejněte získaný hash — v příspěvku o soutěži, v komentáři, kdekoli, kde ho účastníci uvidí s časovým razítkem.
- Uzavřete příjem přihlášek a poté proveďte losování.
- Zveřejněte seed a certifikát. Kdokoli ho sem může vložit.
Přeskočení kroku 2 dělá z certifikátu jen dekoraci. Váhu mu dává právě zveřejnění otisku závazku jako první.
Proč samotný seed nestačí
Seed je jen text. Čísla vytvoří teprve tehdy, když víte, jak byl rozveden do jejich podoby — kterým algoritmem, v jakém rozsahu, kolik čísel, zda byla povolena opakování.
Proto otisk závazku pokrývá seed i nastavení. Bez toho by organizátor mohl zveřejnit seed a poté tvrdit, že losování proběhlo v jiném rozsahu a že skutečným výsledkem byla jiná sada čísel. Závazek tomu zabraňuje.
Proč otisk nejde zfalšovat
Hash SHA-256 je jednosměrná funkce: snadno se počítá dopředu a neexistuje známý způsob, jak ji spočítat pozpátku. Právě to dělá závazek závazným.
Aby organizátor podváděl, musel by zveřejnit jeden otisk a později odhalit jiný seed, který vytváří stejný hash — útok na druhý vzor (second-preimage attack). Proti SHA-256 takový nikdo nenašel a prostor možností dělá hrubou sílu bezvýznamnou: 2²⁵⁶ je víc, než je odhadovaný počet atomů v pozorovatelném vesmíru.
Stejně tak nemůže výsledek nenápadně posunout. Změna jediného znaku seedu změní zhruba polovinu bitů hashe, a to nepředvídatelně. Nelze hledat seed, který by zároveň odpovídal zveřejněnému otisku a vytvářel vhodného výherce, protože byste museli nejdřív zafixovat hash — a ten závisí na úplně všem.
Otisk tedy jednoznačně určuje seed i nastavení. Jediné, co neurčuje, je kdy byl zveřejněn — a proto polovinu práce odvádí časové razítko na vašem příspěvku.
Kde na ověřitelných losováních záleží
- Giveaway a soutěže — ptají se hlavně ti, kdo nevyhráli
- Výběr v komunitě a DAO — kdo dostane místo, grant nebo roli
- Výzkum — plán vzorkování, který si recenzent může sám přehrát a ověřit
- Propagační akce s právním dopadem — některé jurisdikce vyžadují prokazatelnou metodu, ne jen tvrzení
- Cokoli, čemu musí věřit cizí člověk — čím vzdálenější publikum, tím míň samo o sobě znamená „vylosovali jsme to náhodně”