ビットコインのような仮想通貨のスクリプトとは?
ブロックチェーン上で不特定多数によって分散管理を行いながら高いセキュリティを実現するために、仮想通貨にはスクリプトと呼ばれる作業が頻繁に関わってきます。特に重点が置かれているのは、仮想通貨のマイニング(採掘)におけるスクリプトです。これらの意味や作業の中身などについて解説します。
仮想通貨のスクリプトとは
スクリプトはハッシュ値を計算するための方法を記したプログラムで、「スクリプトを実行する」とは、そのプログラムを用いて処理を進めることを意味します。ハッシュ値の「ハッシュ」の直訳は「細切れ」で、この場合は「細切れ状態で復元が不可能な」という意味です。
ハッシュ値は、ランダムな状態で並んでいる特定の文字列をハッシュ関数によって算出しています。このランダムな状態で並んでいる文字列は、「Number used once(一度だけ用いる数字)」を語源にナンス(Nonce)と呼ばれています。
ハッシュ関数は暗号化のために用いられている特殊な関数で、入力した数値に特定の内容の計算を行ってその解を導き出す数式(もしくは、その集合体)です。ハッシュ関数で算出したハッシュ値には、一方通行の道路のように一方向にしか演算できないという特性があります。もともとのデータ(前出のナンス)を復元することが不可能で高いセキュリティを誇っていることから、ビットコインをはじめとする仮想通貨ではさまざまなシーンに活用されているのです。
ビットコインでハッシュ値を計算する際には、米国の NIST(国立標準技術研究所)が定めたSHA-256 と、1996年にルーヴェン・カトリック大学のHans Dobbertinらが開発したRIPEMD-160 というハッシュ関数を用いるという方法が採用されています。この方法でハッシュ値を算出するには、一般的なコンピュータの中枢部分に当たるCPU(中央演算処理装置)よりも多数のコアプロセッサを搭載して高度な処理能力を発揮するGPU(画像処理装置)やASIC(特定用途向け集積回路)などを用いるのが理想です。
これに対し、多くのアルトコインは冒頭で触れたスクリプト系の計算方法によってハッシュ値を算出しています。アルトコインはalternative coinの略で、「ビットコインに代わるコイン(=ビットコイン以外の仮想通貨)」を意味します。
多くのアルトコインがスクリプト系を採用しているのは、ビットコインのSHA-256やRIPEMD-160とはとは違って、一般的なPCのCPUを用いて演算処理を行うのが主流だからです。スクリプト系のほうがビットコインのSHA-256よりも複雑でマシンのメモリへの負荷も大きいのですが、GPU には不向きで、CPUよりも高速処理が可能なハードウェアがまだ開発されていません。
アルトコインでスクリプト系を用いている一例として挙げられるのがライトコインやドージコインです。ちなみに、イーサリアムはEthash/Casper、モナコインではLyra2REv2が用いられています。
仮想通貨のマイニング(採掘)においては、ハッシュ値の算出効率の高さが求められてきます。「採掘」と表現されていますが、実際に仮想通貨のマイニングにおいて行っているのは、ブロックチェーン上のブロック(台帳・帳簿)内で「新たなトランザクション(取引)に関するデータを追加・確認・検証する」という作業です。
ビットコインやライトコインのような仮想通貨は、一定間隔ですべてのトランザクションを記録し、それらの整合性を一つひとつ確認しています。その作業を行っているのが仮想通貨のネットワークに参加しているマイナー(採掘者)であり、マイナーがそのような作業に参加すると、報酬として新たなコインが支払われます。
ただし、新たなコインをもらえるのは、整合性確認のための演算作業とトランザクション処理を誰よりも速く終えたマイナーに限られています。こうしてマイナーたちを競わせながら分散管理を行うことで、改ざんなどが発生しない環境を作り上げている一方、ハッシュ値の算出効率の高さがマイニングの成否を左右しているわけです。
マイニングスクリプトの方法と流れ
通常のマイニングではマイナー(採掘者)が自分のマシンを用いて、その仮想通貨が採用しているハッシュ関数でハッシュ値の算出を行います。ところが、他の人たちが所有しているPC端末などを通じて実施するマイニングスクリプトというものが台頭してきました。
その仕掛け(JavaScript)が埋め込まれたサイトにユーザーがアクセスすると自動的にマイニングスクリプトが実施されるのです。ただし、マイニングによって得られた収益をユーザー自身が受け取ることはできず、享受できるのは、せいぜいサイト利用による情報入手などといった利点にとどまります。
一方で、サイトの運営者にとってマイニングスクリプトは魅力的な収入源となってきます。特に最近はブラウザなどにブロック機能が搭載されるようになって、サイトに掲載した広告から得られる収入が頭打ちとなっているケースが少なくないようです。あるニュースサイトは広告ブロック機能を使用しているユーザーに対し、「ブロック機能を解除にするか、ユーザーのブラウザを通じて仮想通貨をマイニングすることを許可するか、いずれかを選択せよ」と要求してヒンシュクを買ったそうです。
マイニングスクリプトを実行させるJavaScriptは企業や団体などのウェブサイトのみならず、個人ブログに埋め込むことも可能です。つまり、個人レベルでも他人のPC端末に依存したマイニング収益を期待できるわけですが、かなりのページビューを見込めなければ、大した金額にはならないのが現実のようです。
実は、仮想通貨をブラウザでマイニングするという発想自体は、もっと古くから存在していました。2013年に米国MIT(マサチューセッツ工科大学)の学生グループがTidbitという名の企業を設立し、ビットコインをマイニングするウェブサービスを立ち上げているのです。もっとも、ユーザーの同意を得ずに所有PC端末のCPUをマイニングに用いていたため、同国の司法サイドから待ったがかかって事業は頓挫しました。
仮想通貨のマイニングスクリプトが抱える問題点とその対策
ブロックチェーンに参加しているコンピュータが個々のブロックに記載されるすべてのトランザクションを分担して処理し、その作業の対価として新たなコインが発行されるというマイニングの仕組みを悪用する動きが表面化しています。
マルウェアを通じて他人のPC端末を外部から遠隔操作し、持ち主が気づかぬうちに仮想通貨のマイニングスクリプトを実行させ、それによって得られた利益を搾取するという不正者・不正者集団が横行しているのです。マルウェアとは、不正かつ有害な企みを行うために作成された悪意のあるソフトウェアやコードのことを指します。
従来のマルウェアは、言葉巧みな誘導や紛らわしいサイトデザインなどを通じてそれをユーザーにダウンロード&インストールさせ、侵入に成功するとPC端末を乗っ取って金融機関の口座などから金銭を盗み出すという手口が主流でした。
これに対し、マイニングスクリプトに関するマルウェアは、ユーザーから金銭を直接奪うわけではない点が大きな違いです。マルウェアが仕掛けられているウェブサイトをユーザーが閲覧したタイミングで、無自覚のうちにマイニングが実施されていくようになっています。これを仕掛ける側はシステム上の脆弱性を見つけ出す苦労も必要なく、JavaScriptが有効な設定になっているインターネットブラウザなら、他人のPC端末で容易くマイニングスクリプトを実行できます。しかも、ほとんどのブラウザでは初期設定においてJavaScriptが有効となっているため厄介です。
また、ブラウザ上に掲載されている広告を改ざんし、ユーザーがそれをクリックしなくても画面に表示しただけでマイニングがスタートするというものまで出回っています。
一見、通常のマルウェアと違ってマイニングスクリプトに関するものは、そのPC端末には特に実害をもたらさないようにも思われます。しかしながら、こっそり無断使用されている間は電気代やバッテリー使用量が激増するうえ、CPUへの負荷も急激に高まり、処理速度が低下してしまいます。悪質なマイニングスクリプトのマルウェアの中には、サイトを閉じた後もスクリプトを実行し続けているものもあります。
悪質なマイニングスクリプトの中でも特に話題を集めたのは、海賊版マンガ閲覧サイトにおける騒動でしょう。同サイト内においてマイニングスクリプトの一種が実行され、密かに何者かがモネロという仮想通貨を大量に我がものにしていたことが発覚したのです。本来、マイニングスクリプトはユーザーの同意を得ることが大前提となっています。しかし、現実には同意した覚えがないにもかかわらず、PCを勝手にマイニングに用いられてしまったユーザーがいたようです。
こうしたマイニングスクリプトに関するマルウェアの被害にあわないためには、事前に防御体制を整えておいたほうがいいでしょう。多くのPC向けのセキュリティソフトには、仮想通貨のマイニングスクリプトを検出する機能が搭載されています。古いバージョンをインストールしている人は最新版にアップグレードして、マイニングスクリプトをブロックするようにしましょう。Google Chrome やFirefoxを使用している人なら、uBlock Origin、AdBlock Plusという拡張機能のフィルタリストにおいて、ブロックしたいマイニングスクリプトを追加しておくなどの対策があります。
海賊版マンガ閲覧サイトの一件でも問題視されたマイニングスクリプトに関しても、あらかじめウイルス対策ソフトや広告ブロッカーにおいてブロック対象に設定されているケースが見られるようになっています。2018年6月には、日本国内でユーザーの同意を得ることなくマイニングスクリプトを行っていたサイトの運営者が警察の捜査を受け、1人が書類送検されたと報じられました。警察は不正指令電磁的記録供用などの容疑で取り調べているとのことで、マイニングスクリプトはウイルスを用いた犯罪行為と似たようなものだと捉えている模様です。
最新のセキュリティ対策を進めて不正操作を阻止
暗号化のためにハッシュ関数を用いてハッシュ値を計算するためのプログラムがスクリプトで、その処理を進めることを「スクリプトを実行する」と表現します。そして、仮想通貨において特にスクリプトが重要な役割を帯びているのがマイニング(採掘)を行うプロセスです。
通常のマイニングはマイナー(採掘者)が自分自身の所有マシンによって、その仮想通貨が採用しているハッシュ関数でハッシュ値を算出するものです。これに対し、最近は他人が所有しているPC端末などを通じて実施するマイニングスクリプトというものが急速に台頭してきました。
しかし、所有者の了承も得ずにPC端末などを勝手に使っているケースも見受けられますし、さらに悪質な行為も発覚しています。マルウェアを通じて他人のPC端末を外部から遠隔操作し、持ち主が気づかぬうちに仮想通貨のマイニングスクリプトを実行させ、それによって得られた利益を搾取するという手口です。
そういった被害を未然に防ぐには、最新のセキュリティソフトを導入したり、ブラウザ上のブロック機能を作動させたりすることが有効です。日頃から悪質なマイニングスクリプトには気をつけておく必要があります。
ビットコインのセキュリティについて興味を持たれた方は「ビットコインのセキュリティについて」もご参照ください。
※掲載されている内容は更新日時点の情報です。現在の情報とは異なる場合がございます。予めご了承ください。
関連記事
-
ビットコインアドレスの仕組みとは?利用時に注意すべきポイント
ビットコイン(BTC)を受け取ったり送ったりするためには、「ビットコインアドレス」を通じたデータのやりとりが必要になります。今回は、ビットコインアドレスを取得して、ビットコインを送受信する方法やその際の注意点などを詳しく解説していきます。
-
暗号資産を安全管理!ウォレットにはどのような種類がある?
ビットコイン(BTC)を購入後の保管の仕方は大きく分けて2通りあります。暗号資産交換業者のウォレットに預けておく方法と、自分で用意したウォレットを利用する方法です。本記事では、初心者にとって使いやすいウォレットを解説します。
-
レイヤー0ブロックチェーンとは?レイヤー1、レイヤー2との違いを解説
ブロックチェーン技術のアーキテクチャー(構造・構成)について語るときに、レイヤー1、レイヤー2という用語が使われます。近年では、さらに重要な概念としてレイヤー0(Layer0)という用語使われるようになりました。この記事ではレイヤー0について、レイヤー1やレイヤー2との違いも含めて詳しく解説していきます。
-
暗号資産(仮想通貨)の基幹技術である分散型台帳技術(DLT)とは?
分散型台帳技術(DLT)は暗号資産(仮想通貨)の基幹技術です。当記事では、DLTはどのような仕組みなのか、暗号資産とDLTの関係も含めて、詳しくご紹介します。
-
コンセンサスアルゴリズムとは?ブロックチェーンで使われる代表的な種類を解説
コンセンサスアルゴリズムは、暗号資産(仮想通貨)の基盤技術となるブロックチェーンがブロックを追加する際のルールとなるコンセンサス(合意)形成を行うアルゴリズム(方法)のことを指します。本記事では、代表的なコンセンサスアルゴリズムの種類や仕組みについて詳しく解説します。
-
イーサリアムとビットコインの違いは?特徴や仕組みから解説
イーサリアム(ETH)はビットコイン(BTC)と目的や用途が大きく違なり、プラットフォームとしての利用が想定されています。イーサリアム独自の特徴を理解して、情報収集を進めていきましょう。
-
ビットコインの仕組みについて初心者にもわかりやすく解説!
取引を始めるには、最初に仮想通貨の仕組みについて知っておくことが大切です。今回は「最初の仮想通貨」と呼ばれるビットコインを例にして、仮想通貨の基礎となっている「ブロックチェーン技術」や具体的な取引方法などを解説します。
-
ブロックチェーンのトリレンマとは?DAOでの新たな問題も解説
革新的な可能性を秘めているブロックチェーン技術は、「分散性」「セキュリティ」「スケーラビリティ」の3つの要素から成り立っているとされています。この記事では、ブロックチェーンやDAOのトリレンマについて詳しく解説します。
今、仮想通貨を始めるなら
DMMビットコイン