Spinvolta

Come garantiamo l’equità

Prima il caso. Poi l’animazione. Verificabile quando conta.

1. Ogni risultato viene da un generatore casuale crittografico

Spinvolta estrae i risultati con crypto.getRandomValues(), il generatore di numeri casuali crittograficamente sicuro integrato in ogni browser e sistema operativo moderno — la stessa fonte usata per creare chiavi di cifratura. Non usiamo mai Math.random() per decidere qualcosa. (Le cose puramente decorative, come la traiettoria di un coriandolo, possono usarlo.)

2. Nessuna distorsione del modulo

Un numero casuale a 32 bit non si divide sempre in parti uguali tra, per esempio, 7 opzioni: 4.294.967.296 non è multiplo di 7, quindi l’ingenuo numero % 7 rende alcune opzioni un pochino più probabili. Spinvolta usa il campionamento per rifiuto: se un numero cade nell’avanzo irregolare in cima all’intervallo, viene scartato e se ne estrae un altro. Ogni opzione ha così esattamente la stessa probabilità, con qualsiasi numero di voci.

3. I pesi sono esatti

Nella modalità pesata, pesi come 1, 2,5 o 0,125 vengono convertiti in numeri interi su una scala comune e sommati esattamente. Un’unica estrazione uniforme sul totale sceglie il vincitore: una voce con peso 2 ha esattamente il doppio delle probabilità di una con peso 1, e la dimensione degli spicchi mostra proprio queste probabilità.

4. Più vincitori senza ripetizioni

Più vincitori, squadre, ordine casuale, carte e giveaway usano un mescolamento di Fisher–Yates senza distorsioni (con lo stesso campionamento per rifiuto): ogni ordine o gruppo di vincitori possibile ha la stessa probabilità.

5. Prima il risultato, poi l’animazione

Quando premi Gira, il vincitore è deciso prima che la ruota si muova. Poi un risolutore calcola un movimento — rincorsa, velocità, numero di giri, la leggera oscillazione finale — che si ferma esattamente nello spicchio vincente, in un punto casuale lontano dai bordi. Lanciare più forte, scegliere un giro più lungo o usare lo stop manuale cambia solo l’aspetto. I nostri test automatici controllano migliaia di giri casuali per garantire che l’animazione si fermi sempre sul risultato già estratto e non scivoli mai nello spicchio vicino.

6. Estrazioni dimostrabilmente eque per giveaway e stanze

Per i giveaway (e ogni estrazione in cui la fiducia conta), Spinvolta va oltre, così non devi fidarti né di noi né di chi organizza:

  1. Prima dell’estrazione, il tuo browser fissa l’elenco esatto dei partecipanti e le impostazioni e pubblica un’impronta: un hash SHA-256 di elenco, impostazioni e un seed segreto. Il nostro server registra quando l’ha ricevuta.
  2. L’impronta indica un round futuro della fonte di casualità drand League of Entropy, un valore pubblico prodotto ogni 3 secondi da organizzazioni indipendenti di tutto il mondo, che nessuno può prevedere o scegliere.
  3. Quando quel round viene pubblicato, i vincitori vengono calcolati da impronta, valore della fonte e seed.
  4. La pagina di prova mostra tutto. Chiunque può premere Verifica per ricalcolare tutto nel proprio browser, compresa la firma crittografica della fonte.

Chi organizza non può scegliere il vincitore, perché il valore della fonte non esisteva quando l’elenco è stato fissato. Nemmeno noi, perché non vediamo mai il seed prima che l’impronta sia fissata e non controlliamo drand. Se la fonte non è raggiungibile, l’estrazione passa a un metodo di impegno e rivelazione chiaramente indicato.

7. Testato statisticamente

La nostra suite di test esegue test chi quadrato di adattamento su centinaia di migliaia di estrazioni simulate a ogni modifica, e su oltre un milione nella suite completa: estrazioni uniformi, pesate, mescolamenti e posizioni con più vincitori. Puoi eseguire la tua versione nella pagina del test di equità.

Cosa non possiamo dimostrare

Per un giro quotidiano ti fidi del fatto che il codice eseguito nel tuo browser sia quello che descriviamo. Gira interamente sul tuo dispositivo e puoi ispezionarlo con gli strumenti per sviluppatori del browser. Quando la posta è più alta — premi, estrazioni pubbliche — usa un’estrazione dimostrabilmente equa, che non richiede di fidarsi di nessuno.

Domande frequenti

La ruota si può truccare?

Non tramite l’animazione: il risultato viene prima estratto in modo equo e poi il movimento viene calcolato per mostrarlo. L’unico modo per cambiare le probabilità è la modalità pesata, che mostra l’etichetta “Ruota pesata” e disegna gli spicchi in proporzione.

Perché lo stesso nome è uscito due volte di fila?

Perché il vero caso ha delle serie. Con 10 voci, la stessa esce due volte di fila il 10% delle volte. Usa la modalità eliminazione se vuoi che ogni voce esca una volta sola.

Che cos’è drand?

drand è una fonte di casualità distribuita gestita dalla League of Entropy, un gruppo di università, aziende e organizzazioni indipendenti. Pubblica un nuovo valore casuale verificabile ogni pochi secondi.