Overenie žrebovania
Na overenie vložte kód certifikátu.
Čo tento nástroj kontroluje
Niekto zorganizoval žrebovanie a dal vám kód certifikátu. Táto stránka vám povie, či je ten kód vnútorne konzistentný — či čísla naozaj vychádzajú zo semienka, ktoré organizátor zverejnil, a či odtlačok záväzku naozaj pokrýva toto semienko a tieto nastavenia.
Všetko beží vo vašom prehliadači. Certifikát sa nikam neposiela.
Dve kontroly
Odtlačok záväzku. Certifikát nesie hash SHA-256 nad semienkom a nastaveniami žrebovania. Táto stránka tento hash prepočíta. Ak sa nezhoduje s tým, ktorý je uložený v certifikáte, semienko alebo nastavenia boli po vytvorení záväzku zmenené.
Prehratie. Generátor so semienkom je plne deterministický, takže rovnaké semienko a rovnaké nastavenia vždy vyprodukujú rovnaké čísla. Táto stránka žrebovanie znovu spustí a porovná výsledok. Ak sa čísla líšia, výsledok bol upravený.
Certifikát prejde iba vtedy, keď uspejú obe kontroly.
Čo úspešná kontrola dokazuje a čo nie
Dokazuje, že organizátor po tom, čo sa zaviazal, potichu nezmenil semienko, nastavenia ani čísla.
Nedokazuje, že semienko bolo nepredvídateľné. Ak si organizátor vybral semienko sám a odtlačok záväzku pred žrebovaním nikdy nezverejnil, mohol vyskúšať veľa semienok a ponechal si to, ktoré sa mu páčilo. Odtlačok záväzku má zmysel iba vtedy, keď bol zverejnený pred žrebovaním, niekde s časovou pečiatkou — v príspevku, komentári, správe.
Presne to je zmyslom kroku so záväzkom: mení „verte mi“ na niečo, čo si ktokoľvek môže dodatočne overiť.
Ako zorganizovať žrebovanie, ktoré si ľudia môžu overiť
- Nastavte si rozsah a koľko čísel potrebujete.
- Stlačte Vytvoriť odtlačok záväzku. Zverejnite hash, ktorý dostanete — v príspevku o súťaži, v komentári, kdekoľvek, kde ho účastníci uvidia s časovou pečiatkou.
- Uzavrite prihlášky a potom žrebujte.
- Zverejnite semienko a certifikát. Ktokoľvek si ho môže sem vložiť.
Ak vynecháte krok 2, certifikát je iba dekorácia. Práve zverejnenie odtlačku záväzku ako prvého mu dáva váhu.
Prečo samotné semienko nestačí
Semienko je len text. Čísla vyprodukuje iba vtedy, keď viete, ako sa z neho odvodili — ktorý algoritmus, aký rozsah, koľko čísel, či boli povolené opakovania.
Preto odtlačok záväzku pokrýva semienko aj nastavenia. Bez toho by organizátor mohol zverejniť semienko a potom dodatočne tvrdiť, že žrebovanie prebehlo v inom rozsahu a že skutočným výsledkom bola úplne iná sada čísel. Záväzok tieto dvere zatvára.
Prečo sa odtlačok nedá sfalšovať
Hash SHA-256 je jednosmerná funkcia: ľahko sa počíta dopredu a neexistuje známy spôsob, ako ho spočítať odzadu. Práve to robí záväzok záväzným.
Aby mohol organizátor podviesť, musel by zverejniť jeden odtlačok a neskôr odhaliť iné semienko, ktoré dáva rovnaký hash — takzvaný útok druhého vzoru (second-preimage attack). Proti SHA-256 sa taký útok zatiaľ nikomu nepodarilo nájsť a priestor možností robí hrubú silu bezvýznamnou: 2²⁵⁶ je viac než odhadovaný počet atómov v pozorovateľnom vesmíre.
Rovnako nemôže nenápadne posunúť výsledok. Zmena jediného znaku semienka zmení približne polovicu bitov hashu, a to nepredvídateľne. Neexistuje spôsob, ako hľadať semienko, ktoré by zároveň sedelo na zverejnený odtlačok aj produkovalo vhodného výhercu, pretože by ste najprv museli poznať hash a ten závisí od úplne všetkého.
Odtlačok teda úplne pripína semienko aj nastavenia. Jediné, čo nepripína, je kedy bol zverejnený — a preto polovicu práce odvádza časová pečiatka na vašom príspevku.
Kde na overiteľných žrebovaniach záleží
- Darčekové akcie a súťaže — pýtajú sa práve tí, ktorí nevyhrali
- Výber v komunite a DAO — kto dostane miesto, grant alebo rolu
- Výskum — plán výberu vzorky, ktorý si recenzent môže znovu spustiť a overiť
- Súťaže o ceny s právnym rizikom — niektoré jurisdikcie vyžadujú preukázateľný postup, nielen tvrdenie
- Čokoľvek, čomu musí uveriť cudzí človek — čím vzdialenejšie publikum, tým menej samo osebe váži „vyžrebovali sme to náhodne“