直訳すると「仕事の証明」
プルーフ・オブ・ワークとは、直訳すると「仕事の証明」ですが、確かにその名の通りのことを各マイナーは行います。プルーフ・オブ・ワークを用いたコンセンサスでは、新規ブロックのハッシュ値は、あらかじめプログラムによって設定された数の0が頭に並ぶ必要があります。実際にビットコインブロックチェーンのブロックのハッシュ値は、「000000000000000001253855be89538357a6eb7f937299a45872a47111c6997c」のようになっています。
このような値になるようにブロック内のデータを調整する必要があり、この調整に利用されるのが、「ナンス値」です。
ハッシュ値の特徴として、ハッシュ値からもとのデータの内容を予測することが困難なため、条件を満たすナンス値をピンポイントで見つけることが非常に困難です。そのため、一つひとつの数値を総当り的に試していくしかありません。
コンピュータによる膨大な計算を行うため、マシンパワー(CPU)が高いほど速くマイニングを行うことができます。そして一番はじめにナンス値を見つけたマイナーが、見つけ出したナンス値をブロックに入れて、ブロックの生成を行うことができます。
ブロックを生成してブロックチェーンに追加したマイナーは、自分以外のマイナーの持っているブロックチェーンにも生成したブロックを追加するように依頼を行っていきます。
マイナーが「ブロック」の正しさを証明する手順とは?
惜しくもナンス値を見つける競争に遅れを取ってしまったマイナーは、マイニングに成功したマイナーより受け取ったブロックが正しいかを確認します。
ブロックのデータにハッシュ関数を掛けて一定数の0が並んでいるかを確認するだけですので、ナンス値を探すよりもはるかに簡単な作業です。
このように他のマイナーたちによって確認がなされていき、全マイナーの過半数が正しいブロックであると承認すれば正式に新規ブロックとされ、次のブロックの生成がはじまります。
ここまでの一連の作業が、ビットコインの場合は約10分おきに行われています。