病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

マスコミの方にも知ってほしい、仮想通貨とCoinhiveの話

Coinhiveというスクリプトを設置していただけで逮捕されるという事件が起きていて、マスコミなどでも報道されています。

www.sankei.com

マスコミには読者の方に伝わるように伝えるというミッションがあるので、報道の表現が正しい・正しくないという話にはいろいろな立場があり、致し方ない部分があると思います。

しかし、仮想通貨やCoinhiveは、マスコミにとって「対岸の火事」ではなく、メディアのマネタイズに対する解決策となりうる技術 でもあります。報道ベンチャーのメンバーの端くれとして、仮想通貨やCoinhiveの技術がなぜメディアにとって潰されるべきではないのか、Q&A風に伝えたいと思います。

前半は仮想通貨に関する導入から入り、後半でCoinhiveの話をします。
また、個人的なポリシーにより、以降は仮想通貨を”暗号通貨”と呼称します。
報道機関の方に伝わることを目的としているため、もしかしたら厳密でない表現があること、ご容赦ください。報道機関やメディアの方で、何か不明点があれば、Twitterか会社のメールアドレスまでご連絡いただければ回答します(gmailはだいたい見逃すのですみません...)。

“通貨”とは?

暗号通貨の話をする前に、”通貨”の要件について考える必要があります。

最も普及した通貨は、日本円のような現金です。現金は、誰かに手渡すことで購買の手段として使うことができます。1000円札を持っていれば、「小笠原は1000円札を持っている」と、国や周りの人が認めてくれます。

では、銀行口座はどうでしょうか? 銀行口座も、家賃を支払う手段として使えますし、口座に「1000円」と書いてあれば、やっぱり「小笠原は1000円を所持している」と認められます。また、持ってる1000円を別の誰かに送金することもできます。

では、楽天ポイントやAmazonはどうでしょう? これもだいたい似たようなもので、楽天ポイントは楽天市場での支払いに使えます。1000pt持ってたら、(実質的に)1000円分持ってることになります。ポイントが失効しない限りは、突然ポイント残高が消失することもありません。

ここで、現金、銀行口座、ポイントの例を上げましたが、これらはいずれも「通貨のようなもの」でしょう。「通貨のようなもの」は、何かの決済手段として使えたり、誰かに送金できたりしたりできますし、消費しない限りにおいては残高が消滅することもありません。そして、「1000円持ってるんだな」ということが保証されるものです。こういった、「正しく送金の帳尻が計算できること」「正しく残高が保証されてること」「決済に使えるなど、日本円と融通できるような価値があること」が”通貨”にとっては大事なのです。逆に言うと、日本円とかドルとかユーロだけが通貨としての役割を果たせるわけではなく、先に挙げたような条件を満たせるものであれば、買い物券だろうと肩たたき券だろうと、通貨のようなものになれます。

暗号通貨とは?

暗号通貨は、先程あげた”通貨”の特徴を持ったものの1つです。ちょっと特殊なポイントのようなもの、と言い換えてもいいでしょう。

暗号通貨が特殊なのは、「誰が残高があることを保証するのか」という違いです。日本銀行券の場合は、日本銀行が保証してくれます。銀行の口座残高の正しさは、銀行が保証してくれます。Amazonのポイントは、Amazonが保証します。

暗号通貨の場合は、「みんな」が保証します。銀行のような単一の信頼できる誰かが保証するのと違い、みんなで保証するのはとても大変です。そのため、技術的には暗号などに使われる要素技術が使われていて、「暗号通貨(Cryptocurrency)」などと呼ばれるのです。

「みんな」で保証するのはとても難しいので、「マイニング」というプロセスで解決します*1。

マイニングとは?

マイニングとは、「みんな」で残高の正しさを保証するために必要な仕組みです。

たとえば、誰かが「僕は100万円受け取った」と主張した場合、どうやってそれが正しいかを確認すればよいでしょうか? 銀行の残高であれば、銀行のログに送金履歴が残ってるので、銀行の人が保証できます。ですが「みんな」で保証する場合、みんなが好き勝手言えてしまうのです。

そこで、「マイニング」に成功した人が言ったことが正しい、と「みんな」で認めるルールとします。

「マイニング」とは、物凄く難しい計算問題をコンピューターに解かせることです。「マイニング」は答えを見つけるのは難しいのですが、答えが正しいことは簡単にわかるような問題なのです。ちょうど、「鉱山から金塊を見つけるのはとても難しいが、それが金塊であることは誰しもわかる」といった具合でしょうか。そして、「金塊を持ってる人が言ったことを、10分間だけ信じよう」というルールになってます。

マイニングをコンピューターにやらせるのは、計算コストがかかります。つまり電気代がかかるということです。なので、マイニングはボランティアでやるものではありません。代わりに「マイニングをすると儲かるよ!」という仕組みが暗号通貨には含まれているのです。

「マネタイズ」という視点で見たときにマイニングが革命的なのは、「マイニングという、ただコンピュータープログラムを走らせること」がお金儲けに繋がるというロジックが生まれたことです。

Coinhiveとは?

