ついに100万円まで回復したビットコインの「採掘」の仕組みは?

2019年6月16日、ビットコインの1BTCあたりの価格が100万円まで回復しました。100万円を超えるのは2018年5月以来1年1ヶ月ぶりのことであり、取引高も増加傾向にあります。今回はそんなビットコインの中核を支える仕組みでありながら、意外と知られていない「採掘」についてお話していきます。

ビットコインの取引台帳の仕組み

まずはビットコインの採掘についてお話する前に、ビットコインの取引台帳の仕組みについて解説していきます。この仕組を簡単に理解しておけば、ビットコインの採掘の仕組みもよくわかります。

ビットコインの取引記録(AさんがBさんに10BTC支払った、というような記録)は、ブロックチェーンという電子的な取引台帳に記録されています。ブロックチェーンは文字通りブロック(電子的な箱)を、チェーン(電子的な鎖)で時系列順につないだものです。最初のブロックにはビットコインが誕生した直後に行われた取引記録が、最新のブロックチェーンにはついさっき行われた取引記録が格納されているということになります。

格納されている取引記録は第三者も簡単に確認できますが、取引は個人情報と紐付けられていないアドレスを使って行うため、一定の匿名性は保たれます。

こうして作られたブロックチェーンは、世界中のコンピュータに分散保存され、正確に同期を取りながら徐々に伸びていきます。世界中のコンピュータに保存されていますので、そのうち一部がネットワークから脱落しても、問題なく正当性が保たれるのです。

採掘は「ブロックチェーンに新しいブロックを接続すること」である

今回の記事のテーマである採掘とは、簡単に言えば「ブロックチェーンに新しいブロックを接続する行為」のことです。前述の通り、ビットコインではおおむね10分に1つ新しいブロックが接続されるわけですが、世界中に分散保存されているブロックチェーンの整合性を取りながらブロックを接続するというのはけっこう大変です。

この作業にはコンピュータの計算力が必要ですが、膨大な計算が必要となるため、有志のコンピュータリソースを拝借しています。分散保存されているコンピュータに違ったブロックを接続しないように慎重に、正確に検証を繰り返すためには、膨大な計算が欠かせないのです。ビットコインが今も整合性を保てているのは、有志がコンピュータリソースを提供してくれているからなのです。

……とはいっても、もちろん彼ら有志もただでリソースを提供しているわけではありません。実はリソースを提供し、採掘に成功すると、報酬がもらえるのです。

報酬は「新規発行されるビットコイン」と「取引をした人が手数料として支払ったビットコイン」から成り立っていますが(手数料を払うと優先的に送金してもらえるため、わざわざ払わなくてもいい手数料を支払う人は少なくありません)、比重としては前者のほうが圧倒的に多いです。

ただし、新規発行されるビットコインの量は徐々に減っていきます。当初は1つブロックが生成されるたびに50BTCのビットコインが発行されていましたが、2012年11月に25BTCに、2016年7月に12.5BTCに減少しました。

このように、新規発行されるビットコインの量が半分になるタイミングを「半減期」といいます。半減期が来るたびに流通量増加のペースが鈍るt前、一般的に、半減期の直前は価格が上昇する傾向があります。

採掘のもっと具体的な内容は?

採掘をもっと具体的に言えば、適切なハッシュ値を導けるナンスを見つけるために、ハッシュ関数を用いて繰り返し計算する作業です……といっても、何が何らやさっぱりかと思いますので、もう少し詳しく解説いたします。

ハッシュ関数とは

まずはハッシュ関数。これはある元データを入れると、それとは全く別のデータ=ハッシュ値を返してくれる関数です。ビットコインの場合はSHA256というハッシュ関数を採用しています。

元データは日本語でもアルファベットでもアラビア文字でも、大文字で小文字でも、全く構いません。とにかくなにかデータを入れると、ハッシュ値を返してくれるのです。

また、ハッシュ関数には以下のような特徴があります。

元データの長さにかかわらず、ハッシュ値の長さは常に一定になる

ハッシュ関数はありとあらゆるデータをハッシュ値にしてくれますが、元データの長さにかかわらずハッシュ値の長さは常に一定になります。例えばSHA-256の場合、どんな長さのデータを入れても64文字のハッシュ値が返ってきます。具体的には、以下のような感じになります。

