マイニングの正体は、
新たなハッシュ値を見つけること
さて、「新たなブロックを生成する」ためには、最後に生成されたハッシュ値から(1つ前のブロックから)、ゼロが一定数続く新たなハッシュ値を見つけなければならないというルールになっています。
そこで、最後に生成されたハッシュ値に「ナンス」という値を付加してハッシュ関数に放り込みます。
たとえばですが、「ハッシュ値の前にゼロが10個続く」というのが条件であれば、先頭にゼロが10個続くハッシュ値になるようなナンスを探すということになります。
このナンスを探す作業こそがまさしくマイニングなのです。
そして、そのナンスが見つかったら、「新たに生成されたブロック」ということで、そのブロックが最後尾に繋がれます。
こうして、「1つ前のブロックから新たなブロックが生成されて」、ブロックが鎖状に繋がる、すなわちブロックチェーンになるわけです。
要するに、ブロックのデータは厳密には、次の3つが格納されていることになります。
(1)トランザクション
(2)ハッシュ値
(3)ナンス
ちなみに、ビットコインの場合には、ナンスを見つけ出すための処理時間(新しいブロックを生成するために必要な時間)はおよそ10分になるように難易度(デフィカルティー)が自動調整されるようになっています。
たとえば、「先頭にゼロが10個続くようなハッシュ値を見つけなさい」が条件で、その条件を満たすようなナンスがいとも簡単に見つかってしまうときには、「先頭にゼロが15個続くようなハッシュ値を見つけなさい」と条件を変えて難易度を調整することで、新たなブロックの生成時間が常におよそ10分となるようにしているわけです。
逆に、難易度が高すぎるときにはその難易度を下げます。
さて、仮想通貨は「暗号通貨」と呼ばれますが、今見てきたように、データは圧縮されていますが、暗号化されているわけではありません。
言うなれば、正解のナンスを見つける作業が「暗号を解くように」行われているわけです。
そして、これがマイニングの正体であり、ブロックチェーンの正体なのです。