Coinhive とは、マイニングを、Webページの閲覧者に代わりにやらせる仕組みです。通常マイニングは「自分が儲けるために、自分のPCで実行する」ものですが、Coinhive は「自分が儲けるために、ユーザーのPCで実行する」ための仕組みです。

こう聞くと「人のPCで勝手に金儲けしやがって」と思うかもしれませんが、それがビジネスです。ウェブ広告だって、99%の人に価値のないバナー画像や動画をダウンロードさせ続けることで、メディアは儲けられるのです。メディアが儲けられることで、読者に面白いと思ってもらえる体験を提供できるのです。読者の直接支払いだけでビジネスが成り立てばそんなに嬉しい話はないですが、現実は違います。

Coinhiveは、広告に勝るメリットがあります。その一つは、ユーザーの個人情報を収集するインセンティブがないことです。ウェブ広告はユーザーの個人情報を集めるほどPV単価が高くなりますが、マイニングには個人情報は使えません。マイニングが広告に比べて悪質かどうかは、極めて微妙なラインです*2。

また、Coinhive は「どれくらいCPUを使うか」を指定することができます。CPUを100%使うか10%しか使わないかは、各設置者が勝手に決めることなので、ダメージを与えない方法も可能なのです*3。

f:id:yamitzky:20180615091620p:plain

なぜCoinhiveはメディアに関係するのか?

メディアにとっての一番の課題は「どうやって儲けるか」です。テレビだろうと新聞だろうとウェブメディアだろうと同じ問題です。Coinhiveは、サブスクリプションやウェブ広告に続く新しいマネタイズ手法になる可能性があります。

中でも驚異的なのは、Coinhive は、記事をただ閲覧していることで収益が発生することです。広告は、広告主を集め、その広告に効果がないと意味がないのですが、Coinhive にそのような問題はありません。また、閲覧時間が長ければ長いほど儲かるので、閲覧時間というメディアの本質的なKPIと、収益性がリンクしています。

ただし、Coinhive は現状そんなに儲かる手段ではない、ということは言っておく必要があるでしょう。

なぜ Coinhive の設置者の逮捕が、メディアにとって問題なのか?

「社会的に受け入れられてない」ことを理由に、既存の法律の拡大解釈の元にターゲットとされ、メディアのマネタイズ手法が刑事案件で潰されたり、民間企業によって「ウィルス」として定義されて潰されることが問題なのです。

例えば、アウトブレインのようなレコメンドウィジェット広告と呼ばれる比較的新しい広告があります。これらがどういった処理を行っていて、どういう情報が収集されているのか、全てのユーザーは十分に理解しているでしょうか? Criteoとかもなぜリタゲされるのか理解されてるでしょうか? これは、さすがに現実的ではない話です。「同意を得ていないのだから逮捕は当然だ」というのはそういう暴論なのです。

また、広告のようにユーザーには見えず、“こっそり”やるから問題だ、という意見もあります。しかし、広告と違ってマイニングスクリプトが見えないのは、ブラウザーの実装の問題に過ぎません。高負荷のスクリプトや、coinhive.js がユーザーに見えないのは、2018年6月現在のブラウザーの実装の話です*4。そもそも coinhive.js がダウンロードされていることはブラウザーは知っていて、開発者ツールなどにはちゃんと表示されているのですが、ただわかりやすいところに可視化していないだけです。このようにブラウザーの実装の問題で可視化されてないプログラムは、 coinhive.js に限った特殊なものではなく、ウェブサイトに一般的なものです*5。

たしかに、ユーザーの理解を可能な限り得ることが理想です。Coinhive にしても広告にしても、ユーザーに説明した方がベターでしょう。そういう説明を怠れば、「炎上」して、ユーザーに忌避されるでしょう。ですが、これは「動画広告」や「リタゲ広告」のような新しい広告と同様、ウィルスと認定して逮捕する話ではなくて、市場が決める話です。

まとめ

本稿は「マスコミの方に伝えたい」という思いで書きました。

仮想通貨やCoinhiveのような新しい技術がどうやって社会やメディアビジネスに良いインパクトをもたらすか、というところで記事の執筆に役立てていただければ幸いです。

*1:ビットコインやモネロに関してはこの通りなのですが、マイニング以外の方法もあります。PoSと呼ばれるような仕組みの暗号通貨です。

*2:パケットを消費しないというメリット表記にツッコミがありましたが、厳密にはWeb Socket通信などでパケットを消費するものであり、長時間稼働させれば画像や動画以上にパケットを消費しうるものであるので不正確なため、表記を削除しました

*3:もちろん、ユーザーのコンピューターを攻撃して破壊する目的で、100%のCPUを利用するのは問題があります。ですが、ブラウザーのタブを閉じることによって、ユーザーはプログラムの実行を終了することができます。

*4:既存のブラウザーでも、アドオンなどを入れることで、coinhive.js が読み込まれていることを検知することができます。すでにユーザーにはブラウザの選択肢があるのです。

*5:例えば、今ご覧になっているページでは、はてな株式会社が設置し、ユーザーに対して能動的で明確な許諾をとっていない、目に見えないJSのプログラムが動いています