« 2011年10月 | メイン | 2013年12月 »

2012年02月22日

ドリランドトレード再開

トレード停止状態だったドリランドが、21日18:00にトレード機能復活した。
さっそくスマホとPCで二重ログインできるかどうか確認・・・。できたよ(^^;)。
トレキャン倉庫の同時受け取りを確認・・・。むむっ!できない・・・。何度か試してみたがどちらかが「受け取り済み」になるようだ。
どうやらトランザクション処理を組み込んだか。まぁ、そのほうが不正複製対応としては正道で確実だわな(1台で行なうラグ利用の複製にも対応できる)。

驚いたのは、複製実験の際に生まれた複製品が消えている・・・。
但し、トレードで移動された複製品は消えてないらしい(私は持ってないので分からん)。
問題はそれを追いかけられるか?ってことだが、もしかしたらログで追いかけて消去する可能性は高い。
っていうか、消去しなきゃ公平性が保たれないだろう(消された人と消されなかった人が生まれるのはマズい)。
まだ全ての複製品が消されたわけではないようだが、私のを消したってことは他のも全て追いかけて消す自信があるってことだろうな。

ちなみに、私はアカBANされなかった。良かった(笑)。

投稿者 masatsu : 00:05 | コメント (0)

2012年02月21日

オンラインゲームの著作権

ドリランドのカード複製問題について、『複製品販売は著作権侵害に当たらない』、『そもそもゲーム内アイテムは著作物ですらない』という意見があるようだ。
論拠としてコンピュータソフトウェア著作権協会(ACCS)がRMT(Real Money Trade)の取引について述べた「ゲーム用の通貨、アイテム、経験値などは、主に数値データですから著作物ではありません。」という意見が上げられている。
また、著作物だとしても同じサーバ内でデータを動かしただけだから良いという意見も存在するようだ。

私は一介のプログラマであり法律家ではない。しかし、一応自分の意見をまとめておこう。
(あくまでも私個人の見解であり、正解であるとは限らない)

1.ACCSの見解は複製について述べたものではない。
また、2005年の話し(7年前)であり、現在の状況を踏まえたものではない。
ドリランドのカードはその絵柄だけでも美術の著作物として創作性が見受けられるため、著作物であることは間違いない(単なる数値データだから創作性など無いという人は、そのデータを作成するにあたっての労力を考慮していない)。

2.正規に(ガチャやコンプやトレードで)取得したカードをサーバ内移転するのは問題ない。
しかし、取得したカードをプログラムのバグをついて増殖する行為自体は複製権侵害だ。
うっかり(笑)増殖してしまった場合は問題ないが、今回の複製問題は悪意をもって故意に複製し、他者に配布している。
著作権とくに著作(財産)権侵害については、著作権者に経済的な不利益を与えたか否かが違法か適法かの判断基準。
不正に複製した著作物を他者に配布(有償・無償は関係ない)した行為によって、GREEのガチャ売り上げが予想よりも低下したことが合理的に判断できるので著作権侵害は疑いようがない。

なお、上にプログラムのバグと書いたが、個人的にはバグではなく『フールプルーフに作られていなかっただけ、つまり想定外の操作方法による異常動作』であると思う(バグって言うと開発者が可哀想だ)。

投稿者 masatsu : 01:00 | コメント (0)

2012年02月19日

GREEドリランドのカード複製

2chで祭り状態の複製ネタ。
2月19日にトレード停止の対策がとられたので、もう書いても良いだろう。

【GREEドリランド カード複製方法とその原因についての考察】

『複製方法』
・用意するもの
 携帯電話(スマートフォンで成功・・・ガラケーは不明)
 PC(ドリランドにログインできるようにChromeをUA偽装したもの)
 GREEアカウント(単アカで良いが、複アカあると捗る)

・複製手順
 1.複製したいカードをトレードに出し、キャンセルしてもらう(複アカならサブに出してすぐにキャンセルすれば良いが、単アカの場合は最悪24時間待つ)。
 2.スマホとPCでドリランドにログインしておく。
 3.どちらもトレード品の受け取り画面にする。
 4.タイミングを計って、2台とも「受け取り」をほぼ同時に選択する。
 5.要はトレキャン倉庫に入っているカードを2台で同時に受け取るだけ(試してないがプレゼントボックスでもできるかもしれない)。

・ポイント
 回線速度やトラフィック、スマホやPCの処理速度等を勘案して、受け取りのタイミングをずらさなければ成功しない。
 うちの環境では、スマホを操作して約0.5秒後にPCを操作すると成功した(試行錯誤するしかないが、慣れてくれば成功率は上がる)。
 単なる同時押しでは成功率は低い。


『複製したカードは消せるか?』
 カード固有のID(シリアルナンバー)が無いようなので、複製したものとそうでないものを見分けるのは難しい。
 どれがオリジナルなのかすら分からないはずだ。
 当然、オリジナルまたは複製品をショップ売りや強化の餌で消しても、他のカードは消えない。
 現状出回っている複製品に対処(カード消去)することは技術的に難しいと言わざるを得ない。
 サーバのログを解析して足跡を追っていくことは可能だが、金と時間が膨大に必要で現実的でない。


