カテゴリー

雀魂には牌操作は一切ナシ!!それを証明できるMD5&SHA256ハッシュ検証システムの仕組みを解説します

当ページのリンクには広告が含まれています。

オンライン麻雀ゲームに批判的な意見として、「特定の人が有利になるよう牌操作が行われている」というものがあります。

雀魂のアプリレビューやTwitter上でも「課金者が有利なように牌操作されている」というコメントを見かけることがあります。

それを真に受けることがないよう、本記事では「雀魂では牌操作(すり替え)は絶対に行われていない」ということを取り上げていきます。

※なお本記事でいう「牌操作」とは対局中に牌山を操作すること(いわゆるすり替え等)のことを指します。

目次

 雀魂で「牌操作」がありえない理由

雀魂で牌操作(すり替え)が行われることはありえません。

なぜ断言できるのか?

それは、対局中に特定のプレイヤーの有利になるように牌山を途中で操作することができないことが証明可能だからです。

具体的には、雀魂は牌山のMD5&SHA256ハッシュ検証システムを導入しており、すり替えなどの不正がないかを常時検証することができます。

※雀魂のアップデートにより2023年5月24日以降の対局についてはMD5ではなくSHA256で暗号化されているため、本記事ではSHA256ハッシュの暗号化について記載します。

SHA256ハッシュ検証とは?

雀魂運営より、「完全ランダムでの対局の生成を保証」する旨の声明が出ております。

声明内容は下記画像の通りです。(長いので下で要約しますが興味のある方は全文読んでみてください)

要約すると

  • 牌山は配牌が配られる前にランダムに生成される
  • その牌山をマンズは1m~9m、ピンズは1p~9p、ソーズは1s~9s、字牌は1z~7zに置き換えて一列の英数字の羅列にする
  • その英数字の羅列をSHA256ハッシュ値に変換(暗号化)する
  • こうしてSHA256ハッシュ(牌山ごとに唯一無二のコード)が生成される
  • SHA256ハッシュは対局中に牌山をクリックすることで確認できる
  • SHA256ハッシュは牌譜画面の「山」からも確認できる
  • SHA256ハッシュが対局中と牌譜画面で一致しているかどうかで、牌山が改ざんされていないかを検証できる
  • 雀魂ではSHA256ハッシュが常に一致するため、牌操作(牌のすり替え)がないことが証明できる

ということになります。

実際に検証してみた

本当に上記の通りになるかを検証してみました。

STEP
対局時の牌山コード(SHA256ハッシュ)を確認

配牌直後に牌山をクリックすると牌山コードが表示されます。これは配牌から和了(または流局)までの1局の間は変化しません。

牌山コードは「238921fa39fb4b3cb64840fd838847b7eee8672df58c4382cd0e3c2a596772a6」でした。

STEP
牌譜画面から牌山と牌山コード(変換前)を確認する

対局終了後、牌譜から該当局の牌山コードを確認します。

局を選択し「山」ボタンをクリックして下の方にスクロールすると、牌山コードとして、マンズは1m~9m、ピンズは1p~9p、ソーズは1s~9s、字牌は1z~7zに置き換えられた一列の英数字の羅列が表示されます。

変換前の牌山コードは「4m2s5p6m8p3p7p7s8p4s0m9m7p2p1s1m4z1s4p5m2p5s6p7m8m6s3z5s9s2p6m2m9m3z1z8s7z3m3p6p1s1p8p4m4m4z3z9m2s9s3s6s0p4m8m6z6s4z5z2s3s6p7s7z4s9s3s8m2z3z6z4p6s9p9p4s2z1m1p1z3m6p6m3s5z1z1m8m2m3p2z0s2m3p7p5m9s7s2p8p9p5p5p1p6z3m4z4p2s7z7m7s4p7m5s9p3m6z5z5m8s5z7m9m7z1m2m7p8s8s1p1s6m4s1z2z」でした。

STEP
牌山コード(変換前)をSHA256ハッシュ変換する

SHA256ハッシュ計算ツールを使用し、牌山コードをコピペして、ハッシュ値に変換します。

