コンセンサスの原点「プルーフ・オブ・ワーク(PoW)」とは?徹底解説

Author logo
Patrick Dike-Ndulue
•
Post image

主要な洞察

本記事では、プルーフ・オブ・ワーク(PoW)の起源と進化をたどり、もともとはリソースの乱用防止策として誕生し、やがてビットコインの分散型ブロックチェーンの基盤となった経緯を解説します。PoWがマイナーによる計算パズルを通じてトランザクションの正当性を保証し、二重支払いを防ぐ仕組みや、その一方でスケーラビリティや消費電力の課題がある点も紹介。これらの制約に対応するため、ブロックチェーンレイヤーや新たなコンセンサスメカニズムの開発が進み、効率性とセキュリティ、分散性の両立が模索されています。

現在、分散型ネットワークにはさまざまなコンセンサスメカニズムが存在しますが、その原点はプルーフ・オブ・ワーク(PoW)です。本記事ではPoWの誕生から仕組み、そしてWeb3の主要アルゴリズムとして今も使われ続ける理由までを解説します。

もともとプルーフ・オブ・ワークは分散型ネットワークの基盤として考案されたものではありませんでした。仮想通貨とは無関係で、当初は「共有リソース」の利用者をさまざまな悪用から守るための仕組みとして1993年に提案されました。特定のリソースへアクセスする際、参加者に複雑な計算を課すことで乱用を防ぐという発想です。これらの計算結果は、誰でも簡単かつ迅速に検証できることも特徴でした。

実用化に適した最初の仕組みが登場したのは5年後、Adam Backが考案したHashcashプロジェクトです。Hashcashはスパムメール対策を目的とし、暗号技術を使って大量メール送信を困難にするものでした。メール送信前に、送信者は「SHA(x)のハッシュ値にN個の先頭ゼロビットが含まれるx」を計算し、その結果(プルーフ・オブ・ワーク)をメールのヘッダーに付与します。

メールが受信者に届くには、送信者がこの暗号問題を解いたことを検証する必要があります。これは、事前に用意されたラベルを使い、一度だけSHA-1計算を行うだけで高速にチェック可能です。このラベルは送信者が問題を解く前に生成し、システムの全参加者が参照できます。数通のメール送信なら問題ありませんが、大量送信には大きな計算能力が必要となります。

この仕組み、どこかで見覚えがありませんか?2008年、Satoshi NakamotoがビットコインとそのPoWブロックチェーンを生み出す際に、この考え方が応用されました。

PoWブロックチェーンの仕組み

Nakamoto(実在する個人か開発者グループかは不明)の発想の核は、第三者に依存しない分散型電子マネーシステムの構築でした。これにより、銀行などの仲介を介さずに直接送金できるようになります。

トランザクションの情報は台帳としてネットワーク全体に分散保存されます。取引は一定数ごとにブロックにまとめられ、各ブロックは前のブロック情報を必ず含みます。すべてのデータ(取引、前ブロックのハッシュ、タイムスタンプなど)はハッシュ関数(ビットコインではSHA-256)によって一意のコードに変換されます。チェーン管理は「フルノード」が担い、新しいブロックの生成はマイナーによって行われます。

ここで重要なのは、同じデータセットからは必ず同じハッシュが得られること。そして、ほんのわずかな変更でも全く異なるハッシュ値になります。

前述の通り、マイナーはブロックのハッシュ値を計算し、チェーンに追加します。計算自体はそれほど時間がかかりませんが、問題がすぐに解かれてしまわないよう、ネットワークは2,016ブロックごと(約2週間ごと)に計算難易度を調整します。これにより、ブロック生成時間が約10分に保たれ、ブロックチェーンの安定運用が実現します。

実際の流れを見てみましょう。マイナーはブロックを受け取り、ハッシュ値を計算します。ただし、ネットワークは「ハッシュ値がある基準値未満であること」を条件としています。ここで「ハッシュ値は変えられないのでは?」と思うかもしれませんが、この時に「ナンス(nonce)」という一度だけ使う値が登場します。マイナーはナンスをブロックに加え、値を変えながら計算を繰り返すことで異なるハッシュ値を得ます。そして、算出したハッシュ値が基準値以下になるまで何度もナンスを変更し再計算します。この作業は何百万回も繰り返されます。

