オンライン麻雀「Maru-Jan」牌操作がないことの証明を公開

写真拡大

株式会社シグナルトーク(代表取締役:栢 孝文、所在地:東京都大田区)の運営するオンライン麻雀ゲーム「Maru-Jan」は、12月18日(木)に麻雀対局中に牌操作が行われていないことの証明を公開しました。
(https://www.maru-jan.com/game/nopaisousa.html)
また、牌操作の疑念に対して、代表(栢)が正面から答えたコラムページも公開しました。コラムでは、課題への向き合い方や、複雑な証明を噛み砕いて解説しています。
(https://www.maru-jan.com/content/developer/column_10.html)

“牌操作”とは、ゲーム中に牌山を意図的に変更し特定のプレイヤーが有利(または不利)になるよう操作すること。Maru-Janは「ハッシュ値」を活用し、牌操作がないことの証明方法を導入しました。

ハッシュ値とは簡単に言うと、元データを別の不規則な文字列に変換したものです。

【画像 https://www.dreamnews.jp/?action_Image=1&p=0000336399&id=bodyimage1】

以下の性質を持つため、データの”指紋”のようなものとも言われます。
・元データが同じなら、ハッシュ値も必ず同じ
・元データが少しでも違えば、ハッシュ値は全く異なる
・ハッシュ値から元データは特定できない

【画像 https://www.dreamnews.jp/?action_Image=1&p=0000336399&id=bodyimage2】

■ ハッシュ値を使った『牌操作がないこと』の証明方法
牌山が対局前から決まっており、対局中に改ざんされていないことを、ハッシュ値の性質を利用して証明を行います。

牌山の順を表す「牌山データ※」をハッシュ値に変換し、対局開始時から対局者に公開します。
対局が終わったあと、牌山データを公開します。

その牌山データを変換ツールなどでハッシュ値に変換すると、対局開始時に公開されたハッシュ値と一致します。
これは、対局開始時に公開した牌山データが途中で変わっていないことを意味するので、対局開始時点で牌山は決まっており、牌操作はないことが証明されます。

※牌山データ:牌山を配牌取り出し開始位置から順に文字列で表したもの。
       萬子⇒1m2m3m4m5m6m7m8m9m
       筒子⇒1p2p3p4p5p5p6p7p8p9p
       索子⇒1s2s3s4s5s6s7s8s9s
       字牌⇒1z2z3z4z5z6z7z(東南西北白發中の順)
       ※赤牌は0で表す(0m,0p,0s)

【画像 https://www.dreamnews.jp/?action_Image=1&p=0000336399&id=bodyimage3】

■ 「Maru-Jan」では牌操作がないことの確認方法
(1) 対局開始時から、局の牌山データを変換したハッシュ値が表示できるので、手元に記録します。
(2) 対局終了後、牌譜にて牌山データを表示できるのでコピーします。

【画像 https://www.dreamnews.jp/?action_Image=1&p=0000336399&id=bodyimage4】

(3) 任意のハッシュ変換ツールで、手順(2)にてコピーした牌山データをハッシュ値(SHA-1)に変換します。
手順(1)で記録したハッシュ値と一致していれば、牌山データは局の開始時と終了後で変わっておらず、牌操作はないことが証明されます。

■オンライン麻雀「Maru-Jan」について
【概要】
サービス開始から21年を迎えた会員数170万人以上のネット対戦型オンライン麻雀ゲームです。
和の高級感を追求した、1ゲーム毎に課金の完全有料サービスです。
Windows・iOS・Android・Mac・Amazon Fire TV・Android TVに対応しており、プレイ、イベント参加が可能です。