ソロベット
6 つのゲームは、胴元を相手に 1 人で遊びます。2 個のサイコロ、コイントス、ルーレット、スロット、くじ、クラッシュです。賭けは席が 1 つの CreateApp トランザクションです。その結果は賭けた時点では存在しなかったランダム性から得られ、勝てば アプリプール が支払います。
賭け方
賭ける人は、ゲームのタイプ(16 から 21)、賭けの内容、ZBC またはトークンでの賭け金を指定した CreateApp を送ります。賭け金は、賭けが実行されたときにアプリプールに移ります。どのアカウントでも賭けることができ、マルチプレイヤーゲームでは席につけない Ethereum や Bitcoin 形式の鍵を持つアカウントでもかまいません(マルチプレイヤーアプリ)。
末尾の 1 バイト N(1 から 100)を付けると、同じ賭けを 1 つのシードから N 回行い、賭け金はそれぞれのプレイに均等に分けられます。
結果がいつ、どのように抽選されるか
ブロック N に取り込まれた賭けは、ブロック N + 2 で、そのブロックのシードを使って、約 30 秒後に決着します。各ブロックのシードは、その生成者が直前のシードから検証可能ランダム関数で計算するため(ブロックシード(VRF))、賭けがブロック N に入る時点では、ブロック N + 2 のシードはまだ存在しません。誰も結果を予測できず、賭けを取り込んだ生成者が先にそれを見ることもできません。ブロック N + 2 が賭けた人自身のノードによって作られた場合(オーナーのアカウントが比較されます)、賭けは他の誰かが作る後のブロックを待ちます。
抽選は、独自のタグの下での、そのシードとアプリの ID のハッシュです。
r = LE64(first 8 bytes of SHA3-256("zbc-apps" ‖ seed ‖ LE64(app id) ‖ LE64(0)))
複数回プレイの最初のプレイは r を使い、以降のプレイは r で初期化した splitmix64 生成器の出力を使います。誰でも公開データから結果を再計算し、配当を確認できます。明かすべき秘密も、1 日ごとのまとめ処理もありません。どの賭けもそれぞれ単独で決済されます。
配当表
| ゲーム | 賭け | 勝ったときの配当 | ハウスエッジ |
|---|---|---|---|
| コイントス(17) | 表か裏 | 1.98 倍 | 1 % |
| 2 個のサイコロ(16) | 7 未満、または 7 超 | 2.28 倍 | 5 % |
| ラッキー 7 | 5.70 倍 | 5 % | |
| ちょうどの合計 | 34.20 ÷ 出方の数(2 または 12:34.2 倍) | 5 % | |
| ルーレット(18) | 1 つの数字 | 36 倍 | 1/37、約 2.7 % |
| 赤か黒 | 2 倍 | 約 2.7 % | |
| スロット(19) | 7 の 3 つ揃い、その他の 3 つ揃い、任意のペア | 50 倍、15 倍、1.8 倍 | 約 10.7 % |
| くじ(20) | 0 から 99 の数字 1 つ | 90 倍 | 10 % |
| クラッシュ(21) | 1.01 倍から 10.00 倍の目標 T | クラッシュの地点が T に達したとき T | 約 1 % |
サイコロのちょうどの合計について、出方の数とは 2 個のサイコロでその合計を作る方法の数で、6 − |7 − total| です。ルーレットには 37 のポケットがあり、0 は緑で、色は実際のヨーロピアンホイールに従います。スロットには 8 つの絵柄のリールが 3 つあり、期待される払い戻しは 457.4/512 です。クラッシュでは目標は賭けた時点で固定され、早めにキャッシュアウトするための手はありません。
ハウスエッジは各配当表に組み込まれています。コイントスでは半分の確率で勝ち、勝つと賭け金の 1.98 倍が戻るため、平均すると賭けた 1 ZBC は 0.5 × 1.98 = 0.99 ZBC として戻り、残りの 1 % はアプリプールに残ります。負けでは何も動きません。賭け金はすでにプールの中にあるからです。
賭けの上限
賭けが受け入れられる前に、ノードはその賭けが生みうる最大の配当(平均ではありません)を計算し、それを賭け金の資産でのプールの残高の 5 % という上限と比較します。
largest payout ≤ floor(pool balance × 500 ÷ 10,000)
最大の配当は、サイコロではその賭け自体の倍率、コイントスでは 1.98 倍、ルーレットでは 36 倍、スロットでは 50 倍、くじでは 90 倍、クラッシュでは T です。上限を超える賭けは送信時に拒否され("bet too large for the apps pool")、それでもブロックに届いたものは有料の空操作になります。
この上限により、1 回の幸運な結果でプールが空になることはありません。2 つ目の制限であるブロックごとの支払い枠によって、非常に大きな勝ちが複数のブロックにわたって支払われることがあります(アプリプール)。