操作されない配牌
推しのVTuberの雀魂動画を見て最近始めたのですが、レビューを見ると配牌が偏るなどの低評価がいっぱい。。。
ゲームの方はねこみみだし、色々初心者に優しいシステムで楽しいのですが、そういうので低評価ついちゃうのは残念。
ゲーム開始後の改竄防止についてはMD5ハッシュシステムで証明されていますが、そもそもの配牌が手心を加えられていないという証明まではないようです。
配牌の不正防止も同様に証明できる仕組みがあれば、納得できる人も増えるのかなぁと思って方法を考えてみました。
- 各プレイヤーには、10個ほど、16進数8桁の配牌シードを予め生成しておき、ゲーム開始前に確認できるようにします。
1ゲーム毎に先頭の物を1つ使い、使うと自動でランダムなシードが補充されます。
- ゲーム開始時に、参加プレイヤーの配牌シードを繋ぎあわせたものを、配牌生成の種として使います。
繋ぎ合わせる順番は参加プレイヤー名の順番にします。
- 配牌生成の種に、連番を付与してハッシュ値を生成し、その剰余を使って牌を決めます。
この方法では、プレイヤーに予め配牌シードを見せてしまうので、運営側で都合の良い種を生成することは出来ません。
なお、マッチング相手を選ぶときに、組み合わせを色々試して、都合の良いものを選ぶ事は出来てしまいます。
そこまで防ぐには、プレイ開始時にプレイヤーが好きな配牌シードを入力できるようにすれば可能ですが、そこまでするとスムーズなプレイの支障になりそうです。
(追記)
画面挟んでしまうけど、マッチング後にランダムに10個くらいのシードを生成してその場で選んでもらうだけでもいいかも。
4人がどの組み合わせを選ぶかは予測できないので十分証明できるだろうし、事前にプールするよりスマートそう。
(追記2)
画面挟むなら128bitくらいのシード値のハッシュ値を画面にだして選んで貰って、試合後にシード値を見せるのがいいのかも。
プレイヤーが共謀しても試合中に牌を予想できなくなるし、運営側の改竄はハッシュ値が変わってないこと&運営の関与できない部分で選択されることで関与不可を証明できそう。
設定
結果