「SHA256ハッシュ 変換」でググれば変換できるサイトが出てきますので活用します。

STEP
ハッシュ値の一致を確認する

STEP1とSTEP3のハッシュ値が一致していることを確認します。

牌山コードが1文字でも違えば全く違うハッシュ値となり、かつ対局中の牌山コードがその局中は不変であることから、牌山は少なくとも配牌時点で確定しており、対局中の牌操作(すり替え)がないということが証明できます。

 どうして「牌操作」されていると感じる?

雀魂には牌操作(すり替え)がないことが確認できました。

にもかかわらず、「牌操作されている」という声は多く聞かれます。それはなぜでしょうか。

「勝ったら実力・負けたら運」の考え方

不完全情報ゲームあるあるですね。

そして特にデジタルゲームの場合、運の悪さ=ランダム性の不備という考えに至りがちで、ランダム性への批判がつきものです。

麻雀に限らずデジタルカードゲームなどでもそういう声はよく聞かれます。

麻雀は偏りのある理不尽なゲームである

とはいえ、確かに全く有効牌が入らなかったり、追っかけリーチされて当たり牌を一発でつかんだり、5面張がペンチャンに負けたり、私も「まじかよこのクソゲー!!」と叫びたくなることも正直あります。

麻雀ってそもそもけっこうな理不尽ゲーなんですよね。

雀魂に限らず、天鳳でもリアルの全自動卓でも少なからず牌の偏りはあります。

「牌操作があるから」ではなく「麻雀とはそもそもそういうもの」と考えるべきでしょう。

※そのあたりは以下の外部ページがよくまとまっていると思いますので参考まで。

 ネット麻雀はイカサマなの? | 初心者のための麻雀用語解説

 開発者コラム 第2話 牌の偏り 前編~確率の偏りとは何か? | オンライン麻雀 Maru-Jan 公式サイト

配牌の操作がないことは証明できない

なお、SHA256ハッシュ検証では牌山の途中改ざんがないことは証明できますが、残念ながら牌山生成時の牌山操作(いわゆる積み込み)の検証はできず、特定プレイヤーに有利な配牌を与えていないことの証明は現状はできません。

しかしながら、配牌は牌譜機能で常に公開されていますので、特定の人が有利になっているような状況があれば検証しようと思えばできます。(各プレイヤーの平均配牌向聴数も有志サイトから確認できます)

信用を失うリスクを負ってまで特定のプレイヤーを配牌で優遇するメリットは運営にはないと思います。

ですので、意図的な配牌不正というのはあり得ないと思われます。

牌山生成のアルゴリズム

ただ、牌山生成のアルゴリズムによっては、意図しない偏りが出たりすることはあるかもしれません。

運営は雀魂の牌山生成を「完全ランダム」という言葉を使って表現していますが、完全な乱数で牌山を作ると毎回七種七牌みたいな配牌になるという話もあり、何らかの手は加えているものと思われます。

※Maru-Janという麻雀ゲームは全自動卓に近い牌山が生成されるプログラムを組んでいるらしいです。

開発者コラム 第3話 牌の偏り 後編~初期プログラムの失敗 | オンライン麻雀 Maru-Jan 公式サイト

ただそれがうまく機能していないと予期しない偏りにつながる可能性もあり、そのあたりのアルゴリズムが(もしくはサイコロだけでも)多少なりとも検証可能になれば、より信頼性は増すのかなという気もします。

「天鳳」ではそのあたりが完全ではないものの検証できているようです。

また、後発の「麻雀一番街」では牌山生成方法が公開されており、今後「即時牌山レコード」(全ての配牌の各種類比率を即時サイトに反映する)の公開を予定しているとのことで、雀魂も同様の方針となることに期待します。

まとめ

今回は「雀魂には牌操作はない」というテーマでまとめました。

負けが続くと雀魂に牌操作・チートがあるのではないか?と感じることもあるかと思いますが、まず牌操作はないといえますので安心してプレイしてください!

よかったらシェアしてね!
目次