プルーフ・オブ・ワーク(PoW)とは?
目次
はじめに
ダブルスペンドとは?
プルーフ・オブ・ワークはなぜ必要なのか?
PoWの仕組みとは?
プルーフ・オブ・ワーク vs プルーフ・オブ・ステーク
まとめ
プルーフ・オブ・ワーク(PoW)とは?
ホーム記事
プルーフ・オブ・ワーク(PoW)とは?

プルーフ・オブ・ワーク(PoW)とは?

中級者
Published Dec 6, 2018Updated Aug 24, 2021
8m


コンテンツ


はじめに

プルーフ・オブ・ワーク(一般的にはPoWと略されます)とは、ダブルスペンドを防ぐための仕組みのことです。大半の主要な仮想通貨は、PoWをコンセンサスアルゴリズムとして使用しています。これは、仮想通貨の台帳を安全に管理するための方法に過ぎません。
プルーフ・オブ・ワークは、最初に登場したコンセンサスアルゴリズムであり、現在の主流となっています。2008年のビットコインのホワイトペーパーでは、ナカモトサトシによって紹介されましたが、技術自体はそれよりもずっと以前に考案されていました。 

アダム・バックによって開発されたHashCashは、仮想通貨よりも以前に開発されたプルーフ・オブ・ワークアルゴリズムの初期事例です。電子メールの送信前に送信者へ少量の計算を要求することで、受信者はスパム攻撃を軽減することができました。この計算は、正当な送信者には実質的なコストは発生しませんが、大量に電子メールを送信する者に対してはコストを要求します。


ダブルスペンドとは?

ダブルスペンドは、同じ資金が複数回使用されている場合に発生します。この用語は、ほぼ独占的にデジタルマネーの文脈で使用されていますが、結局のところ、物理的な現金を2回使用することはできないということです。例えば、コーヒーの支払いをする際に、レジ係に現金を手渡すとロックされます。また、同じ請求書を使用して別のコーヒーの支払いをすることはできません。

デジタル・キャッシュ化におけるスキームには、ダブルスペンドの可能性があります。例えば、コンピュータ上のファイルをコピーして貼り付け、同じファイルを10、20、50人にメールを送信することができます。

デジタルマネーは単なるデータのため、同じものをコピーして別の場所で使用することを防止する必要があります。それは、通貨の崩壊を防ぐために非常に重要です。

ダブルスペンドの詳細については、「ダブルスペンドの説明」を参照ください。


プルーフ・オブ・ワークはなぜ必要なのか?

ブロックチェーン技術のガイドを読むことで、ユーザーはネットワークにトランザクションをブロードキャストすることがわかります。しかし、トランザクションはブロックチェーン上に追加されたときにのみ有効化されます。 
ブロックチェーンは、すべてのユーザーが確認することができる巨大なデータベースのため、過去に資金がどのように使用されたかを確認することができます。あなたと3人の友人がメモ帳を持っていると仮定します。その後、アリスはボブに5ユニット、ボブはキャロルに2ユニットの支払いをメモします。
さらに複雑な事例があり、ボブがキャロルに2ユニット支払っている場合、実際のデータはボブがアリスとの取引以前にキャロルとの取引で2ユニットを支払っていることになります

ボブがキャロルに送ったユニットを使用して別の取引を行う場合、ユニットを追跡する方法が存在するため、誰でもその事実を知ることができます。よって、グループは取引をメモ帳に追加することを許可しません。

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

ここでプルーフ・オブ・ワークの出番です。PoWは、ユーザーが使用する権利のないお金の使用を許可しません。ゲーム理論と暗号技術を組み合わせて使用することで、PoWアルゴリズムは誰でもシステムのルールに従ってブロックチェーンを更新することができます。


PoWの仕組みとは?

上記のメモ帳がブロックチェーンです。しかし、取引を一つずつ追加するのではなく、ブロックにまとめていきます。取引はネットワークに公表され、作成されたブロックは候補ブロックに含まれます。取引は、候補ブロックが確定ブロックになった場合、初めて有効化され、ブロックチェーンに追加されます。
しかし、ブロックの追加は容易ではありません。プルーフ・オブ・ワークでは、マイナー(ブロックを作成するユーザー)が権利を獲得するために自身のリソースの一部を使用する必要があります。そのリソースは、ブロックデータをハッシュ化し、パズルの回答を見つけるまで使用される演算能力です。
ブロックデータをハッシュ化するということは、ハッシュ関数を使用してブロックハッシュを生成することを意味します。ブロックハッシュは、入力データのアイデンティティである“指紋”のようなもので、各ブロック固有のものとなります。

入力データを得るためにブロックハッシュから逆算することは事実上不可能です。しかし、入力データを知っている場合、ハッシュが正しいことを確認することは簡単です。ハッシュ関数を使用して入力データを送信し、出力データと一致するかを確認します。

プルーフ・オブ・ワークでは、ハッシュ値が一定の条件に一致するデータを提供しなければなりません。しかし、あなたはその方法を知りません。唯一の選択肢は、ハッシュ関数を介してデータを送信し、データが条件に一致するかどうかを確認することです。一致しない場合、異なるハッシュデータを得るためにデータを少し変更しなければなりません。データ内の1文字でも変更した場合、全く異なる結果になるため、出力が何であるかを予測する方法はありません。