元データ ハッシュ値
dc5a4d3d82f7e15792959dc661538ae0e541ce66494516f5c9cfd9cd3308494d
ビットコイン b89ae3280372363341c1acef577b58d1e5b7df65a3775c7c8f1788aef9a04b66
吾輩は猫である。名前はまだない。どこで生まれたか頓と見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。 af0b396c0b424a97f877d6d7cd726f912df1606b186b10c718ef04c8b6f7691a

元データが少しでも変わると、ハッシュ値は全く別のものになる

ハッシュ関数に入れる元データが少しでも変わると、ハッシュ値も全く別のものになります。例えば元データの表記の一部が大文字から小文字になったり、空白が全角から半角になったりするだけでも、ハッシュ値は全く別のものになります。

元データ ハッシュ値
ビットコインにはSHA256というハッシュ関数が使われています。 c056d50b273e06dc79c30e4f7573ab5b18f20880953027133bb87c0699b3729c
 ビットコインにはSHA256というハッシュ関数が使われています af35c55d87a7e7465ffe6f2ec8553bf44584b4ce6fffb9b88fc4fa1e3718738b
ビットコインにはSHa256というハッシュ関数が使われています c10b2281c342bcb7e2d0a0a625d0f91ea4c7da56738a4da39c5c4e3aac49b3ce

ハッシュ値から元データを逆算することはできない

元データからハッシュ値を計算するのは非常に簡単です。例えばSHA256の場合、SHA256ハッシュ生成ツールというサイトを使えば、ワンクリックでハッシュ値が求められます。

しかし、その逆、ハッシュ値から元データを逆算することは原則として不可能です。

「b89ae3280372363341c1acef577b58d1e5b7df65a3775c7c8f1788aef9a04b66」というハッシュ値を見て、「ああ、この元データは『ビットコイン』なのだな」と気づくことはできないのです。

サイズが極めて小さい

ハッシュ関数の元データのサイズにかかわらず、ハッシュ値の文字数、つまりデータの大きさは常に一定になります。元データがどれだけ大きくとも、ハッシュ値のデータの大きさはかなり小さく抑えられるということです。この性質は、ブロックのサイズが限られているブロックチェーンの仕組みとは非常に良好です。

ナンスとは

次にナンスについて解説いたします。ナンスとは、ビットコインの仕組みに置いて、ハッシュ値の元データの一部になる数字のことです。

ビットコインのブロックは実は「ボディー」と「ヘッダー」という2つの部分に分かれています。ボディーには取引記録が、ヘッダーには「直前のブロックのデータのハッシュ値」と「ナンス」が格納されます。

ビットコインで新しいブロックを生成する際には、「直前のブロックのヘッダーのハッシュ値」「新しいブロックの取引情報」「新しいブロックに入れたい(自分で設定する)ナンス」の3つを元データとして使用し、ハッシュ関数にかけます。ナンスを変えれば、当然その結果排出されるハッシュ値も変化します。

採掘の実態は単純な計算の繰り返し

ところで、ビットコインには「ハッシュ値の先頭16桁が0でなければならない」というルールがあります。採掘とは具体的に言えば、「直前のブロックのヘッダーのハッシュ値」「新しいブロックの取引情報」「新しいブロックに入れたい(自分で設定する)ナンス」の3つを元データとしたときに、先頭16桁が0になるハッシュ値を探す行為なのです。

コンピュータは、ハッシュ値の先頭16桁が0になるナンスを出すために、ナンスをいろいろと入れ替えて、虱潰しに計算を行います。「ナンスが●●なら先頭16桁が0のハッシュ値が出るのではないか」→「だめだった。ではナンスが▲▲ならどうだろう」→「これもだめだった。ではナンスが■■なら……」と、ただひたすらに繰り返していくのです。1つ1つの計算は非常に単純であり、一瞬で終わりますが、先頭16桁が0になるナンスを探すのは骨が折れます。

そしてめでたく先頭16桁が0になるハッシュ値を導けるナンスが見つかればそこで作業は終了となり、前述の報酬を受け取れます。1つのブロックを採掘できるのは1人だけであり、熾烈な計算競争と言えます。

ちなみに、採掘を行うためのマシンの計算能力は「ハッシュレート」という値で示されます。ハッシュレートは「1hash/s」のように、1秒あたりの計算回数で表示されます。例えば1秒間に100万回計算できる場合は100万hash/s=1Mhash/sと表示されます。

採掘の難易度は情勢に応じて変化する

