Verifica

Come si può verificare ogni estrazione di un giveaway

Un giveaway è equo solo se nessuno, né chi lo organizza né noi, può scegliere o prevedere il vincitore. Ecco esattamente come GetSocialExport estrae i vincitori, e come chiunque può verificare un’estrazione a partire dal suo certificato.

Le quattro fasi di un’estrazione

  1. L’elenco dei partecipanti viene bloccato. L’estensione di chi organizza raccoglie i commenti, applica le regole del giveaway e invia al nostro server l’elenco dei partecipanti validi. L’elenco viene messo in un ordine fisso e la sua impronta SHA-256 viene registrata insieme all’ora. Da quel momento, modificare anche un solo nome cambierebbe l’impronta.
  2. Viene scelto un numero casuale futuro. In quel momento il server sceglie un round drand che sarà pubblicato solo circa 30 secondi dopo. drand è un beacon pubblico di casualità gestito dalla League of Entropy (Cloudflare, Protocol Labs, università e altri): i suoi numeri non possono essere previsti né influenzati, e ognuno ha una firma che chiunque può verificare.
  3. Vengono calcolati i vincitori. Una volta pubblicato il round, si genera un seed a partire dal codice del giveaway, dal numero dell’estrazione, dall’impronta dell’elenco e dal numero casuale. I vincitori vengono scelti da quel seed con SHA-256, senza distorsioni, dando un peso maggiore solo ai partecipanti con biglietti bonus previsti dalle regole.
  4. Tutto viene pubblicato. Il certificato mostra i vincitori, l’impronta, il round, il seed, l’ora in cui l’elenco è stato bloccato, ogni nuova estrazione con il suo motivo e (a meno che chi organizza non lo abbia reso privato) l’elenco completo dei partecipanti.

Cosa puoi verificare su un certificato

Apri un certificato qualsiasi (scansionando il suo codice QR) e il tuo browser lo verifica da solo, senza doversi fidare di noi:

  • l’elenco dei partecipanti pubblicato corrisponde all’impronta registrata prima dell’estrazione;
  • il numero casuale proviene da drand, con una firma BLS valida della League of Entropy;
  • l’elenco è stato bloccato prima che quel numero casuale esistesse;
  • ricalcolando l’estrazione si ottengono esattamente gli stessi vincitori.

Puoi anche digitare il tuo nome in Hai partecipato? per confermare di essere stato incluso nell’estrazione, anche quando chi organizza mantiene privato l’elenco.

Cosa non dimostra un certificato

L’estrazione in sé è dimostrabilmente equa. Il certificato non può dimostrare che chi organizza abbia applicato regole ragionevoli o consegnato il premio. L’elenco dei partecipanti proviene dall’estensione di chi organizza: per questo viene pubblicato perché i partecipanti possano controllarlo, e per questo ogni nuova estrazione è mostrata con il suo motivo.

Dettagli tecnici

  • Algoritmo: socialexport-draw-v1. Elenco canonico: una riga per partecipante, id⇥name⇥tickets, ordinato per id, unito con caratteri di a capo; impronta = SHA-256 di quel testo.
  • Casualità: rete drand quicknet, chain 52db9ba70e0cc0f6…, un round ogni 3 s, firme BLS su G1 (RFC 9380).
  • Seed: SHA-256 del nome dell’algoritmo, codice del giveaway, numero dell’estrazione, impronta dell’elenco, round e casualità, uniti con caratteri di a capo.
  • Scelta: SHA-256(seed ‖ contatore) fornisce numeri a 64 bit; i valori sopra il più grande multiplo dell’intervallo vengono scartati (nessuna distorsione da modulo); ogni scelta rimuove il vincitore e i suoi biglietti.
  • I certificati sono firmati dal nostro server (ECDSA P-256) per dimostrare quando è stato registrato ogni elenco. Chiave pubblica: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdshCP/QsGG2k29W80CHSmWbwYpBNgrrIjTf0qPyQuB8cXXLxsCRaty97SO44XaM3aYr6PMwI4dYc/MnSQ3/aw==

Fai il tuo giveaway verificato →