その結果、ブロックを作成する場合、予測ゲームをしていることになります。通常、追加を希望する取引情報をすべて取得後、その他の重要なデータを追加し、すべてハッシュ化します。しかし、あなたのデータセットは変更されないため、変数となる情報を追加する必要があります。そうでなければ、常に出力と同じハッシュを取得することになります。この変数データは、我々がナンスと呼んでいるものです。これは、あなたが毎回異なるハッシュを取得するために常に変更することができます。私たちは、これを「マイニング」と呼んでいます。

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

現在の主要な仮想通貨の場合、条件を満たすことは信じられないほど困難です。ネットワーク上のハッシュレートが高ければ高いほど、有効なハッシュを見つけることが難しくなります。これは、ブロックが早く見つけられないようにするためです。
ご想像の通り、大量のハッシュを推測する場合、コンピュータコストが発生します。あなたは、演算サイクルと電気代を無駄にしてしまいます。しかし、あなたが有効なハッシュを見つけた場合、プロトコルは仮想通貨によって報酬を与えます

ここまで学んだことを復習しましょう。

  • マイニングにはコストがかかります。
  • 有効なブロックを生成することで報酬が得られます。
  • 入力データを知ることで、ユーザーはハッシュを簡単にチェックすることができます。

ここまでは順調です。 しかし、あなたが大量の不正な取引をブロックに入れ、有効なハッシュの生成を妨害するような不正行為が発生した場合、どうのような対応をすべきでしょうか。

そこで公開鍵暗号の出番です。この記事では詳しく説明しませんが、公開鍵暗号について確認する場合、「公開鍵暗号とは何か」をチェックしてください。要するに、資金が移動される場合、ユーザーがその権利の保有者であるかを確認できるようにするために、いくつかの巧妙な暗号トリックを使用しています。
取引が作成される場合、あなたは署名をします。ネットワーク上のすべてのユーザーが署名を公開鍵と比較することができ、署名と公開鍵が一致するかどうかを確認することができます。また、あなたが実際に資金を使用する権利の有無や、入力データの合計が出力データの合計よりも高いかどうか(つまり、あなたが持っている以上のものを使用していないかどうか)を確認します。

無効な取引を含むブロックは、ネットワークによって自動的に拒否されます。あなたが不正行為を行う場合、多くのコストが発生し、報酬を受け取ることもできず、自身のリソースを無駄にしてしまいます。

そこにプルーフ・オブ・ワークの美しさがあります:不正行為はコストが高くつきますが、誠実な行動は有益となります。どんな合理的なマイナーもROIを求めているため、収益を求めた誠実な行動が期待されます。



仮想通貨取引をはじめる場合、バイナンスでビットコインを購入しましょう。



プルーフ・オブ・ワーク vs プルーフ・オブ・ステーク

コンセンサスアルゴリズムは数多く存在しますが、最も期待されているものの一つがプルーフ・オブ・ステーク(PoS)です。このコンセプトは2011年にさかのぼり、いくつかの小さなプロトコルに実装されています。しかし、大きなブロックチェーンには、まだ採用されていません。

プルーフ・オブ・ステークシステムでは、マイナーはバリデータに置き換えられます。ハッシュを予測するために関与するマイニングと競争はありません。代わりに、ユーザーはランダムに選択され、彼らはブロックを提案(または“鍛造”)する必要があります。ブロックが有効な場合、彼らはブロック取引による手数料で構成された報酬を受け取ることができます。
プロトコルは、いくつかの要因に基づいてユーザーを選択しますが、任意のユーザーを選択することはできません。参加資格を得るためには、参加者はブロックチェーンのネイティブ通貨をあらかじめ設定された金額であるステークとして確保しなければなりません。ステークは保釈金のようなもので、被告人が裁判をサボらないようにするために大金を出すのと同じように、バリデータは不正行為を防ぐためにステークをロックします。被告人が不正行為をした場合、彼らのステーク(またはその一部)が没収されます。
プルーフ・オブ・ステークは、プルーフ・オブ・ワークと比較していくつかの利点があります。最も注目すべき点は、PoSでは高出力のマイニングファームを必要としないため、二酸化炭素排出量が少なく、消費される電力はPoWで消費される電力のほんの一部に過ぎません。 

とはいえ、PoWのような実績はどこにもありません。無駄が多いと思われるかもしれませんが、マイニングは大規模で証明された唯一のコンセンサスアルゴリズムです。わずか10年あまりで、何兆ドルもの取引を確保してきました。PoSがそのセキュリティに匹敵するかどうかを証明するためには、世界で適切にテストされる必要があります。


まとめ

プルーフ・オブ・ワークは、ダブルスペンドの問題を解決するためのオリジナルのソリューションであり、信頼性と安全性が高いことが証明されています。ビットコインは、同じ資金が二重に使用されるのを防ぐために中央集権的な主体が必要ないことを証明しました。暗号技術、ハッシュ関数、ゲーム理論を巧みに利用することで、分散型環境の参加者は、金融データベースの状態について同意することができます。