ビットコインは現状、前述の通り「ハッシュ値の先頭16桁が0でなければならない」というルールを導入していますが、これは今後変化する可能性があります。例えば「先頭17桁が~」「先頭18桁が~」となるかもしれない、ということです。このような調整を難易度調整といいます。

一般的に、コンピュータの計算速度は進化し続けます。コンピュータの性能が上がれば、その分だけ採掘に成功するまでにかかる時間が短くなってしまい、おおむね10分に1つブロックを作るというビットコインの原則が乱れてしまいます。これを防ぐために、難易度調整を行うのです。

逆に採掘に参加する人間が極端に減り、採掘に時間がかかるようになった場合は「先頭15桁が……」「先頭14桁が……」となることもありえます。

コンピュータが強力なほど、採掘に成功しやすい

前述の通り、ビットコインの採掘はつまるところ膨大な計算を繰り返す競争です。必然的に、そして、膨大な計算競争で優位に立つためには、強力なコンピュータが必要になります。

現状、ビットコインの採掘に使われているのは「ASIC」というマシンです。ASICとは特定の用途向けに複数の回路を一つにまとめた集積回路の総称ですが、ビットコインの世界においては「高額・高性能なビットコイン採掘専用マシン」とでも考えていただければだいたい問題ありません。

かつて、ビットコインは個人でも比較的楽に買えるCPUやGPUといった装置でマイニングされていましたが、現状はこれよりもずっと計算の早いASICを多数抱えるマイニングプールが市場を席巻しています。もはや素人がCPUやGPUでマイニングに参加できる余地は殆ど残っていないと言えるでしょう。

資力のない素人がマイニングで利益を得る方法は?

素人が個人で機器を揃えて採掘を行うのは極めて難しくなってしまいましたが、それでも方法がないわけではありません。ここでは

  • クラウドマイニング
  • プールマイニング

について解説いたします。

クラウドマイニングとは

クラウドマイニングとは、採掘を行っている団体に出資する仕組みです。団体は受け取ったお金を元に機器を揃えて採掘を行い、それに成功した場合は出資額に応じて配当します。

クラウドマイニングのメリット

クラウドマイニングのメリットは、お金を出すだけで成り立つことです。自分でマイニングを行うとなると多数の機材を用意し、電気代も払わなければなりませんが、クラウドマイニングならばそのような手間も費用もかかりません。

クラウドマイニングのデメリット

クラウドマイニングのデメリットと言うか注意点は、投資する団体に利益が左右されやすいことです。クラウドマイニングを行う団体の中には、資金だけ集めて雲隠れしたり、あるいは悪意はなくとも利益を挙げられずに倒産するようなところもあります。安易な投資は避けましょう。

プールマイニングとは

プールマイニングとは、複数のマイナーで協力してマイニングを行うプラットフォームのことです。複数のマイナーがサーバー(マイニングプール)に集結し、それぞれが通常と同じように採掘に挑戦します。

プールの中の誰かが採掘に成功した場合、その報酬はマイニングプール内で山分けされます。配分を決める計算方法には「PPLNS」と「PPS」の2種類があります。

PPLNSは、ブロックが発見された時点でその通貨のプールマイニングをしていないと報酬がもらえない方式です。PPSはもっと単純で、マイニングしている時間と報酬が比例する方式です。どちらも一長一短ですが、初心者の場合はPPSがおすすめです。

プールマイニングのメリット

プールマイニングのメリットは、報酬が安定しやすいことです。1人で行うソロマイニングは、短時間のうちに大きく稼げる可能性が僅かに存在するものの、いくらやっても全く稼げない可能性のほうが遥かに大きく、収益が非常に不安定なものになりがちです。

一方、プールマイニングは大人数で一斉に採掘に取り組み、成功した場合は山分けするという方式ですので、収益が安定します。

プールマイニングのデメリット

デメリットは機材が必要なことです。クラウドマイニングはお金を出すだけで参加できますが、プールマイニングはあくまでも自身で機材を揃えてマイニングを行わなければなりません。これはけっこう大変なことです。また、報酬を分け合うため、1人あたりの報酬額はどうしても少なくなりがちです。

マイニングプールのシェア率

マイニングプールには「シェア率」というものがあります。ハッシュレートが高いほどシェア率は高くなり、その分マイニングに成功する確率も高まります。2019年6月20日時点での、主なマイニングプールのシェア率は以下のとおりです。

  • BTC.com:19.7%
  • Antpool:13.8%
  • F2Pool:11.0%
  • ViaBTC:9.8%

これはあくまでも一時点でのシェア率であり、今後変化する可能性は全く否定できません。2017年3月時点ではBTC.comのシェア率は3.9%に過ぎませんでしたが、現在は圧倒的1位です。

一方、2016年1月時点では25%で1位だったF2poolは、3位にまで落ちています。もちろんBTC.comといえども万全ではありません。プールマイニングも生き馬の目を抜く世界なのです。プールマイニングに参加する場合は、なるべくシェアの大きなマイニングプールに参加することをおすすめします。

ビットコイン以外(アルトコイン)の採掘について

仮想通貨の世界において、ビットコイン以外のものをまとめてアルトコインといいます。アルトコインにはイーサリアムやライトコイン、ビットコインキャッシュと言ったような知名度の高いものもあれば、開発者しか知らないような超マイナーなものもあります。そして、これらの仮想通貨の中には、ビットコインと同じように採掘できるものも少なくありません。

例えばライトコインやビットコインキャッシュは、ビットコインと同じように採掘ができます。ただ、これらの著名なアルトコインはビットコインほどではないとはいえやはりASICによるマイニング競争が厳しく、個人でマイニングするのには向いていません。やはりクラウドマイニングやプールマイニングを行うことになるでしょう。

どうしても個人で採掘が行いたいという場合は、ASIC耐性を持つ通貨のマイニングをおすすめします。

ASIC耐性とは

ASIC耐性とは、簡単に言えば、ASICでの採掘が極めて難しいという特徴のことです。ASIC耐性がある仮想通貨は安価なCPUやGPUでの採掘がメインになりますので、特定のマイニングプールよって市場が寡占されにくくなります。初期のビットコインのような、誰にでも開かれた採掘市場を実現できるのです。

仮想通貨にASIC耐性を持たせる方法はいくつかあります。最もわかりやすいのは、採掘の際に行う計算を複雑なものにする、というやり方です。ASICは単純な計算を繰り返すのには向いていますが、難しい計算をするのには向いていないためです。

計算の手順を数ヶ月に1度変更する、という方法もあります。特定の用途しか持たないASICは計算方法が変更されれば無力になります。数ヶ月で無力になる(初期投資を回収できない)ASICは誰も買わないので、必然的に開発も行われない、ということになります。

ASIC耐性いいことばかりではない?

ASIC耐性にはデメリットもあります。ASIC耐性があるということは、誰でも、つまり悪意のある人でも採掘に参加できるということです。悪意のある人が採掘市場を締めれば、ハッキングも可能になります。もちろん、善意のある人が採掘市場に参加することもあるので、一概に危険とも言えませんが……。

一方、ビットコインのようなASIC耐性のない通貨の採掘市場に参加するためには、高額なASICが何台も必要になるため、悪意はあるがお金がない人は簡単に排除できます。

ASIC耐性は破られることもある

一部の仮想通貨の開発者は通貨にASIC耐性を持たせるためにいろいろと頑張っているわけですが、ASIC開発者もそれを破るためにいろいろと頑張っています。そして、ASIC開発者が勝つ(ASIC耐性を破る)こともままあります。

世界最大級の採掘関連会社のBITMAINは過去に、ASIC耐性があると考えられていた複数の仮想通貨をマイニングできるASICを次々と発売して話題となりました。ASIC耐性がある仮想通貨というのは、あくまでも「現時点で」ASIC耐性があるということに過ぎないのです。

まとめ

  • ビットコインには採掘(マイニング)という仕組みがある
  • 採掘はブロックチェーンに新しいブロックを接続する行為である
  • 採掘をさらに厳密に言えば適切なハッシュ値を導けるナンスを探す行為である
  • 採掘に成功すると報酬がもらえる
  • 採掘の難易度は年々上昇している
  • 採掘は個人で行うのはもはや難しく、クラウドマイニングやプールマイニングが主流化している
  • アルトコインのマイニングもメジャーどころは競争が激化している
  • ASIC耐性を持つ仮想通貨なら、GPUやCPUでも採掘できる

採掘はビットコインを始めとする多くの仮想通貨を支える仕組みであり、場合によっては大きな利益ももたらしてくれます。この仕組が気になるという方は、まずは適切なマイニングプールやクラウドを探すところから始めてみてください。