Overenie žrebovania

Acrafto Team Bezpečnosť
Aktualizované

Na overenie vložte kód certifikátu.

Všetko beží vo vašom prehliadači. Žiadne číslo nikdy neopustí vaše zariadenie.

Č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ť

  1. Nastavte si rozsah a koľko čísel potrebujete.
  2. 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.
  3. Uzavrite prihlášky a potom žrebujte.
  4. 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“

Často kladené otázky (FAQ)

Znamená platný certifikát, že žrebovanie bolo náhodné? Znamená to, že žrebovanie nebolo po vytvorení záväzku zmenené. Či bolo nepredvídateľné, závisí od toho, kedy bol odtlačok záväzku zverejnený. Ak bol zverejnený pred žrebovaním, verejne, s časovou pečiatkou — potom áno, organizátor bol viazaný. Ak bol zverejnený až potom, o nepredvídateľnosti to nič nedokazuje.
Nahráva sa môj certifikát niekam? Nie. Kontrola beží celá vo vašom prehliadači, v JavaScripte. Nič neopustí vaše zariadenie a neexistuje server, ktorý by to mohol zaznamenať.
Čo znamená „odtlačok záväzku sa nezhoduje“? Semienko alebo nastavenia v certifikáte nie sú tie, ku ktorým bol urobený záväzok. Niekto certifikát upravil, alebo ho vytvoril iný nástroj.
Čo znamená „semienko neprodukuje tieto čísla“? Odtlačok záväzku je neporušený, ale zoznam čísel bol dodatočne zmenený. Nástroj vám ukáže čísla, ktoré semienko naozaj produkuje, aby ste videli rozdiel.
Môžem overiť žrebovanie z inej stránky? Iba ak vytvorilo certifikát v tomto formáte. Kontrola závisí od presného algoritmu generátora — samotné semienko nemá zmysel bez toho, aby ste vedeli, ako sa z neho čísla odvodili.
Čo ak je certifikát veľmi dlhý? Dĺžka závisí od počtu vyžrebovaných čísel, pretože certifikát nesie celý výsledok. Žrebovanie šiestich čísel dá krátky kód, žrebovanie desaťtisíc dá dlhý. Oba sa overujú rovnako.

Ocenil by som, keby ste tieto stránky zdieľali s priateľmi, uložili si ich do záložiek alebo na ne odkazovali. Ďakujem! 🙏