『バグの原因』
 トレキャン倉庫のDBテーブルをA表とし、個人の所有カード情報をB表とする。
 トレード品受け取りの手順は次の通り。
 手順1.A表から目的のレコードを検索
        ↓
 手順2.B表に新規レコードとして、そのレコードを挿入(INSERT)する。
        ↓
 手順3.A表からそのレコードを削除(DELETE)する。
 本来、手順1の前にトランザクションスタート、手順3の後にコミットが必要(トランザクション処理)。
 しかし、Web系ではDBのトランザクション処理は応答速度が遅くなるため好まれない。
 金銭がからむ部分(ショップやガチャ)では必須だが、単なるトレードでは必要ないと判断したものと思われる。
 
 しかし、非トランザクション処理では、次のようなことが発生する(縦方向は時系列)。
 (プロセスX)    (プロセスY)
   手順1
    ↓        手順1
   手順2        ↓
    ↓        手順2
   手順3        ↓
             手順3・・・この削除処理はエラーになるが問題ない
 プロセスXの手順3(削除)の前にプロセスYの手順1(検索)が走ってしまうと、どちらのプロセスも手順2(挿入)が問題なく実行されてしまう(つまり複製成功!)。
 
 トランザクション処理では、次のようになる(縦方向は時系列)。
 (プロセスX)    (プロセスY)
 トランザクションスタート
    ↓
   手順1
    ↓     (リクエストが来ても
   手順2        待たされる)
    ↓         ↓
   手順3        ↓
    ↓         ↓
   コミット       ↓
          トランザクションスタート
              ↓
             手順1
              ↓
             手順2
              ↓
             手順3
              ↓
             コミット
 プロセスXがコミットされない限り、プロセスYは実行できない。
 同じカードを受け取ろうとしてもプロセスYは必ずエラー(既に受け取り済みです)になるので、複製は失敗する。
 
 誰かがあるデータにアクセスしている場合、他の人を排除する仕組みを「排他制御」という。
 そのデータにロック(鍵)をかけるわけだが、レコード単体にロックをかけるのはサーバにかなりの負荷がかかる。
 ではテーブル(表)にロックをかければ良いのかというとそうでもない。
 上記A表やB表は個人個人に一つではなく、何万人もいるユーザの全てで共有されていると推測される。
 したがってテーブルにロックをかける方法では他のユーザに迷惑をかけることになる(サーバ負荷は小さい)。
 この折衷案としてページ単位(複数レコード)でロックをかける方法もある(一般的にはこのページロックが多い)。
 
 実は非トランザクション処理のプログラムをトランザクション処理に変更するのは半日もあれば完了する。
 難しいのはロックの粒度(アイソレーションレベル)をチューニングして、ユーザから不満が出ないように速度性能を調整する作業だ。
 実稼動状態においてそのテストを行なうのは非現実的であり、難しいと言わざるを得ない。
 なお、もともとこれはトランザクションにするまでもない処理であり、当初の仕様書にも求められていないと推測するが、問題は「二重ログインが可能である点」にあると思われる。
 
 複製手順の2(スマホとPCで同じアカウントを使いログインする)が実現できなければ複製は防げるはずなので、この部分を改善して頂きたい。
 改善するには半日、長くても1日あれば十分のはず。


『違法性』
 システムのバグをついてカードやアイテムを複製しても「不正アクセス禁止法」にはならない(あくまでも適法なアクセスだ)。
 電子計算機損壊等業務妨害罪や電子計算機使用詐欺罪による立件も難しいだろう。
 但し、カードデータはGREEが著作権者なので、著作権法の複製権(Copyright)侵害は確実(著作権者の許諾を得ずに無断で複製したわけだから)。
 ではすぐに警察が動くかというとそうはならない。
 著作権法侵害は親告罪(権利者の訴えがないと罪にならない)なので、GREEが訴えない限り捜査は始まらないのだ。
 しかし、訴えられれば著作財産権侵害で最悪10年以下の懲役及び1000万円以下の罰金の両方を科されることになる。
 
 個人的な実験でカードを数枚複製したとしても、それを他人に配布して利益を得ているのでなければ訴えられることはないし、訴えられても不起訴処分(微罪は訴追せず)になるだろう。
 しかし、ヤフオクや楽オクで荒稼ぎをしている場合、『逮捕・起訴・有罪確定・執行猶予付かず刑務所行き』の流れに乗ることになる。
 これは刑事訴訟の場合のみで、ほかに民事訴訟も発生する可能性がある(こちらは下手したら億単位の損害賠償請求)。
 
 大きな問題としては立件するための証拠をどう集めるか?だ。
 複製品とオリジナルを見分けることができないシステムであるため、サーバログや状況証拠に頼らざるを得ず、確実に有罪に持ち込めるかは断言できない。
 そして検察は確実に有罪に持ち込めなければ起訴しない体質だ。
 GREE側が資料提出などでどこまで検察に協力するかにかかっているが、著作権法違反事件としては不正に得た金額がかなり大きく、ぜひ立件して欲しいところだ(すでに水面下では動いているかもしれないが・・・)。

投稿者 masatsu : 14:20 | コメント (0)