自由研究

オンライン麻雀ゲームの牌山イカサマの検証について

投稿日:

今日、雀魂のアップデートがあり、牌山の検証システムに使われるハッシュ値がMD5からSHA-256にアップデートされました。
で、牌山検証とはなんぞや、というと、オンライン麻雀はシステムがイカサマをしているんじゃないかという懸念を払拭するために提供されている仕組みのことなのです。

さて雀魂に搭載されている検証システムはどういうものか、というとですね。

  1. 対局開始時にシステムが牌山を決定し、牌山を文字化した「牌山コード」とその牌山コードの「ハッシュ値」が生成される。
  2. 対局中、プレイヤーは「ハッシュ値」を確認できる。
  3. 対局終了後、プレイヤーは「牌山コード」を見ることができ、「牌山コード」と「ハッシュ値」の一致を検証できる。

という仕組みです。
これによって、たとえば「誰かがリーチしたら、牌山の中が入れ替わって俺のツモに当たり牌が来るんだよ!」という、コンピューター麻雀あるある(大昔のゲームにはマジでこういうものがあったらしいです)のイカサマが行われていないことが分かる、というわけです。
つまり、「雀魂は牌山の中が入れ替わって変なツモを掴まされることは無い」んです。

やりましたね。これで全てのイカサマは封じられました。
……そうでしょうか?

  • リアル麻雀よりも高い確率で天和がアガれるようになっているのでは?
  • 配牌で国士手が来たら、么九牌をツモりやすいような牌山になっているのでは?
  • 特定のプレイヤーを優遇/冷遇した配牌になるように調整されているのでは?
  • 終盤のラス目には一発逆転手が来やすいようになっているのでは?

など、牌山の時点で積み込みを行うイカサマは防げていないのです。

一応立場を表明しておきますが、私は雀魂がイカサマを行っていると考えているわけではなく、「雀魂はイカサマをしていない(はずな)のに、それがきちんと証明できていない」ということを怒っているのです。

さて、ではどうすれば良いか。
牌山に積み込み的なイカサマが無いことを証明するには、牌山の生成方法を公開するしかないでしょう。
しかも、単にランダムな生成アルゴリズムですよと言い張るだけでは、「都合の悪い牌山を捨てる」というイカサマが有り得てしまいます。
雑に言えば「雀魂が牌山のリセマラをするかもしれない」ってことです。
というわけで、牌山生成にユーザーが介入して、雀魂に牌山リセマラをさせないようユーザーの手で制御しなければいけません。

一方で、「牌山生成をユーザーが操作したら、それは牌山丸見えと同じだろ」と思われるでしょう。
もちろん普通に公開すれば丸見えになります。
なので、「生成アルゴリズムは公開するし、イカサマがないことを保証できるようにするが、牌山丸見えにはならない」ようにする必要があります。
話がちょっと学術の範囲に踏みこんでますが、実際のところそんなに難しくはありません。

  1. 牌山生成アルゴリズムは公開しておく。
  2. 対局前に、プレイヤーがそれぞれランダムな数字(P1~P4)を作成する。
  3. 対局開始時に、システムはプレイヤーから得た数字を組み合わせた数字(たとえばP1⊕P2⊕P3⊕P4)を作り、その乱数を元に牌山を生成する。
  4. 対局中は自分の作成した数字以外は見られない。これで牌山丸見えを防ぐ。
  5. 対局終了後、全プレイヤーの作成した数字(P1~P4)を見ることができ、「P1~P4」と「牌山生成アルゴリズム」から、不正なく牌山が生成されたことを検証できる。

などとすれば良いはずです。
ちなみに牌山の全パターンは2の600乗以上あるらしい(参考:麻雀の数学)ので、各プレイヤーはそれを超える範囲の乱数、たとえば1024bitの乱数を持ち寄るべきですね。
あと、この方法を使うとプレイヤーの手で「牌山の乱数調整」が可能になってしまいますが、この対応は例えば「P1~P4に加えて5分ごとに切り替わる乱数値P5も用いて後で公開する」などで対応できるかと思います。

と、いうわけで、「どうせ検証可能にするならここまでやってくれよ」という話でした。おしまい。

-自由研究

執筆者:

関連記事

no image

3DF Zephyrでフォトグラメトリーする際のノウハウ

最近フォトグラメトリーにハマり、その成果として3DF Zephyrを使って神社まるごと3D化しました。 横浜熊野神社 by givemegohan on Sketchfab このときのノウハウを共有し …

no image

マイナンバーカードは偽造できるのか

まえがき マイナンバーカード、発行してますか?私は持ってます。 さて、マイナンバーカードの普及促進のキャンペーンにSPY×FAMILYが抜擢されて話題です。 マイナンバーカード普及に向けたSPY×FA …

no image

ランダムな日本人データを生成するツールをつくった

前置き ダミーの名簿データが作りたい、という需要は稀にあるものです。 住所とか、年齢とか、職業とか、いい感じにランダムなデータが欲しいことがありますよね。 しかし、適当にデータを作ってしまうと、「東京 …

no image

不定期連載「認証と周辺技術」その2「認証の種類」

驚くほどに読者が居ないですが第二回です。 今回は認証のやり方について、その種類をまとめていきたいと思います。 分類 認証の種類は「認証の三要素」として分類されることが多いです。 これはIPAが2003 …

no image

「遠赤外線で温かい」とは何か調べてみた

皆さん、遠赤外線好きですか? コタツとか、サウナとか、電気ヒーターとかから出てるらしいです。 焼き芋とか焼き鳥とか、土鍋とかも、遠赤外線で美味しくなるらしいです。 どういうことなんでしょう。私はよくわ …