「マイナー」ってどんな作業をしているの?作業の内容や手順を一歩踏み込んでわかりやすく解説!

ビットコインのマイナーとは?

“マイニング”はビットコインのブロックチェーンを維持するのに必要な作業です。
そして、このマイニングをしてビットコインの報酬を得ている人のことを“マイナー”と呼びます。

では、マイナーはいったいどんな作業をして、その対価としてどのように報酬(ビットコイン)を貰っているのでしょうか?

この記事では、マイナーの実際の作業内容やマイナーがどのように報酬を得ているのか?について、一般的な知識から一歩踏み込んで詳しく解説したいと思います。

マイニングの基本的な知識についてはこちらの記事をご覧ください。
「マイニングとは?」

 

【結論】ビットコインのマイナーとは?

労働者という観点で見た場合、マイナーとは約10分ごとに他のマイナー達と計算を競い、1番最初に答えを見つけて報酬(ビットコイン)を貰う人のということです。

まず、ブロックチェーン上でのマイナーの主な役割は主に2つです。

 

【マイナーの主な役割】

  1. ブロックチェーンに新たにブロックを追加するための作業をすること。
  2. プルーフオブワーク(Proof of Work)として計算の競争をすることにより、ブロックチェーン上での不正行為を排除すること。

 

マイナーの作業内容・フロー

 

ではさらに一歩踏み込んで、マイナーの作業は主にどのような内容・流れで、またブロックチェーン上ではどのような役割を持っているのかを説明します。

 

【マイナーの主な作業フロー】

  1. トランザクションの収集・承認
  2. ブロックの生成・報酬用のトランザクションの作成
  3. ブロックをブロックチェーンに追加するための計算競争
  4. マイニングの完了(報酬の受取)
  5. No.1に戻る⤴

 

マイナーの作業は主に上記の4段階の構成となっていて、これを約10分間隔で繰り返し続けています
では、それぞれの作業項目を解説します。

 

作業①トランザクションの収集・承認

ユーザーの取引データとも言える「トランザクション」は、P2Pであるブロックチェーン上で常に各「ノード」間で同期されています。

なおビットコインのノードとは、ビットコインのネットワークに接続してるコンピューターのことを指します。
ちなみにマイナーもマイニングの役割を持つノードです。

まずマイナーは、ネットワークの同期によって受け取ったトランザクションが、正しいトランザクションであるかを検証します。

そこで検証に問題がなければ、そのトランザクションを各マイナーが持つメモリープール(“mempool”とも言う)に追加してから、他のノードに伝播します。

なお、この時点ではトランザクションはまだ未承認なので、ユーザーの取引もまだ完了していないことになります。

 

作業②ブロックの生成・報酬用のトランザクションの作成


次にマイナーはトランザクションを集積するためのブロックを作ります。

ここで大事なポイントは、マイナーは受け取ったトランザクション以外に自分の報酬となるトランザクションを作り、それもブロック含めることで、マイニングが成功した時に報酬を受け取る事ができます。

 

【ブロックに含まれる2種類のトランザクション】

・複数のトランザクション(通常)
・ジェネレーショントランザクション(報酬用)

ここで新たに登場した”ジェネレーショントランザクション”とは、1ブロックごとに新規に発行されるビットコインのトランザクション(取引データ)のことです。

※この記事を書いている2018年時点では1ブロック毎に12.5BTCが新規に発行されています

さらにジェネレーショントランザクションには、ブロックに含まれている通常のトランザクションの全手数料の加わります。

そしてマイナーは、このジェネレーショントランザクションの宛先に、自分の持つビットコインアドレスを指定します。

 

【ジェネレーショントランザクションに記入される金額】
=(新規発行分のBTC)+(同じブロック内の全トランザクションの手数料)

[予備知識]

  1. 各ブロック(ブロックヘッダー)には直前のブロックのハッシュ値が含まれています。それによりブロックは順番に連なる事ができブロックチェーンが組み立てられていきます。
  2. ブロックに取り込まれるトランザクションの優先順位は、原則としてデータサイズ(1byt)当たりの手数料が高い順です。

 

作業③ブロックを追加するための計算競争

 

マイナーは、ブロックの生成が完了すると、ブロックチェーンに追加するために他のマイナーと計算の競争をします。

まず簡単に説明すると、その時点でビットコインネットワークで一番の計算力を持つマイニングマシンでも答えを見つけるのに約10分かかるむずかしさの計算をしています。

計算の競争の詳細は、ブロックヘッダのハッシュ値が、ディフィカルティターゲット(difficulty target)の値を下回る数値になるまで、ブロック内のナンス(nonce)の値を変更し続けながら計算をすることです。

なお、このディフィカルティターゲットは、2016ブロックごとに調整されます。
直近の2016ブロックの組み立てるのにかかった時間を元に、今後も1ブロックを追加するのに約10分間の計算が必要になるように自動で調整されます。

 

作業④マイニングの完了(報酬の受取)


約10分間計算で、答えとなる値を1番最初に見つけるとができたノードは、作ったブロックを他のノードに伝播します。

受け取ったノードはそのブロックが正しいブロックであることが確認できると、ブロックチェーン上に追加し他のノードにも伝播します。

そしてマイナーは再びブロックの作成と、ブロックチェーンに追加するための計算競争を始めます。

なおブロックがブロックチェーン上に追加され、更に6ブロックが追加されると、先程作ったジェネレーショントランザクションの取引も有効と見なされ、マイナーはようやく報酬を得る事ができます。

 

マイナーのまとめ

ここまででマイナーとその作業の流れについて解説をしました。
最後に要点を箇条書きにしてみます。

  • ブロックチェーンにブロックを追加している
  • トランザクションを検証してブロックに追加している
  • 他のマイナーと計算の競争をして1位になれば報酬を得ている

報酬=新規に発行されるビットコイン

今回は一歩踏み込んだ内容だったの少し難しく感じた方もいると思います。
そこでBTC初心者向け、ビットコインが安全な理由と弱点は?の記事では、初心者でもわかりやすい表現でマイナーについても解説をしていますのでご覧になってみてください。

仮想通貨の《取引所》と〈販売所〉の価格の決まり方の違い

改めてビットコインの送金の仕組みを知ろう!「電子署名」と「公開鍵暗号」とは