このページは元々英語で書かれています。翻訳はAIによる補助で行っており、現在も改善中です — お知らせください おかしな表現がありましたら。

ハンドを検証

すべてのハンドが処理された SPN 証明可能なほど公平である。 私たちは、RNGシードの暗号学的ハッシュにコミットします カードを配り、ハンドの後にシードを公開します。 取引が操作されていないことを独立して検証でき、信頼は不要です。

仕組み

1

カードが配られる前に

当社のサーバーはランダムな256ビットのシードを生成し、そのSHA-256ハッシュ(「コミットメント」)を計算します。 コミットメントは、カードが配られる前に即座にハンドに保存されます。

2

カードが配られる

デッキは、同じ乱数シードでシードされた決定論的なフィッシャー・イェーツアルゴリズムを用いてシャッフルされます。 そのシードによってすべてのカードの位置が決まります。コミットメントが記録された後では、デッキの順序を変更する方法はありません。

3

ハンドが完了した後

元のシードはハンド履歴で確認できます。 これで次のことを検証できます: SHA-256(公開シード)は、保存されたコミットメントと等しくなければならない。 もし一致すれば、その取引は公平だった。

ステップごとの検証

ステップ1 — ハンド履歴をエクスポートする

アカウントにログインし、プロフィール → ハンド履歴 → エクスポートに進んでください。 JSONファイルをダウンロードしてください。 検証したいハンドを見つけ、rngSeedrngCommitmentのフィールドを探してください。

ステップ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統計を見る

RNGの実装についてご質問はありますか?

サポートに連絡