tag:crieit.net,2005:https://crieit.net/tags/Coinhive/feed 「Coinhive」の記事 - Crieit Crieitでタグ「Coinhive」に投稿された最近の記事 2018-10-12T18:27:49+09:00 https://crieit.net/tags/Coinhive/feed tag:crieit.net,2005:PublicArticle/14467 2018-06-13T07:26:30+09:00 2018-10-12T18:27:49+09:00 https://crieit.net/posts/Coinhive Coinhiveの合理性を考察して擁護してみた <p>先日下記のような記事が公開されました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://doocts.com/3403"><a href="https://crieit.now.sh/upload_images/a58acf8c0d325856793d6dd6baa8509e5b1fc386e4a45.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a58acf8c0d325856793d6dd6baa8509e5b1fc386e4a45.png?mw=700" alt="仮想通貨マイニング(Coinhive)で家宅捜索を受けた話" /></a></a></p> <h2 id="Coinhiveとは?"><a href="#Coinhive%E3%81%A8%E3%81%AF%EF%BC%9F">Coinhiveとは?</a></h2> <p>上記の記事にも書かれています。</p> <blockquote> <p>Coinhiveとは、HTMLに数行のJavaScriptを埋め込むことでユーザーのブラウザからCPUを動かし、仮想通貨「Monero」のマイニングを行うツールです。</p> </blockquote> <h2 id="つまり?"><a href="#%E3%81%A4%E3%81%BE%E3%82%8A%EF%BC%9F">つまり?</a></h2> <p>つまり、Coinhiveとは人のPCを勝手に使って仮想通貨を稼ぐ事を目的としたものです。</p> <p>ということはつまり人の家の電気代(ルーターやPC)を勝手に使って通貨を稼ごうしているということ…。</p> <p>そりゃあ警察のお世話になって当然だろ、と思いました。ただ、色々考えてみると実はそうでもないということもわかってきました。そのあたりをちょっとこの記事で考察してみたいと思います。</p> <p>(法律や警察のやり方がおかしいというのは悩む部分も思いつかないため、特に当記事では述べません)</p> <h2 id="勝手に人の家の電気代を使っていいのか?"><a href="#%E5%8B%9D%E6%89%8B%E3%81%AB%E4%BA%BA%E3%81%AE%E5%AE%B6%E3%81%AE%E9%9B%BB%E6%B0%97%E4%BB%A3%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%84%E3%81%AE%E3%81%8B%EF%BC%9F">勝手に人の家の電気代を使っていいのか?</a></h2> <p>Coinhiveはブラウザで動作しますので、使っているPCやルータの電気代を消費します。</p> <blockquote> <p>いつもどおりのブラウジング(UX)を阻害せず、快適に閲覧できる<br /> 不自然にCPUが回らない<br /> よう調整しました。</p> </blockquote> <p>と書かれていましたが、正直これはこの方のPCの話ですし、ネットワークが遅かったりPCが古い人の場合は影響がでてて迷惑している可能性もあったのではないかと思います。特にバッテリー駆動中の端末を使用している人からしたらいい迷惑だと思います。何一ついいわけがないですよね。</p> <h2 id="でもそれはCoinhiveだけじゃない"><a href="#%E3%81%A7%E3%82%82%E3%81%9D%E3%82%8C%E3%81%AFCoinhive%E3%81%A0%E3%81%91%E3%81%98%E3%82%83%E3%81%AA%E3%81%84">でもそれはCoinhiveだけじゃない</a></h2> <p>冒頭の記事でも述べられていたとおり、実は勝手に人の家の電気代を使っているのはCoinhiveだけではないのです。例えば例として記事の筆者があげていた例としては下記のようなものがあります。</p> <ul> <li>スマホの下のほうからふわっと出てくる広告</li> <li>アドセンス広告</li> <li>Ptengine</li> <li>jQuery</li> <li>Vue.js</li> <li>Three.js</li> </ul> <p>ただ、そもそもそれぞれで役割が違いますしCoinhiveと比較するのはどうかと思ったので、色々考察してみました。</p> <h3 id="広告"><a href="#%E5%BA%83%E5%91%8A">広告</a></h3> <p>まず最初に思ったのは、広告は全員にとってメリットのある、Win-Winなものなのでは? というところです。でも実際にはそうではありません。</p> <p>ユーザーにとっては、広告というものは新しい情報を知ることができるものです。WEB広告だけでなく、テレビや街中など、色々と効果のある箇所に広告は貼られています。</p> <p>ただ、大昔は誰もが喜ぶものだったものだったはずが、今では邪魔者扱いされる事が非常に多いです。</p> <p>勉強だって昔はできて嬉しいものだったはずが、今では面倒な思いをしながら学校に通っている子どもたちは非常に多いと思います。当たり前になってくると昔は価値があったものに価値を見いだせなくなってしまうんですよね。</p> <p>そのため広告をWinと思うのは、自分に必要な広告に巡り会えたユーザーのみになります。毎日何度も同じ広告を見る人からしたら邪魔なものにしかなりません。</p> <p>Winと思う人と、思わない人がいる。これはCoinhiveについても言える事だと思います。冒頭の記事にも書かれていますが、Coinhiveを導入した理由は</p> <blockquote> <p>広告をなくしてUXを上げることが目的のため</p> </blockquote> <p>とのことです。つまり、ユーザーがサービスを使いやすくするため。その背景には、2通りのユーザーがいるということがあげられます。</p> <ul> <li>広告あっていいから余計な電気代を使わないで欲しい</li> <li>広告つけるくらいなら広告の代わりにCoinhiveを入れてほしい</li> </ul> <p>つまり、Coinhiveを入れることでWinと思う人、思わない人の2通りがいる――これは実は広告と何ら変わりのないことなのです。</p> <h4 id="同じなのは需要だけではない"><a href="#%E5%90%8C%E3%81%98%E3%81%AA%E3%81%AE%E3%81%AF%E9%9C%80%E8%A6%81%E3%81%A0%E3%81%91%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84">同じなのは需要だけではない</a></h4> <p>最初に述べた電気代の問題。これはCoinhive特有のものではありません。広告だって同様です。</p> <ul> <li>画像や動画をネットワークで通信するためのルーターにかかる電気代</li> <li>アニメーション、画像表示を行うためのPCの電気代</li> </ul> <p>比較したことはありませんが、恐らくこちらも結構負担になっているのではないかと思います。<br /> (むしろ広告の方が重そう)</p> <p>このように、広告の代わりにCoinhive、というのはなかなか合理的な話になってくるのです。</p> <h3 id="JavaScriptのライブラリ"><a href="#JavaScript%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA">JavaScriptのライブラリ</a></h3> <p>JavaScriptも今はほとんどのWEBサイトで下記のような用途でDOMを操作したりするために使われています。</p> <ul> <li>ユーザーがサービスを使いやすくするため(タブやDatepicker、Ajax等)</li> <li>カッコよく見せるためのライブラリの使用</li> <li>3D描画(前述のThree.js等)</li> </ul> <p>どれもやはり今では必要なもので、ユーザーにとってメリットがあるものになります。</p> <p>ただ、やはりこれもブラウザ上でプログラムを走らせているので、Coinhive程ではなさそうですが電気代もかかってきます。しかもこれらは開発者が勝手に選ぶものであり、ユーザーが自由に選べるものではありません。開発者が自分の好みで重いライブラリを選んで、通信回数を最適化等もしなかった場合、もしかするとCoinhive以上に無駄に電気代がかかる可能性だってあります。</p> <p>この場合、UXを高めるためにCoinhiveを選んだ筆者と、自分の好みで負荷を増やしている開発者と、必ずしもCoinhiveの方が悪いと決めつけることができるでしょうか? 僕は色々考えてみましたが無理でした。</p> <p>もしかしたら開発者の方が悪いことをしているかもしれません。でも、警察のお世話になることはないでしょう。</p> <p>前述の記事の筆者が最後の方で錯乱気味に言っていたのは、つまりはこういうことなのです。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>最初に前述の記事を読んだ時僕は、ろくでも無いことを書いているな、と思いました。しかし考えていくうちにそうではないことが分かってきました。</p> <p>Coinhiveは現在のWEB広告に成り代わる可能性も秘めているのかもしれません。</p> <p>WEBサービスを運営すると、やはり広告は必要になる場合は多いです。収入がなければサービスは提供できませんので。その広告収入の代わりとなる可能性があるのがCoinhiveのようなものなんですよね。</p> <p>ユーザーのアクセスというのはそのサービスが世間に貢献した分の評価ですから、アクセスが増えれば利益が増える、これは非常に合理的なことです。広告を色々考えて貼らなくても、簡単にその仕組みを導入することができる。これはサービス運営者にとっては画期的な発明であることは間違いないはずです。</p> <h3 id="(個人的な気持ち)"><a href="#%EF%BC%88%E5%80%8B%E4%BA%BA%E7%9A%84%E3%81%AA%E6%B0%97%E6%8C%81%E3%81%A1%EF%BC%89">(個人的な気持ち)</a></h3> <p>個人的には広告で良いんじゃないかという気もしています。広告が減っていったらかなり大勢の人が困ると思います。ユーザーも、広告提供者も。全部Coinhiveのようなライブラリに置き換わってしまうのはそれはそれで問題があると思います。なんかたまに近所のスーパーの広告が出てきてテンション上がったりしますし。</p> <p>ただ、例えば最近流行っているCloud9とか、あとはSlackのようなチャット等と似たようなサービスが出た場合、こういったサービスはあまり画面の変動もありませんので、広告だと全然売上が出ないですよね。そういうサービスのためにCoinhiveのような仕組みがあれば、嬉しいサービス提供者は多いのではないでしょうか。</p> <p>あとはマイニングというのがちょっと…。お金をそうやって操作して遊ぶのは微妙な気持ちです。とはいえ僕が代替え案を編み出せるわけでもないのですが…。</p> <p>あとは若い方達がCoinhiveに対して簡単に理解を示しているのが印象的でした。僕は色々考えてようやく納得できましたが、年代が違うと肌で新しい物の合理性を感じることができるのでしょうか。すごい。</p> だら@Crieit開発者