Proof of Work(PoW)とは
ホーム
記事
Proof of Work(PoW)とは

Proof of Work(PoW)とは

中級者
公開済 Dec 6, 2018更新済 Apr 18, 2024
10m

要点

  • Proof of Work(プルーフ・オブ・ワーク、PoW)は、デジタル決済システムでの二重支払いを防ぐために作成されたコンセンサスメカニズムです。

  • PoWは、ブロックチェーンへのトランザクションの新しいブロックを追加し、暗号資産の単位を新たに作成することになるマイニングプロセスにおいて、大切な役割を担っています。

  • Bitcoinなどの暗号資産の多くには、ブロックチェーンネットワークおよびデータを保護する方法にPoWが用いられています。

はじめに

まとめると、PoWは、デジタル決済システムでの二重支払いを防ぐために作成されたメカニズムと言えます。Bitcoinなどの暗号資産の多くには、ブロックチェーンネットワークおよびデータを保護する方法にPoWが用いられています。複数の当事者が互いを信頼せずとも合意を形成できるため、こうしたメカニズムは、よくコンセンサスアルゴリズムまたはコンセンサスメカニズムと呼ばれます。

最初に登場したコンセンサスアルゴリズムであるPoWは、今でもProof of Stake(PoS)と並んで最も重要なメカニズムの1つとなっています。PoWは2008年のBitcoinホワイトペーパーでサトシ・ナカモトにより紹介されたものの、この技術自体はそれよりはるか以前に考案されたものです。

Adam Back(アダム・バック)が考案したHashCashは、暗号資産が登場する前の時代におけるPoWアルゴリズムの初期の例です。メールの送信前に送信者にわずかな計算の実行を要求することで、受信者はスパム攻撃を抑えられます。正当な送信者にとってこの計算にはコストがほとんどかからない一方、メールを大量に発信する者にとってはコストが大幅に発生する仕組みとなっています。

二重支払いとは

二重支払いは、同一の資金が複数回用いられる場合に発生します。二重支払いという言葉は、電子マネーの文脈にほぼ限定して用いられます。物理的な現金を2回用いることはほとんどあり得ないため、これは容易に想像できるでしょう。

例えばコーヒーの代金を支払う際にレジ担当者に現金を渡すと、受け取り済みの現金はレジの中に収納されることになります。このため、通りのカフェでは、同一の請求書でコーヒー代金を重複して支払うことはありません。一方、デジタル通貨では、これが実際に発生する場合があります。

コピー&ペーストコマンドでコンピューターファイルを複製した経験は、誰しもあるはずです。同一ファイルを大勢の人々にメールで送信するのも、簡単にできます。デジタル通貨は単なるデータであるため、同じ単位をコピーして別の場所で用いるなどの手段による二重支払いを阻止する必要があります。二重支払いを阻止できないデジタル決済システムは、あっさりと崩壊します。

二重支払いについての詳細は、「二重支払いの説明」をご覧ください。

Proof of Workの意義

ブロックチェーン技術に関する記事をすでにお読みになっていれば、暗号資産ユーザーのトランザクションが常にネットワークに反映されていることはご存知でしょう。ただし、反映されたトランザクションは即時に有効とはみなされません。トランザクションが確認され、ブロックチェーンに追加された場合にのみこれが有効とみなされます。

例えば、Bitcoinブロックチェーンは、すべてのユーザーが閲覧できるパブリックトランザクションデータベース(台帳)として機能します。あなたと友人3人が、Bitcoinの取引を追跡するためのメモ帳を持っているとします。メンバーの誰かが価値の移転を希望する際は、その内容を記録します。

例えば、アリスはボブに5 BTCの支払い、ボブはキャロルに2 BTCの支払いなどと記録していきます。

トランザクションを行う度に、資金の出所であるトランザクションを参照する流れとなります。このため、ボブがキャロルに2 BTCを支払った場合、実際に記録される内容は以下の通りとなります。

ボブは、以前アリスから得られた2 BTCをキャロルに支払い

これが、BTCの単位を追跡する方法となります。ボブがキャロルに送付したものと同一の2 BTCを用いて別のトランザクションを実行しようとする場合も、皆この内容をすぐに把握できます。この2 BTCはすでに使用済みのため、このトランザクションのメモ帳への追加はグループにより拒否されます。

少人数のグループの場合では、こうした取引は成功します。グループ内では誰もがお互いのことを知っているため、友人のうちだれがメモ帳への記録の追加に同意するだろうからです。しかし、1万人のグループの場合、メモ帳記録のアイデアは他人による管理を信用する人はいないため、スケール化できません。

ここでPoWの出番となります。これにより、使用権のない金銭をユーザーが使うことを阻止できます。PoWアルゴリズムを用いると、ゲーム理論と暗号化技術の組み合わせにより、システムのルールに従い誰でもブロックチェーンを更新できるようになります。

