暗号資産(仮想通貨)の基礎

ブロックチェーンのPoW(Proof of Work)とは?仕組みや必要な理由について詳しく解説


16:新ブロック生成の権利を得るための仕事PoW(Proof of Work)

前回(第15回)、ブロックチェーンに一時的なフォーク状態が発生することがあると説明しました。
それは「新ブロックの生成に成功した」と宣言するマイナーが複数個、ほぼ同時に現れた場合でした。
しかし、そのようなことがめったに発生しないように、マイナーは新ブロック生成の権利を得る仕事をします。
それがPoWです。

今回はPoWについて解説します。

PoWが必要な理由

ブロックチェーンに追加するために多数のトランザクションを集めて新しいブロックを作るという作業は、世界中に何千、何万と存在するマイナーのコンピュータが実行しています。
したがって各マイナーが勝手に新ブロック生成を宣言すると収拾がつかず大変なことになってしまいます
優先するマイナーを決める権限を持つ中央集権的な管理人がいないので混乱してしまうのです。

そこでビットコインではマイナー同士を競わせて難しい計算をさせることにしました。
正解を求めるには多くの試行をしなければならない確率に依存する問題を解かせる計算です。
確率的な問題であれば平均的な時間で解けるマイナーは多数に上りますが、短時間で解けるマイナーはごく少数しかないという統計的な分布が現れるので、最も短い時間で問題が解けたマイナーに新ブロック生成の権利を与えればよいという考え方です。
PoWとはこの「確率に依存する問題を解く」計算作業のことを意味しています。

もうひとつ、PoWとして難しい計算をさせる理由があります。
それは、ブロックチェーンの改ざん防止の役目です。
そのため、PoWの計算結果は「ナンス」という名前の値としてブロックヘッダ内に記録することになっています。

ブロックチェーン上のあるブロックに含まれるトランザクションを改ざんして、送金先を変更(改ざん)しようとする試みを考えましょう。
トランザクションの「送金先アドレス」を変更するとブロックヘッダ内の「マークルルートのハッシュ値」が変わるので、PoWを再計算して新しいナンスを計算する必要があるのです。
一つのブロックのナンスが変わると次につながれているブロックについてもPoWの再計算をしないとブロックチェーンの整合性が保てません。
このように、改ざんしたブロック以後のブロックのPoWをすべてやり直さないとブロックチェーンとしての整合性が確保できないようにしてあります。
大半のマイナーが正常に動いているならば、ごく少数の悪いマイナーが改ざんを実行する速度より多数派がブロックを生成していく速度の方が速いのでブロック改ざんの試みは成功しないのです。

ブロックチェーンの構造

 

ビットコインのPoW

PoWの代表例としてビットコインの場合を説明します。

まず、「ナンス」として適当な値を決めます。
ブロックヘッダ内に記録されている「前のブロックのヘッダのハッシュ値」と「マークルルートのハッシュ値」と「ナンス」を結合して三つ全体のハッシュ値を計算します。
計算されたハッシュ値がその時点で決められている難易度を満たしていればPoWとしての計算を終了します。
満たしていなければ、ナンスを次の候補に変更してから再度ハッシュ値を計算します。

ビットコインのPOW計算方法

ここで「難易度」とはハッシュ値を計算した結果の先頭が「難易度」で示された桁数以上が0でなければならない(先頭の0が多いのは、ハッシュ値が小さいことを意味します)という規定です。
難易度は計算機の高性能化に対応してPoWを難しくしていけるよう、10分程度で先頭のマイナーの計算が終わるように常に調整されています。

ハッシュ値には、元のデータが1ビットでも変更されると全く別の値になるという性質があるので、直前の計算から次のナンスとしてどのような値を使えばよいかは計算も推定もできません。
しらみつぶしでもランダムでも良いですが、次に試行するナンス値を与えて再計算を実行しなければなりません。

このような計算は確率的な問題の解を求める計算であり、計算に長時間を要するのでブロックチェーンの改ざん防止の役にも立つのです。

今回はPoWの役割と具体的な計算方法についてまとめてみました。

Provided by
上野 仁(Hitoshi Ueno)

1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。
システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。
2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。
2023年より東京情報デザイン専門職大学教授。
生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。
技術士(情報工学)。
博士(工学)。

>上野 仁氏監修の「ビットコイン(暗号通貨)」に関する記事一覧はこちら


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » 暗号資産(仮想通貨)の基礎 » ブロックチェーンのPoW(Proof of Work)とは?仕組みや必要な理由について詳しく解説