仕組みを理解しよう!PoW(プルーフ・オブ・ワーク)とは
初心者向けにブロックチェーンを支える技術として知っておきたいPoW(プルーフ・オブ・ワーク)について解説しています。仮想通貨のマイニングという作業を行う際に知っておきたい概念で、ビットコインを例に説明しています。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、PoW(プルーフ・オブ・ワーク)とは何か解説します。
ビットコインやブロックチェーンを支える技術として覚えておきたいキーワードでしょう。具体的にどういったシステムなのか事例を交えながら説明しています。
今回はPoWという仕組みについて説明するよ。
田島メンター!PoWというのは何ですか~?
プルーフオブワーク(Proof of Work)の略で、取引検証方式のひとつなんだ。実際に何が行われるのか、ビットコインのマイニングの手順を見ながら解説しよう。
分かりました!
PoWとは
PoWとは、Proof-of-Workの略称で、日本語で言うと「労働により証明すること」を意味します。
どのような仕事をするかというと、ビットコインではマイニングという作業を行います。ビットコインをマイニングしているマイナーたちは、コンピュータの余っている計算能力を借りることでブロックチェーン上で行われた取引の記録作業を行い、記録に成功すると報酬を受け取る仕組みになっています。
一方で、膨大な計算を行うため消費電力が多く、より多くの報酬を受け取るためには多額の電気代がかかってしまい個人でマイニングをするにはハードルが高いでしょう。
サイコロを投げるPoW
PoWについて、サイコロを投げるゲームで説明してみます。
複数人のプレイヤーが2つのサイコロを投げます。
勝利条件は、サイコロの和が、特定数値以下であれば勝ちとします。ここでサイコロを投げることをビットコインで言うマイニング(採掘)と考えます。
サイコロの和をNonce(ノンス)と呼びます。
この勝利条件である特定数値をDifficulty Target(採掘難易度)と呼びます。
参加者が1人の場合のDifficulty Targetは非常に高く、ある程度のNonceでも勝利できます。
しかし、参加者が1000万人のように増えていくと、Difficulty Targetの値は低い数値になり、サイコロでNonceを出すことが非常に難しくなります。
PoWによるマイニング
ビットコインでは、マイニングを行うということはブロックを生成するということです。
ブロックを生成するにはNonce(ノンス)フィールドを見つけることとほぼ同等です。これは、PoWで計算する問題は、ハッシュ値が特定条件になるNonceを見つけることだからです。
実際の計算は、Nonceを変えながら総当りで特定の条件を満たすNonceを何兆個も試す必要があります。
特定の条件とは、ブロックヘッダのハッシュ値がDifficulty Targetという値よりも小さければ合致するという条件です。
Difficulty とは難易度という意味です。ここではマイニングを行うための難易度を意味します。
Targetとはビットコインのノード間で共有されている256ビットの数値です。
先程のサイコロの例の説明でもありましたが、Difficulty Targetの値が小さければ小さいほど、マイニングするための難易度が上がります。
まずはPoWで行われる、仕事に関する部分だよ。
Nonceというものを求めるのが目的になるわけですね。
それが終わると、この仕事が正しいかを証明する段階に入るんだ。次はPoWの検証についても見ていこう。
PoWの検証
マイナーがマイニングを行た結果、特定条件を満たすNonceを見つけた場合ブロックが生成されます。
このブロックはマイナーのノードから、他のノードへ伝送されます。
ブロックを受け取ったノードではそのブロックが問題なく有効なブロックかをチェックします。
チェックして、このブロックが問題ないものであれば、更に他のノードへ伝送します。
このブロックの有効性を検証するにはハッシュ計算を行うことで一瞬で完了します。
つまり、ブロックヘッダーをハッシュ化してDifficulty Targetという値よりも小さければ有効であるという検証結果になります。
今回は、PoWについて解説しました。
PoW(プルーフ・オブ・ワーク)という一連の作業を行うことで、取引の記録が残っているのです。中央管理者がいなくても信頼を担保するシステムなので、これからより一層活用されていくでしょう。
ブロックが有効であった場合、それを生成した人に報酬が払われるんだ。
莫大な量の計算を行うためには、それに応じたコストが必要になりそうですね。
アルトコインではPoWにあたるものとしてPoSというシステムもあるんだ。これはまた異なった仕組みになっているので、そちらも併せて覚えていこう。
そうですね、調べておきます。ありがとうございました!
この記事を監修してくれた方
中本賢吾(なかもとけんご) 開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。 その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |