ビットコインのマイニングって何?

マイニングとは、一言で言うと「文字列を当てはめること」だと思っています。
具体的にどういうことかを説明する前に、まずビットコインにおけるブロックチェーンの仕組みについてざっくりまとめたいと思います。

ブロックチェーンってそもそも何?

ブロックチェーンは「分散型台帳システム」とよく比喩されます。どういう意味かというと、一つのサーバーで一元管理するのではなく、世界中に散らばったいくつものコンピュータに全く同じ取引記録が保存されているということです。

中心にいる国や企業が管理するシステムは、管理者が信頼できるということが前提で成り立っていますが、仮に管理者が不正を働いたり、管理者のサーバーがダウンすると全ての取引が影響を受けます。
一方ブロックチェーンではサーバーを介さずに個人のPCなどを相互につなげる技術(P2P)を採用しているので、管理者の信頼に依存しないという強みがあります。

管理者ではなく、ネットワークの参加者全員で正しい取引が行われているか監視し合うのが、ブロックチェーンということです。

ビットコインにおけるブロックチェーン

今回はビットコインのマイニングの話なので、ビットコインに話を戻します。

ビットコインの取引はネットワークの参加者みんなで承認し合って正しさを担保しているので、取引の成立には第三者の承認が必要です。つまり「AさんからBさんへ1BTC送金する」という指示を出しても、みんなから承認されなければ取引は完了しません。そこでビットコインでは未承認のトランザクションを約10分ごとに1つの「ブロック」にまとめ、承認する仕組みをとっています。(なぜ10分毎なのかはあとで説明します!)

こうして新たに承認されたブロックを、すでに承認されているブロックのつながりの最後尾にはめ込むことで、初めて取引が成立します。このブロックのつながりがいわゆる「ブロックチェーン」です。

ブロックチェーンの技術ってどうなってるの?

では、各ブロックの中身がどうなっているのか少し詳しく見ていきます。
ブロック内には数百から数千のトランザクションが入っています。一つ一つのトランザクションは「ハッシュ値」という規則性のない64桁の文字列に変えられて保管されます。

ここで大事なポイントが2つあります。1つは、トランザクションの中身を少しでも変更すると全く別の「ハッシュ値」が生成されてしまうということ。もう1つは、一度トランザクションをハッシュ値に変換すると復元できなくなるということです。つまり、あとから勝手に取引内容を変更できないということです。

このようなブロックが最後尾につながってブロックチェーンとなるわけですが、新しいブロックを繋げるには特定の「鍵」を見つける必要があります。この「鍵」を見つける作業こそが「マイニング」です。

マイニングって何?

ここから、マイニングの仕組みを説明していきます。
トランザクションがハッシュ値に置き換えられることと同様に、ブロックもまたハッシュ値に置き換えることができます。新しいブロックを追加する際には、
「直前のブロックのハッシュ値」+「追加したいブロックのハッシュ値」+「任意の文字列(ノンス値)」
をまたハッシュ値に変換し、そのハッシュ値の最初の16桁が全て0になるようにしなければならないというルールになっています。

こうなるような「ノンス値」をしらみつぶしに当てはめていく作業がマイニングです。
ランダムに生成されるハッシュ値の最初の16桁全てが0になる確率なんてめちゃめちゃ低いので、何億何兆回とトライアンドエラーを繰り返すことになります。

このマイニング作業にはかなりのマシンパワーと電力が必要なので個人のPCなんかではとても不可能ですが、現代のマイニング専門のコンピュータの性能であればだいたい10分で見つけられる程度の難易度に設定されています。ブロックの生成がだいたい10分毎なのはそのためです。

一番最初にノンス値を見つけた人には報酬が与えられる仕組みになっていて、2018年11月現在の報酬は12.5BTCになっています。1BTCが50万円くらいだとすると、625万円。。
マイニングには強いコンピューター代とか電気代とか場所代とか結構なコストがかかりますが、まだちゃんと採掘する人がいるところを見るとちゃんとペイできているみたい。


今回はビットコインのマイニングについてまとめてみました。

ちなみにマイナーに与えられる報酬はオリンピックイヤーごとに半減していくのですが、このことについてもまたブログで書きたいと思います。