この計算規模をイメージしやすいよう、次の数字を見てください。

115792089237316195423570985008687907853269984665640564039457584007913129639936

これはSHA-256ハッシュで可能な組み合わせ数です。宇宙の星の数の1,150億倍以上に相当します。

トランザクションの流れ

実際のトランザクションがどのように処理されるか見てみましょう。たとえばBTCを誰かに送る場合、まず秘密鍵でトランザクションを生成・署名し、ネットワークに送信します。フルノードが正当性を検証し、問題なければネットワーク上で流通します。他のノードも検証を行い、未確認トランザクション(メンプール)としてキューに入れます。

マイナーはメンプールから取引(手数料が高いものを優先)を集め、ブロックにまとめて計算を開始します。誰かが問題を解くと、フルノードがその解答を検証し、正しければマイナーに報酬が与えられます。ここでブロックは「マイニング済み」となり、ブロックチェーンに追加され、全ネットワーク参加者に情報が伝達されます。その後、マイナーは次のブロックの作業に入ります。また、取引を含むブロックの後に新たなブロックが積み重なるほど、取引の承認度は高まります。

簡単に言えば、トランザクションが正当と認められるには、ネットワーク内の大多数のノードが「そのブロックが正しく計算された」と合意する必要があります。

この仕組みは本当に必要?

Nakamoto以前にも分散型システムを目指した試みはありましたが、PoWコンセンサスメカニズムを採用したのは彼(ら)が初めてです。PoWがなければ、送信者が同じ資金をシステムの承認前に二重に使ってしまう「二重支払い」問題を解決できません。マイナーはメンプールから受け取った取引ごとに二重支払いがないかチェックします。

なお、PoWブロックチェーンでは、2人のマイナーが同時に同じブロックをマイニングすることも理論上あり得ます。これは悪意によるものとは限らず、計算がほぼ同時に完了し、片方が新しいブロックの情報を受け取る前に作業を終えた場合などに発生します。この場合、誤ったブロックから分岐する並行チェーンが生まれますが、コンセンサスメカニズムで2つのチェーンを比較し、より長い方が正規チェーンとして採用されます。

課題と限界

PoWの最大の課題は、純粋な形ではスケーラビリティに限界があることです。たとえばビットコインの処理速度は1秒あたり約7件と低く、ピーク時にはメンプールが混雑し、手数料の低い取引は数時間から数日間処理が滞ることもあります。一見、ブロックサイズを大きくしたり、生成速度を速めれば解決できそうですが、そう簡単ではありません。

ブロックサイズを大きくすると、生成に必要な計算能力が増し、大規模なマイナーやマイニングプールしか残れなくなり、分散性が損なわれます。

処理時間を短縮すると、ネットワークノードが次のブロック出現前に合意できず、「分岐(ブランチ)」が増えて二重支払いのリスクが高まります。

このようなジレンマは「ブロックチェーントリレンマ」と呼ばれ、「分散性・セキュリティ・スケーラビリティ」の3要素のうち同時に2つしか満たせないとされます。PoWの文脈では、ブロックチェーンレイヤーが導入され、メインシステムの上に構築することで取引処理速度を向上させています。

さらに、PoWと併用できる新しいコンセンサスプロトコルも開発されています。たとえばKaspaはPoWをネットワークのセキュリティに活用しつつ、ブロックをブロックチェーンではなく有向非巡回グラフ(DAG)にまとめることで、複数のマイナーが並行して異なるブロックを処理できる仕組みです。

また、より現実的な課題として、ブロックチェーンに計算能力が集まるほど計算の複雑さやマイニング時の消費電力も増大します。

Author logo
著者 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
レビュー担当者 Rukkayah Jigam

Writer & editor covering digital assets and product updates.