検証が解決する問題
すべてのカジノゲームは主張です:「この結果はランダムであり、あなたのベットを見た後に選びませんでした。」物理的なルームではあなたはその主張を目で監査します — 新しいデッキ、透明なサイコロ、見守ることができるホイール。オンラインでは、ランダムさは他の誰かのコンピュータで起こります。Provably fairはディーラーの手を見ることの暗号学的な代替です。
コアメカニズムはcommit-revealです。ベットする前に、ハウスはそのランダムさを固定し、指紋を見せます — サーバーシードのSHA-256ハッシュ。ハッシュは一方向に機能します:ハウスは同じ指紋に一致する2番目のシードを見つけることができず、あなたはそこからシードを読むことができません。シードが後で明かされた後、あなたはそれを見せられた指紋と照合し、それが生成したすべてのラウンドを再計算します。
すべてのラウンドの3つの入力
| 入力 | 誰が選ぶか | それが何をするか |
|---|---|---|
| サーバーシード | ハウス — プレイ前にハッシュとしてコミットされた | ランダムさのハウスの半分 |
| クライアントシード | あなた — フェアネスパネルで編集可能 | あなたの半分;ハウスはそれを予測できません |
| ノンス | 誰もいない — 0, 1, 2, ... とカウントします | 同じシードの下で各ラウンドをユニークにします |
ラウンドの生のランダムさはHMAC-SHA256(server seed, client seed : nonce)です — 両方の当事者の入力を混ぜるキー付きハッシュ。あなたのクライアントシードがミックスに入るため、ハウスは結果をバイアスするためにあなたの選択を予測する必要がありました;サーバーシードは最初にコミットされたため、あなたが既に保有している指紋を壊さずに後で交換することはできません。
そのダイジェストから、バイトは数字になります。私たちのエンジンは最初のバイトを[0,1)の均一な値として読みます — 丸めはジェネレーターと検証器で同じビット単位で行われます — 各ゲームは均一な値を公開されたルール経由の結果にマップします:サイコロロール曲線、縮小するプールからのカード抽出、固定カーソル位置でのチンチロサイコロ。
ステップバイステップガイド
- 任意のオリジナルを開き、フェアネスパネルを開きます。現在のサーバーシードハッシュに注意してください — これはコミットです。必要に応じて独自のクライアントシードを設定してください。
- ラウンドを1回か2回プレイしてください。各決済済みラウンドは(ハッシュ、クライアントシード、ノンス)の組み合わせをベット記録に記録します。
- パネルでシードペアをローテーションしてください。ローテーションは古いサーバーシードを廃止し、そして重要な瞬間です—それを明らかにすることです。
- SHA-256で明かされたサーバーシードをハッシュ化し、ステップ1のフィンガープリントと比較してください。完全に一致する必要があります。
- ラウンドを再計算します: HMAC-SHA256(明かされたシード、"clientSeed:nonce")、ダイジェストをゲームの公開ルールでマップし、あなたが支払われた結果と比較してください。
- ステップ4~5については、任意の独立したツール(オンラインSHA-256計算機、3行のPython、またはパネルの組み込みベリファイア)で機能します。数学は誰がそれを実行するかについて意見がありません。
ENGINE-VERIFIEDBetkyo の実装に関する詳細は非常に珍しいです。結果を生成するデモエンジンと結果をチェックする公平性パネルは、同じ派生モジュールをインポートします—2つではなく、1つの実装です。生成器と同じコードを共有するベリファイアは、それとの合意から逸脱することはできません。
試すLimboで試してください—ラウンドごと1つの数字
Limboは最初に検証するための最もきれいなゲームです。1つの均等なドロー、1つの乗数、すぐに再計算可能です。Limbo →
検証が主張しないもの
誠実さは制限をマークする必要があります。Provably fairは結果がコミットメント時に固定され、公開ルールでマップされたことを証明します。ルールが寛容であることを証明しません—ゲームはprovably fairでありながら、ひどく支払うことができます。これが私たちがすべてのペイテーブルと払い戻し率とともに公開する理由です。損失を防いだり、連敗を短くしたり、次のラウンドについて約束したりしません。次のラウンドがあなたに対して選ばれなかったことだけを約束します。
そしてそれは見ることができないものを検証することはできません。スキームはゲーム結果をカバーしますが、外部ライブイベントが解決する順序などではありません。私たちのゲームの1つが外部フィードに依存している場合、公平性ページはクレームを伸ばすのではなく、明確に明記されています。
用語集
| 用語 | 意味 |
|---|---|
| SHA-256 | 一方向ハッシュ:任意の入力→256ビットフィンガープリント;逆転またはコリジョンは実行不可能 |
| HMAC | キー付きハッシュ—秘密キー(サーバーシード)とメッセージ(クライアントシード:ノンス)を混合 |
| Commit-reveal | 最初にフィンガープリントを公開し、後で値を公開します。フィンガープリントは値が変わらなかったことを証明します |
| ノンス | 「1度だけ使用される数字」— 各ラウンドのダイジェストをユニークにするカウンター |
| シード交換 | シードペアの廃止:古いサーバーシードが監査のために公開され、新しいコミットメントが開始される |
FAQ
ラウンドを検証するために暗号化について知る必要がありますか?
いいえ。フェアネスパネルはすべてのステップを自動化し、手動パスではSHA-256/HMACカルキュレーターに文字列を貼り付ける以上のことは何も必要ありません。それがなぜ機能するのかを理解するには1段落で十分です。実行するには1分です。
検証するためにシードを交換する必要があるのはなぜですか?
サーバーシードはそれがまだラウンドを生成している間、秘密のままである必要があるからです — 早期に公開するとプレイヤーが将来の結果を計算できるようになってしまいます。交換はシードの寿命を終わらせます。これはそれが安全に公開され監査されることを可能にするものです。
ハウスは自分自身のために幸運なシードを生成できますか?
コミットメントはそれの有用なバージョンをブロックします:シードはあなたのベットの前に固定され、あなたが管理するクライアントシードと混ぜられます。ハウスはあなたのシード、あなたのベット、そしてあなたのタイミングを予測する必要があります — その時点でそれはもはやカジノを運営していなく、マインドリーディング行為をしています。
Provably fairはライセンスまたは監査を受けているのと同じですか?
いいえ — それらは異なる質問に答えます。監査とライセンスは機関的信頼です。Provably fairは各個別の結果における数学的信頼です。私たちは数学と完全なペイテーブルを公開しているため、2つの主張は決して混同されません。
情報源と参照
- HMAC — RFC 2104、ラウンドごとに使用されるキー付きハッシュ構築
- SHA-2ファミリー — FIPS 180-4、コミットメントハッシュ
- Betkyo エンジンソース:共有RNGプリミティブと単一のジェネレーター/ベリファイヤー派生モジュール
この記事のゲーム
Limbo — ルール&フリープレイ →Dice — ルール&フリープレイ →Chinchiro — ルール&フリープレイ →