Provably Fairポーカーのシードローテーションとは
Provably Fairポーカーでは、シャッフル結果は一つの数字だけで決まるわけではありません。サーバーシード、クライアントシード、手札番号、nonce、カウンターなどを組み合わせて、一回ごとのデッキ順を作ります。
シードローテーションとは、そのシードをいつ変更するかという運用ルールです。これは派手な機能ではありません。むしろ、後から検証しやすくするための基本的な整理です。いつ使い始め、いつ使い終え、いつ公開し、どの手札を再計算できるのかをはっきりさせます。
なぜシードに区切りが必要なのか
Provably Fairの基本は、先にコミットして、後で公開することです。プラットフォームはサーバーシードのハッシュを先に示し、対象となるハンドが終わった後に元のシードを公開します。プレイヤーは公開データを使って再計算し、最初のコミットと一致するか確認できます。基礎はクライアントシードとサーバーシードとシャッフル検証の手順で説明しています。
もし同じサーバーシードをずっと使い続けると、監査の区切りがあいまいになります。それ自体が不正の証拠という意味ではありません。ただし、どのハンドが同じ期間に属するのか、いつ公開されるのか、プレイヤーがその期間を漏れなく再計算できるのかが分かりにくくなります。
ローテーションは履歴を小さな検証単位に分けます。ログの記録ミス、カウンターの問題、設定ミスが起きた場合でも、どの期間を見直すべきかを絞り込めます。
よいローテーションルールの見方
プレイヤーがすべてのコードを読む必要はありません。ただし、公開説明には最低限の具体性が必要です。確認したい点は次の通りです。
- サーバーシードはいつ変わるのか:毎ハンド、テーブルごと、セッションごと、一定ハンド数ごとか;
- 新しいシードは使用前にハッシュでコミットされるか;
- 古いシードはいつ公開されるか;
- クライアントシードをプレイヤーが確認または変更できるか;
- nonce、ハンド番号、カウンターが入力の重複を防いでいるか。
大事なのは「頻繁に変えるほど安全」と単純に考えないことです。毎ハンド変えても、コミットや公開がなければプレイヤーは信じるしかありません。一方で、セッション単位のローテーションでも、コミット、固有カウンター、再計算できる記録がそろっていれば、検証しやすい仕組みになります。
プレイヤーが確認できるもの
見るべきなのは専門用語ではなく、証拠の流れです。まず、現在のシードコミット、終了した期間の公開済みシード、各ハンドのnonceまたは番号を探します。nonceについてはProvably Fairポーカーのnonceも参考になります。
公平性レシートがあるなら、ハンド、シード、カウンター、デッキ順、検証手順がつながっているべきです。「検証済み」と表示するだけでは不十分です。プレイヤーが自分で再計算するか、独立した検証ツールに入れられるだけの情報が必要です。
ランダム値の作り方も重要です。MDNはWeb Crypto APIのCrypto.getRandomValues()を暗号用途に向いた強いランダム値を得る方法として説明しています。またNIST SP 800-90シリーズは高品質なランダムビット生成の考え方を示しています。これらは特定のポーカーサイトを保証するものではありませんが、安全な入力には雑な乱数を使うべきではない理由を理解する助けになります。
シードローテーションは、ポーカー履歴をラベル付きの封筒に分けるようなものです。封筒だけで全プレイヤーの正直さは証明できませんが、各期間のシャッフルは後から調べやすくなります。
解決できない問題
シードローテーションが主に助けるのは、シャッフル入力、監査期間、再計算可能性です。プレイヤー同士の共謀、複数アカウント、外部ツールによるリアルタイム支援までは検出できません。そこには不正対策、通報、アカウント保護、人による確認が必要です。この境界はProvably Fairでも不正対策が必要な理由で説明しています。
弱いアルゴリズムも救えません。重要な入力を隠す、弱い乱数を使う、古いシードを公開しない、といった仕組みでは、ローテーションは見せかけになります。
最後のチェック
「シードを回しています」という一文だけで判断しないでください。使用前にコミットしているか、使用後に公開するか、各ハンドに固有の番号があるか、自分で再計算できるか、暗号技術の限界を正直に説明しているか。この答えが明確なら、シードローテーションは宣伝ではなく、検証できるルールになります。