Wiki di ZooBC
App e sviluppo su ZooBC

Scommesse in solitaria

Sei giochi si giocano da soli contro il banco: due dadi, testa o croce, roulette, slot, lotteria e crash. Una scommessa è una transazione CreateApp con un solo posto. Il suo esito proviene da una casualità che non esisteva quando la scommessa è stata piazzata, e il pool delle app paga una vincita.

Piazzare una scommessa

Chi scommette invia CreateApp con il tipo del gioco (da 16 a 21), la scommessa e la puntata, in ZBC o in un token. La puntata passa nel pool delle app quando la scommessa viene eseguita. Qualsiasi account può scommettere, compresi gli account con chiavi in stile Ethereum o Bitcoin, che non possono occupare un posto in una partita multigiocatore (app multigiocatore).

Un byte finale N, da 1 a 100, gioca la stessa scommessa N volte a partire da un solo seed, con la puntata divisa in parti uguali tra le giocate.

Quando e come viene estratto il risultato

Una scommessa inclusa nel blocco N viene risolta al blocco N + 2, con il seed di quel blocco, circa 30 secondi dopo. Il seed di ogni blocco viene calcolato dal suo produttore a partire dal seed precedente con una funzione casuale verificabile (seed del blocco (VRF)), quindi mentre la scommessa entra nel blocco N, il seed del blocco N + 2 non esiste ancora. Nessuno può prevedere il risultato, e il produttore che ha incluso la scommessa non può vederlo per primo. Se il blocco N + 2 viene prodotto dal nodo stesso di chi scommette (si confrontano gli account dei proprietari), la scommessa attende un blocco successivo prodotto da qualcun altro.

L'estrazione è un hash di quel seed e dell'id dell'app, con un tag proprio:

r = LE64(first 8 bytes of SHA3-256("zbc-apps" ‖ seed ‖ LE64(app id) ‖ LE64(0)))

La prima giocata di una scommessa multipla usa r; le giocate successive usano gli output di un generatore splitmix64 inizializzato con r. Chiunque può ricalcolare il risultato a partire da dati pubblici e verificare la vincita. Non c'è alcun segreto da rivelare e nessuna estrazione giornaliera cumulativa: ogni scommessa viene regolata per conto suo.

La scommessa entra nel blocco N e viene decisa dal seed del blocco N + 2, che nessuno poteva vedere quando la scommessa è stata fatta.
La scommessa entra nel blocco N e viene decisa dal seed del blocco N + 2, che nessuno poteva vedere quando la scommessa è stata fatta.

Tabelle delle vincite

GiocoScommessaUna vincita pagaMargine del banco
Testa o croce (17)testa o croce1,98×1 %
Due dadi (16)sotto il 7, o sopra il 72,28×5 %
7 fortunato5,70×5 %
un totale esatto34,20 ÷ combinazioni (2 o 12: 34,2×)5 %
Roulette (18)un singolo numero36×1/37, circa il 2,7 %
rosso o nero2×circa il 2,7 %
Slot (19)tris di 7, un altro tris, una coppia qualsiasi50×, 15×, 1,8×circa il 10,7 %
Lotteria (20)un numero da 0 a 9990×10 %
Crash (21)un obiettivo T da 1,01× a 10,00×T, quando il punto di crash raggiunge Tcirca l'1 %

Per un totale esatto con i dadi, le combinazioni sono i modi in cui due dadi possono ottenerlo: 6 − |7 − totale|. La roulette ha 37 caselle, con lo 0 verde, e i suoi colori seguono la vera ruota europea. Le slot hanno tre rulli di otto simboli, per un ritorno atteso di 457,4/512. Nel crash l'obiettivo viene fissato quando si piazza la scommessa; non esiste una mossa per incassare in anticipo.

Il margine del banco è incorporato in ogni tabella. A testa o croce vinci metà delle volte e una vincita restituisce 1,98 volte la puntata, quindi in media ogni ZBC puntato torna come 0,5 × 1,98 = 0,99 ZBC, e l'1 % restante resta al pool delle app. Una perdita non muove nulla, perché la puntata è già nel pool.

Il margine del banco per ogni gioco in solitaria, dall'1 % di testa o croce a circa il 10,7 % delle slot.
Il margine del banco per ogni gioco in solitaria, dall'1 % di testa o croce a circa il 10,7 % delle slot.

Il tetto per scommessa

Prima che una scommessa venga accettata, il nodo calcola la vincita più grande che potrebbe mai produrre, non la sua media, e la confronta con un tetto pari al 5 % del saldo del pool nell'asset della puntata:

largest payout ≤ floor(pool balance × 500 ÷ 10,000)

La vincita più grande è il moltiplicatore della scommessa stessa per i dadi, 1,98× per testa o croce, 36× per la roulette, 50× per le slot, 90× per la lotteria e T per il crash. Una scommessa oltre il tetto viene rifiutata quando viene inviata («bet too large for the apps pool»), e una che arriva comunque in un blocco è una no-op pagata.

Il tetto fa sì che nessun singolo risultato fortunato possa svuotare il pool. Un secondo limite, il limite per blocco, può distribuire una vincita molto grande su più blocchi (pool delle app).

Vedi anche