かもブログ

かもかも(@kam0_2)の雑記。地理やITに関するにわか稚拙センテンスの掃き溜め。

なぜCoinhive事件でプログラマが怒っているかを一般向けに解説したい。

 Coinhive事件の二審の判決が出た。一審の横浜地裁が無罪判決を出したのに対して、東京高裁は有罪判決。非常に残念な判決だった。事件が起こってからすでに1年半以上経っているが、事態は一向に良い方向に向かっていないと感じている。ネット上のプログラマたちは怒りの声をここ数年上げ続けているにもかかわらず、だ。
 しかし、一般の多くの人にとっては、Coinhive事件はあまたの新聞記事の1つかもしれない。その記事を読んだとしてもなぜプログラマが怒っているかわからないかもしれない。少しでもCoinhive事件に関して戦っている人の応援がしたい。そこで、一般の人のために「なぜハッカーが怒っているのか」をQ&A形式で解説したい。 と思う。
(この記事の著者は専門家ではないので色々と誤りがあると思われますが、お許し願います。)

Q&A

Q Coinhive事件って?

A 自分のWebサイトに、利用者に「Coinhiveを使ってます」と書かずにCoinhiveを設置した人たちが一斉に「ウイルス作成罪」で全国で検挙された事件。ほとんどは罰金数十万円を求刑された。

Q 裁判やってるの?

A 日本の司法制度では、軽い罪であれば課された罰金を払うだけで裁判なしで司法手続きを終わらせられるため、多くの検挙者は裁判を起こさなかった。(裁判には莫大な費用や時間がかかる。罰金を払ってしまうほうがお財布に優しい。)しかし、「これはおかしい」と思う人が勇敢にも裁判を起こして戦っている。一審では無罪判決。検察の控訴の後の二審では有罪となった。現在は上告を検討しているそうだ。

Q Coinhiveって何?勝手に仮想通貨を採掘したって聞いたけど...?

A Coinhiveは「現在の広告の代わりとして、広告を表示するのではなく、仮想通貨をWebサイト閲覧者のパソコン/スマホで採掘して、サイト管理者に収益をもたらす」サービスの名前。現在は収益性の問題からサービスは公開停止している。「Coinhiveを使ってます」と書かずにCoinhiveを置いたのは確かに「勝手に仮想通貨を採掘」していることになる。

Q それは普通に悪いことじゃん。捕まって当たり前でしょ。なんでプログラマは怒るの?

A 主に2つの理由がある。1つ目は「それは悪いことかは置いておいて、Coinhiveはウイルスではないので、『ウイルス作成罪』で捕まるのはおかしい。」という意見。これは事件に怒っている人に共通する理由と言える。2つ目は「そもそも悪いことではないだろう。」という意見。2つ目は怒っているプログラマでも意見が分かれる。

Q「ウイルス作成罪」って?

A 正式には「不正指令電磁的記録に関する罪」という。ウイルスを作ること、あるいはウイルスを使う(配る)ことを取り締まる法律。ウイルスにはいろんな定義があるが、法律には、

「人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録」

とあり、簡単にすると...?

「俺らがスマホとかパソコン使うときに、俺らがやりたいことを邪魔する悪いソフト=ウイルス」

って感じになる。つまり、PCにあっていつでも見れると思っていた写真を勝手に暗号化して読めなくしてしまうランサムウェアはもちろんウイルスになる。しかしこの定義だと、文書をワープロで作っているときに邪魔をしてくる「ソフトウェア更新のご案内」とか、スマホ音ゲーをやっているときに通知を送ってきて邪魔してきたアプリなんかもウイルスになってしまう。法律には明確な定義がなく、もとから「何でもかんでもウイルス扱いされてしまうのではないか」という法律の問題点が指摘されていた。
 重要なのは「ユーザーの意図しない行為をするシステム」であるかどうかとされている。

Q 仮想通貨を採掘することは、サイトを見てる人にとって、意図しない行為だし、邪魔な行為じゃないの?

A サイトを見てる人が意図していることは、そのサイトに書かれた内容を読むことだと言える。だから、それを邪魔するようなものは確かにウイルスかもしれない。仮想通貨を採掘することは、実は「パソコンやスマホにめちゃくちゃ難しい数学の問題を解かせること」と言い換えることができる。(記事末尾参照) だから、仮想通貨を採掘するためにはコンピュータに頭を使わせる行為なので、コンピュータが本来行わなければならない「サイトを見せる行為」に頭を働かせられなくなる可能性がある。(サイトを見せるためにもいろんな計算問題や、絵や文字をかくという美術の問題を解かなくてはいけない。)人間のようにコンピュータもいろんなことを同時にやるとうまくいかない。しかし、コンピュータが人間と違うのは、同時に物事をやるときに、どれにどの割合で頭を使うか正確に決められる。Coinhiveでは採掘のためにコンピュータがどれぐらいまで頭を使っていいかを指定することができた。裁判をしていた人は、サイトを見ることや、他のソフトをサイトを見ながら使うことにはほとんど影響しないように設定していた。
 さらに、「ユーザーの意図しない行為」であったかどうかについても、このように考えるとそうではないと考えられる。Coinhiveは従来のネット広告の代わりとして開発されたが、我々はネットでWebサイトを見るとき、「広告を見ることを意図しているだろうか?」Youtubeでヒカキンの動画を見るときに、動画広告を見たいと思っているだろうか?答えは明らかに違うはずである。ネットには邪魔な広告がたくさんあるがこれらも明らかに意図しない行為である。さらに、Coinhiveは、サイトを見てる人のコンピュータに計算をさせてお金を稼ぐ仕組みだが、ネット広告もサイトを見てる人のコンピュータに、広告を表示するために絵や文字をかかせて、お金を稼いでいる。両者に大きな違いを見出すことはできないのである。Coinhiveはネット広告の一種であると考えるべきで、(ネット広告は明らかにウイルスでないから)ウイルスには当たらない。と多くのプログラマは考えているのだ。また中には、Coinhiveは広告と同じだから悪いことではないと考えるプログラマもいる。それはこういう理屈でなのだ。