PoWの仕組み

前述の例のメモ帳がブロックチェーンであると想像してみましょう。トランザクションを追加する際は1件ごとの追加ではなく、トランザクションをブロックごとにまとめて追加します。ネットワークに対しトランザクションが通知されると、ブロック生成担当ユーザーはこれを候補ブロックに加えます。トランザクションは、候補ブロックが確認済みブロックになった場合、すなわちトランザクションがブロックチェーンデータベースに追加された場合にのみ有効とみなされます。

トランザクションの検証および新規ブロックの追加プロセスは、マイニングと呼ばれます。費用がかさみ難易度も高いものの、これに対する見返りを得られます。ブロック報酬は、ユーザーおよびプロトコルにより新規に生成されるBitcoinから生じるトランザクション手数料から成ります。

PoWメカニズムでは、マイナー(ブロック生成担当のユーザー)は難問の答えを見つけるために候補ブロックデータをハッシュ化するために、電力および計算能力などのリソースを割く必要があります。

ブロックデータのハッシュ化とは、ハッシュ関数を用いたブロックハッシュの生成を指します。「指紋」に似た役割を果たすブロックハッシュは、入力したデータの識別情報であり、各ブロックに固有のものです。

つまり、マイナーは保留中のトランザクションの検証および収集する、これを候補ブロックに整理する、ブロックデータをハッシュ関数として出力する、有効なハッシュ値を生成するなどの役割を担っています。マイナーが候補ブロックに対する有効なハッシュ値の生成に成功した場合、ネットワークにその旨を通知し、該当ブロックをブロックチェーンに追加し、マイニング報酬を獲得するという流れになります。

マイナーがネットワークへの候補ブロックの通知およびハッシュ化を行うと、ネットワーク内の他の参加者はハッシュ化プロセスを繰り返し、ハッシュ値が真に有効であるかを確認します。

有効なハッシュ値を見つけるには無数の作業が必要である一方、生成されたハッシュ値が正しいか否かを確認する作業は比較的難易度が低くなります。具体的な作業内容としては、ハッシュ関数を用いて同一の(ブロックデータの)出力を送信し、この出力が同一であるかを確認することになります。

Proof of Workでは、ハッシュ値が一定の条件に一致するデータを提供する必要があります。しかし、これを達成する方法は開示されません。ハッシュ関数を介してデータを送信し、データが条件に一致するかどうかを確認することのみが唯一の方法となります。一致しない場合、データを少し変更し、異なるハッシュデータを得なければなりません。データ内の1文字でも変更した場合、全く異なる結果になるため、出力が何であるかを予測する方法はありません。

ブロックを生成する場合、結果的に推測ゲームを行っているような状態となります。通常、追加したいすべてのトランザクションなどの重要なデータを取得し、これをすべてハッシュ化します。データセットの方は変更されないため、可変データを追加する必要があります。そうしないと、ハッシュ値の出力が毎回同一のものになるためです。こうした有効なデータは、ノンス(またはナンス)と呼ばれています。試行の度に変更される数字であるノンスを用いると、毎回異なるハッシュ値が出力されます。

要約すると、マイニングとは、ブロックチェーンのデータを集め、特定のハッシュを見つけるまでナンス(1度限りの使い捨ての数字)と共にハッシュ化するプロセスです。プロトコルで定められた条件を満たすハッシュが見つかった場合、新しいブロックをネットワークにブロードキャストする権利を得ることができます。この時点で、ネットワークの他の参加者は、ブロックチェーンを更新して新しい最新のブロックデータを含めることになります。

マイナーにとって、主要な暗号資産におけるこの状況は非常に困難な課題となっています。ネットワークのハッシュレートが高くなるほど、有効なハッシュ値を発見する難易度が上がります。ブロックの発見速度を遅らせる目的で、こうした状況となっています。

言うまでもなく、大量のハッシュ値の推測はコンピューターにとって負担となります。また、計算サイクルおよび電力を浪費することにもなります。その反面、有効なハッシュ値を発見した場合、同プロトコルでは暗号資産による報酬が付与されます。

ここまで学んだことをまとめます。

  • マイニングの難易度は高く費用がかかるものである一方、ネットワークに安全性がもたらされます。

  • 有効なブロックの生成に成功したマイナーには、新規に発行された暗号資産およびトランザクション手数料による報酬が付与されます。

  • 有効なハッシュ値の生成には時間を要するものの、他のユーザーはハッシュ化プロセスを繰り返すことでその有効性を簡単に確認できます。

順調に手順が進めば、このようになります。しかし、悪意をもって不正を働こうとする場合、どのようなことが起こるでしょうか。大量の不正なトランザクション記録をブロックに入れ、有効なハッシュの生成を妨害するような不正行為が発生した場合、これを防ぐ方法はあるのでしょうか。

