投稿日:2022年9月16日
最終更新日:2022年9月16日
ブロックチェーンProof Of Work

ブロックチェーンの基本 Proof of Work (POW)

著者画像
WRITER 安達 定幸
代表取締役
ブロックチェーンの基本 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を推測するのです。