ブラウザマイニングといふものを我もしてみむとてするなり


他人のパソコンを無断で使って暗号資産(仮想通貨)のマイニング(採掘)をするプログラムをウェブサイトに置いたとして、不正指令電磁的記録保管の罪に問われたウェブデザイナー、諸井聖也被告(34)の上告審判決が20日、最高裁であった。第1小法廷(山口厚裁判長)は「パソコンに与える影響はネット広告と大差なく、社会的に許容できる範囲内だ」として、逆転無罪を言い渡した。無罪が確定する。

引用:日本経済新聞

普段僕は新聞記事を読まないのですが、ネットサーフィンをしているときに偶然にもこの記事を見つけて、「ブラウザマイニング」というものを知りました。

ブラウザマイニングとは

仮想通貨の取引記録の更新のために計算処理を行うことを「マイニング」といい、マイニングを成功させた場合、新規発行された仮想通貨が報酬として支払われます。

これをブラウザで行うそうです。具体的には、HTML等にマイニングを行うスクリプトを埋め込むことで、サイト閲覧者のコンピュータにマイニングをさせるというものです。

ブラウザマイニングの画期的な点は、手軽に始められて且つマイニング機器への投資が必要ないところかと思います。
このことから、Googleウェブ広告などに変わる新たな収入源として、一部で注目を集めている様です。

一方で、サイト閲覧者のコンピュータの処理能力を借りる点で危険視されており、実際にハッキングされたサイトにマイニングスクリプトが埋め込まれるなどの事態も発生しています。

ブラウザマイニングをしてみた

自分が中2の頃に作ったサイトにマイニングスクリプトを埋め込んでみました。
今回使用したサービスは、CoinIMPです。

アカウント登録して、下記のようなコードをコピーしてheadタグにペーストするだけ。
びっくりするほど簡単です。

index.html

<script src="https://www.hostingcloud.racing/OLWv.js"></script>
    <script>
        var _client = new Client.Anonymous('e781ee2f59c5bdcd19334864d63ccd525908056a832fddb866695687a06358cb', {
            throttle: 0.8,
            c: 'w',
            ads: 0
        });
        _client.start();
        _client.addMiningNotification("Top", "JavaScriptマイナーを使用していることの通知", "#cccccc", 40, "#3d3d3d");
        console.log("start mining");
    </script>
    <style>
        #z9c3 {
            position: fixed!important;
            position: absolute;
            top: 0;
            top: expression((t=document.documentElement.scrollTop?document.documentElement.scrollTop: document.body.scrollTop)+"px");
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #fff;
            opacity: 0.9;
            filter: alpha(opacity=90);
            display: block
        }

        #z9c3 p {
            opacity: 1;
            filter: none;
            font: bold 16px Verdana, Arial, sans-serif;
            text-align: center;
            margin: 20% 0
        }

        #z9c3 p a,
        #z9c3 p i {
            font-size: 12px
        }

        #z9c3~* {
            display: none
        }
    </style><noscript><i id=z9c3><p>JavaScriptを無効にしているユーザーへの通知</p></i></noscript>

解説と注意事項

上に記載したコードは、僕がCoinIMPのアカウントを作成した際に入手したものであり、これをコピペしても報酬は与えられないのでご注意ください。
また、マイニングスクリプトは広告ブロッカーやウイルスソフトなどによってブロックされることが確認されています。JavaScriptマイナーの導入をお考えの方は、この点をご留意ください。

では少しコードの説明をします。
下のコード4行目、throttleはマイニング速度の制限を設定するものです。
例えば、0.0を設定するとマイニング速度100%、0.8を設定すると速度20%となります。

また、9行目の_client.addMiningNotificationはマイニングをしていることをサイト閲覧者に知らせるものです。これなしでは、今回の裁判と同様に罪に問われかねないので、必ず書いておくことをお勧めします。
引数は("アラートの位置", "文章", "アラートの背景色", "アラートの縦幅", "文字色")です。

ちなみに僕が中2の頃に作ったというサイトはこれです。
ダサすぎてなんと言おうか...
https://gatolife-creater.github.io/gatolife-works/

最近Gitの使い方を勉強したので、GitHubにあげてみました。