Q でもやっぱり勝手に採掘するのは悪そうなんだけど?

A 採掘とは数学の問題を解くことで、それ以外は特に何もしない。パソコンやスマホを壊したり、個人情報を抜き取ったり、あなたのお金を盗むような悪いことは一切していない。勝手に採掘といっても、あなたのコンピュータに貯蔵されていた金塊を勝手に掘り出しているわけではない。安心してもらいたい。

Q でも、勝手に仮想通貨を採掘されることは私が意図したことじゃないよ?広告はネットにいつも出ているし、広告が出るのは仕方ないことだと思っているから意図していることだよ?

A まず、意図というものは個人個人で異なる。そこで「社会通念上」という前提のもとで法律の話は進めなくてはいけない。たしかに、ネット広告のように長い歴史をもつものなら、「仕方ないよね」という意図が社会で一般化するだろう。しかし、Coinhiveは今までになかった新しい発明であり、「良いもの」「悪いもの」「仕方ないもの」といった社会での認識は形成されていない。新しいものはよく人々の思い込みとは違うことを実現する。最初にスマートフォンが出たとき、携帯なのにボタンがついていないのは「意図に反したデザイン」だったはずだし、最初に動画広告ができたときは、それを見た人はさぞ驚いたはずである。(僕もそうだった)今までの人々が知らない発明は、みんな「そんな事考えなかった」という反意図性を持っている。もし、それが「意図に反する」から「ウイルス」とされてしまうと、コンピュータに関わる分野では、新しい技術はすべてウイルスとなってしまうことになる。

まとめると

プログラマが怒っているのは、

  • Coinhiveと広告は同じものなのに片方だけウイルスはおかしい。
  • Coinhiveは別に悪いことをしているわけでもない。そこらの「ウイルス」とは全然異なっている。
  • 新しい技術はみんなの知らないものなのに、それを「人々の意図に反するもの=ウイルス」というのはひどい。

ということ。みなさんに伝わったでしょうか...? おかしい。と怒っていただけたら嬉しいです。

これを読んで怒った人のできること。

  • このことをみんなに広めましょう。怒っている人を増やせばそれが「社会通念」になります。
  • 控訴された後の裁判費用などは寄付で集められめられました。寄付ができるかもしれません。

(興味がある人向け)

Q なんで採掘は難しい数学の問題を解くことなの?

A 仮想通貨とキャッシュレス決済はなにが違うでしょうか?それは「中央なき分散型システム」である点です。例えばPayPayなら、それぞれのユーザーのPayPay残高はすべて、PayPayの中央サーバで管理されています。中央サーバが「AさんはX円」「BさんはY円」「CさんはZ円」というふうに記憶しています。AさんがBさんにお金を送ったら、管理しているデータを書き換えることで対応します。対して、仮想通貨はそれぞれの残高はそれぞれのユーザーが管理します。Aさんが「私はXコイン持っています」といい、Bさんが、Cさんが、というわけです。AさんがBさんにコインを送ったら、それそれがデータを書き換えて対応しています。
 しかし、この方法だと、Aさんがお金を送ったのに自分の残高を書き換えない、といった不正が可能になってしまいます。というか、自分で管理しているんですから、いくらでも書き換えられるわけです。そこで、不正防止のため、仮想通貨を使う人はすべて正確な取引記録を持つことになっています。取引記録はコインが初めて作られたときから、いままでのありとあらゆる人の間の取引の中で作られており、一本のひものように、現在から最初までたどることができます。改ざんするためには、ひもを切って、切ったところに新しい紐をまるで結んでいないかのようにつけ、さらにもとの長さまで取引記録のひもを作り直さなくてはいけません。これは現実的に不可能とされています。このような仕組みで仮想通貨は不正を防止しています。
 しかし、このひもを作るためにはたくさんの計算が必要です。誰が誰と取引をして、というデータをまとめるには誰かがたくさんの計算をしなくてはいけません。これを喜んでやってくれる人はいないので、やってくれた人に仮想通貨を配る仕組みがあるのです。これを採掘とよんでいます。つまり、採掘は別に掘っているわけでなく、バイトをして賃金をもらっている感覚に近いです。
 このような仕組みはブロックチェーンと呼ばれています。分散型台帳技術ともいわれます。この呼び方のがわかりやすくて好きですね。