最終更新日:2022年9月16日 ブロックチェーンProof Of Work
ブロックチェーンの基本 Proof of Work (POW)

ブロックチェーンの基本 Proof of Work (POW)
今回は、ブロックチェーンの技術や構成要素の中で最も重要なものの1つである「Proof of Work」についてお話します。Proof of Workは、二重払いの防止を実現するブロックチェーンの画期的なコンポーネントです。
二重払いとは?
Proof of Workがどのような問題を解決するのかを理解するためには、まず実際にどのような問題があるのかを理解する必要があります。
二重払いとは、ブロックチェーン上で、1ビットコインを2回以上使うという違法行為です。
物理的な世界では、ボブがアリスに絵を渡したとします。ボブはアリスに絵を渡したので、もうその絵は彼の所有物ではありません。アリスが所有しているので、ボブは同じ絵をジョンにあげることができません。
デジタルな世界では、ボブはアリスに絵の入った電子メールを送ります。ボブはまだ自分のコンピュータに写真を所有しており、同じ写真をジョンに送ることができます。このように、彼は画像を2回送っており、これを無限に続けることができます。
これは、かつての仮想通貨で大きな問題となりました。同じ通貨を2回送らないようにするにはどうしたらいいか。また、誰かが自分の通貨を無限にコピーペーストしてしまうのを防ぐにはどうしたらいいか。これを解決したのが、Proof of Workです。
Proof of Workとは?
Proof of Work、略してPoWとは、マイニングとも呼ばれるブロックチェーン上の取引確認方法のことです。
ブロックチェーンとは、過去のブロックの分散型台帳(データベース)です。ブロックチェーンは、分散化を実現するノードによって世界中に分散されています。ノードの機能の1つは、ブロックチェーンに新しいブロックを追加することであり、これらのノードはマイナーと呼ばれます。ブロックチェーンに新しいブロックを追加できるのは、計算資源を消費することをいとわないノードのみです。
Proof of Workの実際の仕組みは?
Proof of Workでは、マイナーは数学的な一方通行の関数を解いています。複数のマイナーが同時に競い合います。最初に関数を解いた人が金銭的報酬を得、その解答は他のすべてのノードに伝えられます。
SHA256では、XからYを得ることはできますが、YからXを取り戻すことはできません。これは一方向性関数と呼ばれ、暗号技術でよく使われます。例えばビットコインのウォレットアドレスは、秘密鍵をSHA256でハッシュ化したものです。
マイナーに何らかの入力データがあった場合、長いランダムな文字列が得られますが、これは逆戻りができません。しかし、ブロックチェーンはnonce(一度しか使われない数字)と呼ばれる別の文字列を使います。nonceを使うことで、マイナー(採掘者)はSHA256の出力を操作し、目的の出力を推測することができます。
ブロックチェーン・ネットワークは、例えば、6つのゼロで始まる出力を設定します。例えば、000000c49ede7f965ba8e7e6419d6efb0afc99e7ecd10095b286310ca55a6355
マイナーは、ブロックハッシュの出力が000000で始まるまで、nonceを推測します。これがマイナーの仕事です。 データ入力としてブロック取引を組み合わせ、SHA256出力が000000で始まるまで、nonceを推測するのです。