Ověření losování

Acrafto Team Bezpečnost
Aktualizováno

Vložte kód certifikátu pro kontrolu.

Vše běží ve vašem prohlížeči. Žádné číslo nikdy neopustí vaše zařízení.

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

  1. Nastavte rozsah a kolik čísel potřebujete.
  2. 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.
  3. Uzavřete příjem přihlášek a poté proveďte losování.
  4. 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ě”

Časté dotazy (FAQ)

Znamená platný certifikát, že losování bylo náhodné? Znamená to, že losování nebylo po vytvoření závazku pozměněno. Zda bylo nepředvídatelné, závisí na tom, kdy byl otisk závazku zveřejněn. Zveřejněný před losováním, veřejně, s časovým razítkem — pak ano, organizátor se tím zavázal. Zveřejněný až poté nedokazuje o nepředvídatelnosti nic.
Nahrává se můj certifikát někam? Ne. Kontrola probíhá výhradně ve vašem prohlížeči, v JavaScriptu. Nic neopouští vaše zařízení a neexistuje žádný server, který by to mohl zaznamenat.
Co znamená „otisk závazku nesouhlasí"? Seed nebo nastavení v certifikátu nejsou ty, ke kterým byl učiněn závazek. Někdo certifikát upravil, nebo ho vygeneroval jiný nástroj.
Co znamená „seed nevytváří tato čísla"? Otisk závazku je neporušený, ale seznam čísel byl dodatečně změněn. Nástroj vám ukáže čísla, která seed skutečně vytváří, abyste viděli rozdíl.
Můžu ověřit losování z jiného webu? Jen pokud vytvořilo certifikát v tomto formátu. Kontrola závisí na přesném algoritmu generátoru — samotný seed nemá bez znalosti toho, jak byl rozveden do čísel, žádný význam.
Co když je certifikát velmi dlouhý? Délka závisí na tom, kolik čísel bylo vylosováno, protože certifikát nese celý výsledek. Losování šesti čísel dá krátký kód, losování deseti tisíc dlouhý. Oba se ověřují stejně.

Uvítal bych, kdybyste tyto stránky sdíleli s přáteli, uložili si je do záložek nebo na ně odkazovali. Děkuji! 🙏