牌山生成用乱数種のハッシュ公開

天鳳では、公正な対戦環境を保つことを目的として牌山を生成するアルゴリズムに、 意図的な牌山の操作が不可能であることを検証できる独自の方法を採用しています。

- 牌山生成プログラム http://blog.tenhou.net/article/30503297.html
- 牌山生成方法の検証用データ http://blog.tenhou.net/article/174202532.html

牌山生成に使用する乱数種は、対戦を開始する前、予約する前、さらには、ログインする前に決定されていて、 それが順番に作為なく消費されていることが以下で確認することができます。 これにより天鳳のサーバでは、特定の誰かに特別な牌山を選択できないことがわかります。 また、公開しているハッシュ値(SHA512)の一方向性から対戦者が牌山を逆算することが事実上不可能であることや、 衝突困難性から天鳳の運営者が乱数種を差し替えることが不可能であることが分かります。

これらの手法はインターネットの通信を安全に行うために使用されいてる技術と同じですので、 おおまかに「天鳳の牌山はインターネットのセキュリティ技術と同じ方法で信頼性が担保されている」と言えます。

- 一覧の更新が停止している場合は乱数生成サーバがメンテナンスを行っています
- 乱数生成サーバがメンテナンスを行っている場合は検証できません
- いつでも誰でも検証できるようになっていますので毎回検証する必要はありません
- SHA512一覧の更新周期が対戦の生成速度に比べて長い場合(稼働率が高い卓)は1つ2つほど先にずれることがあります。
- 個室ロビー、大会ロビー、テストプレイの公開予定はありません
- SHA512のソースは4(座席並べ替え情報) + 624*8(乱数種) = 4996bytes
- SHA512は牌譜と座席から再計算可能です
段位戦一般
東風東南
喰断ナシ 表示 表示
喰断アリ 表示 表示
喰アリ赤 表示 表示
喰アリ赤速表示 表示
三喰赤 表示 表示
三喰赤速 表示 表示
上級
東風東南
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
特上
東風東南
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
鳳凰
東風東南
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
表示 表示
雀荘戦若葉
東風東南
喰赤祝0 表示 表示
喰赤祝2 表示 表示
喰赤祝5 表示 表示
三喰赤祝5表示 表示
東風東南
表示 表示
表示 表示
表示 表示
表示 表示
※更新周期は1分
※最大20戦分を表示テスト中
※" USED "はLastUpdatedまでに消費したもの
参考)牌山生成手順 http://blog.tenhou.net/article/30503297.html
参考)牌山生成方法の検証用データ http://blog.tenhou.net/article/174202532.html


大まかな検証手順

□ これから予約しようとしているルールのSHA512一覧をブラウザで表示したままにする
※対戦を開始することが誰にも予測できないタイミングで行うのが理想的です

□ 対戦終了後に牌譜からSHA512を計算して上のページから検索する
※牌譜ファイルは有料Windows版で、ファイルに牌譜を保存する設定で対戦する必要があります
------------------------
牌譜URL to SHA512
※Flashエコノミー版の牌譜URLは使用できません。
※天鳳が提供しているCGI版の検証ツールを使用することは、厳密な検証にはなりません。
------------------------

□ SHA512が事前に表示した一覧の適切な位置に存在すれば検証できたことになります。


※一覧の表示から対戦開始までに他の対戦が複数発生する可能性がある状況下で検証する場合には、 対戦ログで消費済みのSHA512を知る必要があります。 この場合、対戦ログでは同一秒に開始した対戦はログの掲載順序が前後する場合があることを考慮してください。


Q) 対戦が終了するとハッシュが消えてしまっていて見れません…
ハッシュ一覧の取得手順が間違っている可能性があります。 対戦前にハッシュ一覧を開いて、対戦終了後にそこから検索してください。 対戦終了後にハッシュを取得した場合、天鳳側が差し替えた可能性を否定できなくなるため意味がありません。

Q) 毎回確認するのが大変なのですが…
いつでも誰でも検証できる方法が公開されているため、 すべての将来の対戦も検証可能だと考えることができます。 ですので、検証は1回のみで問題ありません。 この情報を疑う場合には、毎回確認する必要があります。


© C-EGG