クラッシュゲームの結果を確認してください:アルゴリズム、セキュリティ
1)検証の目的: 正確に何を確認するか
取り消し不能:オペレータはベット後の結果を変更できませんでした(サーバシードハッシュのコミットによる)。
再現性:入力すると、ゲームが示したのと同じ乗数が得られます。
手順の整合性:メッセージ形式、増分'nonce'、丸めルール、および「ハウスエッジ」は、仕様に従って厳密に適用されます。
2)検証が不可能なデータ
1.Server Seed Hash(コミット)-対応する'Server Seed'を使用する前に公開されます。
2.Server Seed(期間終了後に開示)
3.クライアントシード(あなたのシード;自分で設定するか、プラットフォームが生成します)。
4.Nonce(現在の'Server Seed'内のベットのカウンター)。
5.ハッシュアルゴリズム(通常は'HMAC-SHA256'または'SHA-256')。
6.メッセージ形式(例:'「
7.ハッシュマッピング式→乗数(および丸め/最小ルール)。
3)検証アルゴリズム(7ステップ)
1.commit: count 'SHA-256 (ServerSeed)'を比較し、公開された'ServerSeedHash'と比較します。
2.メッセージを収集します:厳密にプラットフォーム形式で(例えば、'msg=ClientSeed+「:」+Nonce')。
3.ラウンドハッシュを数える:- 'HMAC-SHA256': 'RoundHash=HMAC_SHA256 (key=ServerSeed、 msg=message)';
- 'SHA-256': 'RoundHash=SHA256 (ServerSeed | | message)'または仕様で指定されている場合。
- 4.ランダム性の抽出:最初の'k'ビットを取る(多くの場合52)→整数'r'、次に'u=r/2^k'。
- 5.マッピング式を適用します:'u'を乗数に変換します(ハウスエッジ/特別なケースはゲームのドキュメントに従って考慮されます)。
- 6.ゲームのルールに従ってラウンド(例えば、2文字まで、少なくとも1。00 ×など)。
- 7.歴史のラウンド合計と比較してください。偶然=正しい正直さ。
4)擬似コード(Python/JSに適応可能)
Python
stub_mapping()ではなく、プラットフォームから正確なマッピング式をここに挿入します()
インポートhmac、 hashlib、数学
def round_hash (server_seed: bytes、 client_seed: str、 nonce: int)->bytes:
message=f 「{client_seed}: {nonce}」。エンコード(「utf-8」)形式は仕様を参照
hmacを返して。new (server_seed、 message、 hashlib。sha256)。digest()またはhashlib。sha256(……)
def take_u_from_hash (h: bytes、 k_bits=52)->float:
我々は全体rとしてk最も重要なビットを取る
r=int。 from_bytes (h、 「big」)>> (256-k_bits)
r/( 1 <<k_bits) uを返す[0、1)
def stub_mapping (u: float)->float:
STUB!ゲームドキュメントの数式に置き換える
例えば、時にはフォームの変換が使用されます:crash=floor ((const/( r+1))100)/100
そして/または珍しい強制1として「ハウスエッジ」。00 。 。本物のチェックでこのスタブを使用しないでください。
return max (1。00、ラウンド(1。0/max (1e-12、 1。0-u)、 2))
def verify (server_seed_hex、 server_seed_hash_hex、 client_seed、 nonce、 shown_multiplier):
server_seed=バイト。フロムヘックス(server_seed_hex)
1)コミット
アサート・ハッシュリブ。sha256 (server_seed)。hexdigest()==server_seed_hash_hex。lower()
2-3)ラウンドハッシュ
h=round_hash (server_seed、 client_seed、ノンス)
4) u
u=take_u_from_hash (h)
5-6)マッピング+丸め
calc_mult=stub_mapping (u)
7)比較
リターンabs (calc_mult-shown_multiplier) <1e-9
重要:'stub_mapping'の代わりに、プラットフォームのFairnessセクションから正確な式を適用します。そうでなければ、チェックが間違っています。
5)特定のケースと落とし穴
1つのラウンドで2つのベット:多くのプラットフォームでは、同じラウンドに配置されている場合でも、それぞれのベットに対して'nonce'の増分があります(例:bet A→'nonce=42'、 bet B→'nonce=43')。履歴で確認してください。
'Client Seed'の変更:シードを変更すると、通常は'nonce'がリセットされます(または新しいストリームが開始されます)。プラットフォームのルールを比較します。
Batchy 'Server Seed': One 'Server Seed'は一連のラウンドで動作し、新しいコミットが公開されます。異なる期間の種子を混同しないでください。
丸め/最小:2番目の記号の不一致-ケースの90%で、丸め/最小ルールのエラー(例えば、固定1。00 ×特別な条件下で)。
エンコード/スペース:余分なスペース/ラインフィード、間違ったケース、non-UTF-8はチェックを壊します。
6)クイックラウンドチェックリスト
1.「SHA-256 (ServerSeed)」は公開されている「ServerSeedHash」と一致していますか?
2.'message'と'nonce'フォーマットは正しく形成されていますか?
3.アルゴリズム('HMAC-SHA256'/'SHA-256')とキー/フィールド順序は仕様に従って厳密に適用されますか?
4.マッピングと丸めはドキュメントと同じですか?
5.特殊なケース(まれな「インスタントクラッシュ」、最小1。00 ×、マウスガード)?
6.結果はペニーにゲームの歴史と一致していますか?
7)制御の自動化(練習)
ログ:'client_seed'、シーケンス'nonce'、タイムスタンプ、最終乗数を保持します。
サンプリング:'Server Seed'の「roar」の後、ランダムな20-50ラウンドを通してスクリプトを実行します。マッチ率を修正しました(100%でなければなりません)。
回帰:ゲーム/プロバイダのバージョンを変更する場合は、同じセットを実行します。
エクスポート:ソースを含むCSV/JSONを保存します。これが「監査トラック」です。
8)安全: 間違いをし、あなた自身をだまされないようにする方法
ローカル/オフラインのチェック:オペレータのWebバリデータだけに依存しないでください。あなた自身のスクリプトを保管してください。
完全なデータパッケージなしでラウンドを信頼しないでください:数式/形式なし-検証なし。
強力な'クライアントシード':ランダムに質問し、定期的に変更します(これはRTPを増加させませんが、再現性に関する質問は除外されます)。
TLS/sessions: HTTPSのみのログイン、2FA、履歴ログインとアップロードの追跡。
誰にも'Server Seed'を与えないでください。あなたの仕事は、事前にそれを「取得」しないように確認することです。
9)典型的な「新人エラー」
Mixed up field order ('ClientSeed: Nonce'の代わりに'Nonce: ClientSeed')。
1ではなくゼロから'nonce'を数える(またはその逆)。
プラットフォームのラウンド全体のハッシュ(グローバルノンス)が使用されましたが、個人的な'nonce'が必要です。
バンカーの丸みvs床/天井。
「サーバーシード」が公開されていない、アクティブでないかどうかを確認します。
10)オペレータの「赤い旗」
期間の開始前にパブリックサーバーシードハッシュはありません。
クライアントシードを設定したり、ノンスを表示することはできません。
パブリックマルチプライヤハッシュマッピング式はありません。
ラウンドの履歴は、和解のための最低限のデータを提供していません。
フォーマットとアルゴリズムは予告なしに変更されました/仕様アーカイブ。
11)オーストラリアの文脈(AU)
通貨:AUDでの勝利/賭けの記録を保持し、ストーリーのアップロードを維持します(サポート、物議を醸す問題)。
責任あるプレイ(RG):入金/時間制限、一時停止、自己除外-本物のアプリで利用可能。それらを使用して下さい。
プラットフォームプラクティス:本物の演算子のために、公平/公正なブロックには、完全な説明と検証の例が含まれています。細部の欠乏は別のサービスを選ぶ理由である。
12)ボトムライン
クラッシュゲームの結果を確認することは明確な手順です:- 'Server Seed Hash'コミットの検証、
- 'Server Seed'、 'Client Seed'、 'nonce'、およびアルゴリズムによる'RoundHash'の復元、
- 発行されたマッピング式と丸めルールを適用する
- レビューとゲーム履歴の同一乗数。
独自のスクリプトを保持し、入力をログ化し、定期的にランダムなラウンドをチェックします。だから、言葉ではなく数学的に正直さを確認します。