新しい収益化の形?! JavascriptでMoneroを採掘するよ
追記 2017/10/18
Coinhiveをはじめとしたブラウザでマイニングさせる系のスクリプトがアドブロック系のソフトやセキュリティ系のソフトに引っかかるようになってきたので、この記事に書かれていることを実行するのはあまりオススメできない状況になってきました。アドブロックならマイニングが行われないだけなのですが、セキュリティ系は警告が発せられるとユーザが離れる原因になりますし、SEOにも悪影響が発生する可能性があります。
本記事の内容を実行する際は自己責任でお願いいたします。
追記終わり
どうも最近はFreebitco.inさんのファンブログみたいになっている本サイトですが、今回は違います。今回も仮想通貨のお話ですが、通貨がBitcoinからMoneroという匿名性がより強い通貨を扱います。
というわけで、今回はWebブラウザだけでMoneroを採掘できるようにして、あわよくばサイトにアクセスしてくれた方にも掘らせてしまおうということをつらつらと書いていきます。
1. 着想
着想 … といいますが、元ネタみたいな感じですが、すでに訪問者に採掘を行わせるという手法をとっているサイトさんがあり、最近情報サイトでも取り上げられていました。
この記事を読むまでは訪問者に採掘を行わせるなんて手法は思いつきもしませんでした。世の中には変なことを考える人がいたものですな。さて、そんな面白い発想ならぜひ自分もやってみたいとなるかと思います。
発想から考えて、「実装は難しそうだー」と思ったそこのあなた、ここで登場するのが”Coinhive“さんです。必要なものはすべて提供されているので実は果てしなく簡単に出来てしまいます。というわけで、今回はCoinhiveさんの登録から実際にブラウザでマイニングを行うところまでやってみようと思います。
2. 登録
. サービス登録
では早速登録していきましょう。まずは公式サイトにアクセスします。
すると以下の画像のようなページが表示されると思うので、右上の”signup”から会員登録をしていきます。
登録方法は普通のWebサービスと同じなので省略します。登録が完了するとメールアドレスの確認用のメール(件名は”Coinhive Account Validation”)が来るので、アドレスの認証を忘れずにやっておいてください。
. Wallet(財布)登録
マイニングを行うには必要ありませんが、出金するために必要なのでサービス登録と一緒にやっておくのがいいと思います。というわけで、登録するわけですが、もしまだWalletを持っていないなら、”Coinhive”さんでおすすめされている”MyMonero“さんを使ってみてください。
サイトにアクセスしたら、画面上部にある”CREATE A NEW ACCOUNT”を押します。たったこれだけでWalletが作られるので、ページの下の方にある”Your Private Login Key”の項目をメモしておいてください(これは大事なのでなくさないでください&誰にも見せちゃダメです)。このキー達を一番下のボックスに入力するとマイページにログインできます(今後もこのキーでログインします)。
マイページにはWalletアドレスが掲載されているます。今回はこのアドレスが必要になります。このアドレスを”Coinhive”さんページの右上から”Setting”→”Payments”に移動してから入力します。これにて下準備は完了です。
3. 試してみる
さて、準備は完了したので実際にマイニングしてみましょう。必要なコードは”documentation”→”JavaScript Miner”に掲載されています。一番簡単に試す場合は上記のページ内からいかのコードだけを目的のHTMLに記述するだけで大丈夫です。
1 2 3 4 5 |
<script src="https://coinhive.com/lib/coinhive.min.js"></script> <script> var miner = new CoinHive.Anonymous('<site-key>'); miner.start(); </script> |
このコード内の”
ここでは、単純にマイニングを行だけでしたが、オプションやコールバックを駆使することで、より細かいことができるようになります。そこら辺はまだ未検証なので、詳しくはドキュメントをご覧ください。
4. マイニング結果の確認
さてシンプル設定ではありますが、マイニングを行ったので、気になるのがどれくらいマイニングできたかです。これはダッシュボードで確認することができます。これはページ上部にある”ashboard”から見ることができます。こちらに関してはシンプルにまとまっているため説明不要かと思います。
5. Captcha機能
“Captcha”とはBOT判定によく使われているグニャグニャ文字のアレに代表されるめんどくさいやつです。主にスパム対策なんかで使われます。なんと”Coinhive”さんではこのめんどくさいのに変わる新しい”Captcha”が提供されています。以下の”Verify me”がそれです。実際に押してみてください。
さて、実際に押すと”なんかゲージが出て勝手に認証された”という感じになるかと思います。これは何をやっているかというと、上記で行ったマイニング作業をやっています。こうすることにより、わざわざグニャグニャ文字を解読しなくても、PC君に認証を任せることができちゃいます。
これもコードが提供されているので簡単に自分のページに実装することができます。コードは”Documentation”→”Captcha”に掲載されています。こちらのページのコードで簡単に試すには以下のコードを自身のHTMLに記述し、”data-key:SITE-KEY”のSITE-KEYを先ほどの”Site Key (public)”に書き換えるだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<form action="?" method="post"> <!-- other form fields --> <script src="https://coinhive.com/lib/captcha.min.js" async></script> <script> function myCaptchaCallback(token) { alert('Hashes reached. Token is: ' + token); } </script> <div class="coinhive-captcha" data-hashes="1024" data-key="SITE-KEY" data-autostart="false" data-disable-elements="input[type=submit]" data-callback="myCaptchaCallback" ></div> <!-- submit button will be automatically disabled and later enabled again when the captcha is solved --> <input type="submit" value="Submit"/> </form> |
たったこれだけで、認証とSUMITボタンを設置することができます。もちろん認証を行わなければSUMITボタンを押すことはできませし、認証すれば勝手にボタンを押すことができるようになります。
こちらも、いろいろオプションがあるので、詳しくはドキュメントをご覧ください。
おわりに
さてここまで、つらつらと書いてきました。正直公式サイトがシンプルかつわかりやすくまとまっているので、この記事の存在価値はほとんどありませんが、そんなことは気にしません。
今回紹介した手法は、収益化だけでなく訪問者に還元することもできます。また、収益化のために使うと画面上に出てくる鬱陶しい広告の代わりに収益をあげることができます。新しいマネタライズ手法として今後に期待したいところです。しかし、ユーザの端末のリソースを使うことになるので、人によっては嬉しくはないかと思います。そうなると、今後SEOにも影響が出てくるかもしれません。そんなわけで、追加情報が出てきたら随時本サイトで記事にしていこうと思います。
さて最後になりましたが、ひとつ謝りたいことがあります。実はこの記事に限り勝手にマイニングをしてもらっています。ゴメンネ(ㆁωㆁ*)。もし、ユーザビリティに影響がなさそうならより広い範囲に広げてもいいかなーなんて思っています。そのため”記事を読んでいて重くなった”など、ご感想をコメントいただけると幸いです。
さて、謝罪も終わったので、今回はこの辺で終わろうと思います。
2017/09/29 サービスのドメインが変更になったようなので記事内の該当部分を書き換えました。