ハンドを検証
すべてのハンドが処理された SPN 証明可能なほど公平である。 私たちは、RNGシードの暗号学的ハッシュにコミットします 前 カードを配り、ハンドの後にシードを公開します。 取引が操作されていないことを独立して検証でき、信頼は不要です。
仕組み
カードが配られる前に
当社のサーバーはランダムな256ビットのシードを生成し、そのSHA-256ハッシュ(「コミットメント」)を計算します。 コミットメントは、カードが配られる前に即座にハンドに保存されます。
カードが配られる
デッキは、同じ乱数シードでシードされた決定論的なフィッシャー・イェーツアルゴリズムを用いてシャッフルされます。 そのシードによってすべてのカードの位置が決まります。コミットメントが記録された後では、デッキの順序を変更する方法はありません。
ハンドが完了した後
元のシードはハンド履歴で確認できます。 これで次のことを検証できます: SHA-256(公開シード)は、保存されたコミットメントと等しくなければならない。 もし一致すれば、その取引は公平だった。
ステップごとの検証
ステップ1 — ハンド履歴をエクスポートする
アカウントにログインし、プロフィール → ハンド履歴 → エクスポートに進んでください。 JSONファイルをダウンロードしてください。 検証したいハンドを見つけ、rngSeedとrngCommitmentのフィールドを探してください。
ステップ2 — シードをハッシュ化する
以下に示すいずれかの方法を用いて、公開されたシードに対して SHA-256 を実行してください。 出力は、rngCommitmentの値と完全に一致しなければなりません。
macOS / Linux(ターミナル)
echo -n "YOUR_RNG_SEED_HERE" | sha256sum Windows(PowerShell)
$seed = "YOUR_RNG_SEED_HERE"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($seed)
$hash = [System.Security.Cryptography.SHA256]::Create().ComputeHash($bytes)
($hash | ForEach-Object { $_.ToString("x2") }) -join "" オープンソースの検証ツール(Node.js)を使用しています
npx spn-rng-verify --seed YOUR_RNG_SEED_HERE --commitment YOUR_RNG_COMMITMENT_HERE spn-rng-verifyパッケージはnpmで公開されており、SPN依存関係はありません。実行前に内容を確認できるスタンドアロンのSHA-256チェッカーです。
ステップ3 — 比較する
ハッシュの出力は、ハンドレコードのrngCommitmentフィールドと完全に一致しなければなりません。 もしそれが一致すれば、その取引は公正であり、約束後はシードが変更されない。 一致しない場合は、直ちにサポートに連絡してください。
なぜこれが重要なのか
従来のオンラインポーカールームは、彼らのRNGを信頼するよう求めます。私たちはそうしません――それは、あなたがそうする必要がないからです。 その約束は、カードが配られる前に記録されます。 サーバーは、あなたがブラフをしようとしている、あるいは相手のハンドが強いと分かっても、シャッフルを変更する仕組みはありません。
SPN上のすべてのハンドは検証可能です。 私たちは一部をサンプリングしたり監査したりしません――すべての取引について、毎回完全な暗号学的証明が利用可能です。
すべてのハンドの統計的分布を見たいですか? 私たちは毎日、観測されたハンド頻度と期待される頻度の比較を示すRNG統計を公開しています。
RNG統計を見る