Provjera nasumičnog izvlačenja
Zalijepi kod certifikata da ga provjeriš.
Šta ova alatka provjerava
Neko je proveo izvlačenje i dao ti kod certifikata. Ova stranica ti kaže da li je taj kod interno dosljedan — da li brojevi zaista dolaze iz seeda koji je organizator objavio, i da li fingerprint zaista pokriva taj seed i te postavke.
Sve se izvršava u tvom pregledniku. Certifikat se nikad nikamo ne šalje.
Dvije provjere
Fingerprint. Certifikat nosi SHA-256 hash preko seeda i postavki izvlačenja. Ova stranica ponovo izračunava taj hash. Ako se ne poklapa s onim sačuvanim u certifikatu, seed ili postavke su izmijenjeni nakon što je zavez napravljen.
Ponovno izvlačenje. Generator sa seedom je potpuno determinističan, pa isti seed i iste postavke uvijek proizvode iste brojeve. Ova stranica ponovo provodi izvlačenje i upoređuje. Ako se brojevi razlikuju, rezultat je izmijenjen.
Certifikat prolazi samo kad obje provjere prođu.
Šta uspješna provjera dokazuje, a šta ne
Dokazuje da organizator nije tiho izmijenio seed, postavke ili brojeve nakon što se na njih obavezao.
Ne dokazuje da je seed bio nepredvidiv. Ako je organizator sam odabrao seed i nikad prije izvlačenja nije objavio fingerprint, mogao je isprobati mnogo seedova i zadržati onaj koji mu se svidio. Fingerprint znači nešto samo kad je objavljen prije izvlačenja, negdje s vremenskom oznakom — u objavi, komentaru, poruci.
To je cijela poenta koraka zaveza: pretvara “vjeruj mi” u nešto što svako može naknadno provjeriti.
Provođenje izvlačenja koje ljudi mogu provjeriti
- Postavi svoj raspon i koliko brojeva ti treba.
- Pritisni Kreiraj fingerprint. Objavi hash koji dobiješ — u objavi nagradne igre, u komentaru, gdje god učesnici mogu vidjeti s vremenskom oznakom.
- Zatvori prijave, pa izvuci.
- Objavi seed i certifikat. Svako ga može zalijepiti ovdje.
Preskakanje koraka 2 čini certifikat dekorativnim. Objavljivanje fingerprinta prvo je ono što mu daje težinu.
Zašto sam seed nije dovoljan
Seed je samo tekst. Proizvodi brojeve tek kad znaš kako je proširen u njih — koji algoritam, koji raspon, koliko brojeva, da li su ponavljanja bila dozvoljena.
Zato fingerprint pokriva seed i postavke. Bez toga bi organizator mogao objaviti seed, a zatim naknadno tvrditi da je izvlačenje provedeno na drugom rasponu i da je neki drugi skup brojeva pravi rezultat. Zavez zatvara ta vrata.
Zašto se fingerprint ne da falsifikovati
SHA-256 hash je jednosmjerna funkcija: lako se računa unaprijed, a ne postoji poznat način da se izračuna unazad. Upravo to čini zavez obavezujućim.
Da bi prevario, organizator bi morao objaviti jedan fingerprint, a kasnije otkriti drugačiji seed koji proizvodi isti hash — napad drugog predslika (second-preimage attack). Niko nije pronašao takav protiv SHA-256, a prostor pretrage čini grubu silu besmislenom: 2²⁵⁶ je više od procijenjenog broja atoma u vidljivom univerzumu.
Ono što također ne može uraditi jeste da malo pomjeri rezultat. Promjena jednog jedinog znaka seeda mijenja otprilike polovinu bitova hasha, nepredvidivo. Ne postoji način da se traži seed koji istovremeno odgovara objavljenom fingerprintu i proizvodi pogodnog pobjednika, jer bi prvo morao fiksirati hash, a hash zavisi od svega.
Dakle, fingerprint u potpunosti fiksira seed i postavke. Jedino što ne fiksira jeste kada je objavljen — zato vremenska oznaka na tvojoj objavi obavlja polovinu posla.
Gdje su provjerljiva izvlačenja bitna
- Nagradne igre i takmičenja — učesnici koji nisu pobijedili su ti koji pitaju
- Odabir u zajednici i DAO-u — biranje ko dobija mjesto, grant, ulogu
- Istraživanje — plan uzorkovanja koji recenzent može ponovo pokrenuti i potvrditi
- Nagradne promocije s pravnom izloženošću — neke jurisdikcije zahtijevaju dokaziv metod, ne samo tvrdnju
- Sve u šta stranac mora vjerovati — što je publika udaljenija, to manje vrijedi samo “izabrali smo nasumično”