Ellenőrzés

Így ellenőrizhető minden nyereményjáték-sorsolás

Egy nyereményjáték csak akkor tisztességes, ha senki, sem a szervező, sem mi, nem választhatja ki és nem jósolhatja meg a nyertest. Itt pontosan leírjuk, hogyan sorsolja ki a GetSocialExport a nyerteseket, és hogyan ellenőrizheti bárki a sorsolást a tanúsítványa alapján.

A sorsolás négy lépése

  1. A résztvevők listája zárolódik. A szervező bővítménye összegyűjti a kommenteket, alkalmazza a nyereményjáték szabályait, és elküldi a jogosult résztvevők listáját a szerverünkre. A lista rögzített sorrendbe kerül, SHA-256 ujjlenyomatát pedig az időponttal együtt eltároljuk. Ettől kezdve akár egyetlen név megváltoztatása is megváltoztatná az ujjlenyomatot.
  2. Egy jövőbeli véletlenszámot választunk ki. Ebben a pillanatban a szerver kiválaszt egy drand kört, amelyet csak körülbelül 30 másodperccel később tesznek közzé. A drand egy nyilvános véletlenszám-forrás, amelyet a League of Entropy (Cloudflare, Protocol Labs, egyetemek és mások) üzemeltet: számait nem lehet megjósolni vagy befolyásolni, és mindegyikhez olyan aláírás tartozik, amelyet bárki ellenőrizhet.
  3. A nyertesek kiszámítása. Amint a kört közzéteszik, a nyereményjáték kódjából, a sorsolás sorszámából, a lista ujjlenyomatából és a véletlenszámból egy kiindulóérték (seed) készül. A nyerteseket ebből SHA-256-tal, torzítás nélkül választjuk ki, extra súlyt csak azok a résztvevők kapnak, akiknek a szabályok szerint bónuszjegyük van.
  4. Minden nyilvános lesz. A tanúsítvány mutatja a nyerteseket, az ujjlenyomatot, a kört, a seedet, a lista zárolásának időpontját, minden újrasorsolást az okával együtt, és (hacsak a szervező nem tette privátra) a résztvevők teljes listáját.

Mit ellenőrizhetsz egy tanúsítványon

Nyiss meg bármely tanúsítványt (olvasd be a QR-kódját), és a böngésződ magától ellenőrzi, anélkül hogy nekünk kellene hinned:

  • a közzétett résztvevőlista egyezik a sorsolás előtt rögzített ujjlenyomattal;
  • a véletlenszám a drandtől származik, a League of Entropy érvényes BLS-aláírásával;
  • a listát azelőtt zárolták, hogy ez a véletlenszám létezett volna;
  • a sorsolás újraszámolása pontosan ugyanazokat a nyerteseket adja.

A Részt vettél? mezőbe beírhatod a nevedet is, hogy megerősítsd, benne voltál a sorsolásban, akkor is, ha a szervező privátként kezeli a listát.

Mit nem bizonyít a tanúsítvány

Maga a sorsolás bizonyíthatóan tisztességes. A tanúsítvány nem tudja bizonyítani, hogy a szervező észszerű szabályokat alkalmazott, vagy hogy átadta a nyereményt. A résztvevők listája a szervező saját bővítményéből származik, ezért tesszük közzé, hogy a résztvevők ellenőrizhessék, és ezért látszik minden újrasorsolás az okával együtt.

Technikai részletek

  • Algoritmus: socialexport-draw-v1. Kanonikus lista: résztvevőnként egy sor, id⇥name⇥tickets, id szerint rendezve, soremelésekkel összefűzve; ujjlenyomat = e szöveg SHA-256 értéke.
  • Véletlenszám: drand-hálózat: quicknet, lánc: 52db9ba70e0cc0f6…, 3 másodpercenként egy kör, BLS-aláírások a G1 csoporton (RFC 9380).
  • Seed: az algoritmus nevének, a nyereményjáték kódjának, a sorsolás sorszámának, a lista ujjlenyomatának, a körnek és a véletlenszámnak soremelésekkel összefűzött SHA-256 értéke.
  • Kiválasztás: a SHA-256(seed ‖ counter) 64 bites számokat ad; a tartomány legnagyobb többszörösénél nagyobb értékeket elvetjük (nincs modulo-torzítás); minden húzás kiveszi a nyertest és a jegyeit.
  • A tanúsítványokat a szerverünk aláírja (ECDSA P-256), hogy bizonyítsa, mikor rögzítettük az egyes listákat. Nyilvános kulcs: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdshCP/QsGG2k29W80CHSmWbwYpBNgrrIjTf0qPyQuB8cXXLxsCRaty97SO44XaM3aYr6PMwI4dYc/MnSQ3/aw==

Tarts saját ellenőrizhető nyereményjátékot →