Nejaušas izlozes pārbaude
Ielīmējiet sertifikāta kodu, lai to pārbaudītu.
Ko šis rīks pārbauda
Kāds veica izlozi un iedeva jums sertifikāta kodu. Šī lapa pasaka, vai šis kods ir iekšēji konsekvents — vai skaitļi tiešām nāk no seed, ko organizators publicēja, un vai fingerprint tiešām aptver šo seed un šos iestatījumus.
Viss notiek jūsu pārlūkā. Sertifikāts nekad netiek nosūtīts nekur.
Divas pārbaudes
Fingerprint. Sertifikāts satur SHA-256 jaucējvērtību par seed un izlozes iestatījumiem. Šī lapa pārrēķina šo jaucējvērtību. Ja tā nesakrīt ar sertifikātā saglabāto, seed vai iestatījumi pēc apņemšanās ir mainīti.
Atkārtojums. Ģenerators ar seed ir pilnībā deterministisks, tāpēc viens un tas pats seed un tie paši iestatījumi vienmēr dod tos pašus skaitļus. Šī lapa no jauna izpilda izlozi un salīdzina. Ja skaitļi atšķiras, rezultāts ir rediģēts.
Sertifikāts nokārto pārbaudi tikai tad, ja izdodas abas pārbaudes.
Ko pārbaude pierāda un ko nepierāda
Tā pierāda, ka organizators pēc apņemšanās klusi nav mainījis seed, iestatījumus vai skaitļus.
Tā nepierāda, ka seed bija neparedzams. Ja organizators pats izvēlējās seed un nekad pirms izlozes nepublicēja fingerprint, viņš varēja izmēģināt daudzus seed un paturēt to, kas patika. Fingerprint kaut ko nozīmē tikai tad, ja tas publicēts pirms izlozes, kaut kur ar laika zīmogu — ierakstā, komentārā, ziņā.
Tieši tas ir apņemšanās soļa jēga — tas pārvērš “uzticieties man” par kaut ko, ko ikviens var pēc tam pārbaudīt.
Kā rīkot izlozi, ko cilvēki var pārbaudīt
- Iestatiet diapazonu un vajadzīgo skaitļu skaitu.
- Nospiediet Izveidot fingerprint. Publicējiet iegūto jaucējvērtību — izlozes ierakstā, komentārā, kur vien dalībnieki to var redzēt ar laika zīmogu.
- Slēdziet pieteikšanos, tad izlozējiet.
- Publicējiet seed un sertifikātu. Ikviens var to ielīmēt šeit.
Ja izlaižat 2. soli, sertifikāts kļūst dekoratīvs. Fingerprint publicēšana vispirms ir tas, kas tam piešķir svaru.
Kāpēc ar seed vien nepietiek
Seed ir tikai teksts. Tas dod skaitļus tikai tad, ja zināt, kā tas tika pārvērsts skaitļos — kurš algoritms, kāds diapazons, cik skaitļu, vai atkārtojumi bija atļauti.
Tāpēc fingerprint aptver gan seed, gan iestatījumus. Bez tā organizators varētu publicēt seed un tad vēlāk apgalvot, ka izloze notika citā diapazonā un ka īstais rezultāts bija kāda cita skaitļu kopa. Apņemšanās aizver šīs durvis.
Kāpēc fingerprint nevar viltot
SHA-256 jaucējvērtība ir vienvirziena funkcija: to viegli aprēķināt uz priekšu, bet nav zināma veida, kā to izpildīt atpakaļgaitā. Tieši tas padara apņemšanos saistošu.
Lai krāptos, organizatoram vajadzētu publicēt vienu fingerprint un vēlāk atklāt citu seed, kas dod to pašu jaucējvērtību — tā sauktais otrā pirmattēla uzbrukums (second-preimage attack). Neviens vēl nav atradis šādu uzbrukumu pret SHA-256, un meklēšanas telpa padara brutālo pārlasi bezjēdzīgu: 2²⁵⁶ ir vairāk nekā aptuvenais atomu skaits novērojamajā Visumā.
Organizators nevar arī nedaudz “pastumt” rezultātu. Mainot seed vienu rakstzīmi, mainās aptuveni puse jaucējvērtības bitu, un tas notiek neparedzami. Nav iespējams meklēt seed, kas gan atbilst publicētajam fingerprint, gan dod izdevīgu uzvarētāju, jo vispirms būtu jāfiksē jaucējvērtība, bet tā ir atkarīga no visa pārējā.
Tātad fingerprint pilnībā nofiksē seed un iestatījumus. Vienīgais, ko tas nenofiksē, ir kad tas tika publicēts — tāpēc pusi darba veic laika zīmogs uz jūsu ziņas.
Kur pārbaudāmas izlozes ir svarīgas
- Dāvanu un konkursu izlozes — jautājumus uzdod tieši tie, kas nav uzvarējuši
- Kopienas un DAO atlase — izvēloties, kam piešķirt vietu, grantu vai lomu
- Pētniecība — izlases plāns, ko recenzents var atkārtot un apstiprināt
- Balvu akcijas ar juridisku atbildību — dažās jurisdikcijās nepieciešama pierādāma metode, nevis tikai apgalvojums
- Viss, kam svešiniekam jāuztic — jo tālāk ir auditorija, jo mazāk vērts ir pats par sevi apgalvojums “izvēlējāmies nejauši”