前回、暗号資産におけるマイニングとは新たなブロックを生成し、その報酬として仮想通貨を手に入れる行為だと述べた。
ビットコインのような暗号資産の新規発行とは、トランザクションを含んだブロックを生成する作業のことを指す。トランザクションデータは、ハッシュ値というデータで保管されている。また、取引の承認とは、トランザクションデータが書き換えられないように、つまり改ざんされないように、検証していく作業を指す。
マイニングは、ハッシュ値を計算するハッシュ関数と関係している。ハッシュ関数は、平文をハッシュ値に変換するのは容易だが、ハッシュ値からもとの平文を突き止めるのは難しいという、不可逆的な一方向関数という特徴をもつ。
マイニングの具体的な作業は、ブロック内のナンス部分を変更することでハッシュ値を切り替えていき、さまざまなハッシュ値を探索していく。その結果、ブロックのヘッダー部分のハッシュ値が特定の条件を満たす場合、マイニング作業が成功する。
マイナーがマイニングの結果、報酬を得るためには、他のマイナーよりも早く特定のナンス(ハッシュ値)を見つけることで、新しいブロックを生成しなければならない。
なぜ、このような電力を消費する行為を、ナンスを見つけるためにするかというと、マイナーが平等に作業に参加して(特定の誰かが必ず報酬を得るということになると、他の人々が参加しなくなる)、その結果を分散型ネットワークで共有することで、改ざんのしようがなくなるということになるからだ。そこで、改ざんするよりは、このマイニングに参加した方がコストが安くて報酬を得られる可能性があるので、皆はごまかすより、正々堂々とマイニングに参加するほうがよいと思うようになる。そのように設計されている。