ここで公開鍵暗号の出番となります。この記事ではその内容には触れないため、詳細は公開鍵の暗号化の概要をご覧ください。まとめると、使用予定の資金の移動権を持つ人か否かを誰でも判断できるようにするための暗号化技術による高度な仕組みの存在があります。

トランザクションを作成する際、これに署名する必要があります。ネットワーク上の誰もが、署名者の署名を公開鍵と照合し、その一致について確認できます。同時に、資金を実際に使用できるか否か、入力値の合計が出力値を超えていないか(保有数量以上の使用を試みていないか)についても確認できます。

無効なトランザクションを含むブロックは、ネットワークによって自動的に拒否されます。不正行為の試みには多くのコストが発生し、報酬を受け取ることもできず、自身のリソースが無駄になるだけに終わります。

PoWの強みは、不正を働く者にはコストがかさむものの、正当な者には利益が付与されるところにあります。正当なマイナーは投資に応じた見返りを求めるため、収益を見越した行動を取る動機づけとなります。

Proof of Work (PoW) とProof of Stake (PoS) の比較

PoW以外にも多くのコンセンサスアルゴリズムが存在する中、最も有名なものはProof of Stake(PoS)となっています。同アルゴリズムの概念は2011年に登場し、Ethereumをはじめとする複数プロトコルにおいて実装されています。

Proof of Stake(PoS)システムでは、マイナーはバリデーターに置き換えられます。同システムでは、マイニングおよびハッシュ値の推測のための競争は存在しません。その代わり、ユーザーはランダムに選出され、対象となったユーザーはブロックの提案(または「forge(構築)」)を行う必要があります。ブロックが有効となると、同ユーザーはブロックのトランザクションから生じる手数料による報酬を獲得できます。

このユーザーは完全にランダムで選出されるわけではなく、同プロトコル上で複数の要因に基づき選出されます。選出対象となるには、ブロックチェーンにおいて予め決められた数量のネイティブトークンをロックしてステーキングを行う必要があります。ステーキングは保証金に似た役割を担っており、被告人から多額の保証金を預かり裁判からの逃亡を阻止するように、不正行為を阻止するためにバリデーターのステーキング数量をロックする仕組みとなっています。バリデーターが不正を働いた場合、ステーキング数量(またはその一部)が没収されます。

Proof of Stake(PoS)には、PoWを超える複数のメリットがあります。最も注目に値するのは、そのカーボンフットプリントの少なさとなります。Proof of Stake(PoS)では高出力のマイニングファームを必要としないため、その消費電力はPoWと比較してごくわずかとなります。

とはいえ、PoSの実績はPoWには比しません。PoWにおけるマイニングは資源消費が多いと認識されているものの、10年以上の実地テストに耐えてきた唯一のコンセンサスアルゴリズムとなっています。その立ち上げ以来、BitcoinのPoWは何兆ドルにも相当するトランザクションを安全に処理してきました。PoSのセキュリティがPoWに匹敵するかを判断するには、ステーキングに対して適切な実地テストを長期間かけて行う必要があると言えます。

まとめ

PoWは、二重支払いの問題を解決する最初のソリューションであり、その信頼性・安全性の高さは実証済みです。Bitcoinにより、同一の資金が二回使用されるのを防ぐために中央集権的な事業者を経由する必要がないことが示されました。分散型環境への参加者は、暗号化技術、ハッシュ関数、ゲーム理論の活用により、金融データベースの状態について見解を一致させることができます。

参考文献

免責事項:このコンテンツは、一般的な情報提供および学習素材としてのみの目的で「現状有姿」にて提供するもので、いかなる種類の表明または保証を行うものではありません。財務的、法的、またはその他の専門的なアドバイスとして解釈されるべきではなく、特定の商品またはサービスの購入の推奨を意図したものでもありません。適切な専門的顧問に独自に助言を求めるようにしてください。記事が第三者の寄稿者によって寄稿されている場合、提言されている見解は第三者の寄稿者のものであり、必ずしもバイナンスアカデミーの見解を反映したものではありません。詳細は、こちらの免責事項全文をお読みください。デジタル資産の価格は、大きく変動する可能性があります。投資した暗号資産の価値は上下する可能性があり、当初の投資額を取り戻すことができない可能性があります。投資判断についてはご自身が単独で責任を負い、バイナンスアカデミーはお客様が被る可能性のある損失に対して責任を負いません。この資料は、財務的、法的、またはその他の専門的なアドバイスとして解釈されるべきではありません。詳細は、利用規約リスクに関する警告をご参照ください。

ここから先はBinance Japanの管理下ではない外部サイトへ移動します。利用規約については、移動先サイトの方針に従うものとします。当社は、移動先サイトに掲載されている情報・サービス等について一切の責任を負いません。なお、移動先サイトは、情報提供を目的として作成されており、投資勧誘を目的とするものではありません。