プルーフ・オブ・ワーク(PoW)とは?なぜビットコインで採用されるのか

プルーフ・オブ・ワーク(PoW)とは?なぜビットコインで採用されるのか

プルーフ・オブ・ワーク(PoW)とはどのようなものなのか?

ビットコインなどの仮想通貨では、プルーフ・オブ・ワーク(PoW)という仕組みが用いられているものがあります。

仮想通貨のシステムでは、法定通貨のように銀行や国家のような管理者が存在しません。

そのため、取引が不正かどうかの判断はP2Pネットワークに接続しているノードによって行われることになりますが、P2Pの特性上、参加者の意見が割れた際に合意を得ることが難しいのです。

これを解決するために用いられるのがコンセンサス・アルゴリズム(合意方法)で、そのコンセンサス・アルゴリズムの1種として用いられているのがPoWになります。

それでは、PoWではどのようにして取引のコンセンサスを得ているのでしょうか?

P2Pネットワークのコンセンサス・アルゴリズムでは、基本的に参加者による多数決によって取引が正しいかどうかを判断しています。

古いタイプのシステムでは、IPアドレス1つにつき一票という形で多数決が行われていましたが、この方式では偽造IPアドレスによる票数の操作が行えるため、信頼性に欠けるという問題がありました。

PoWの場合、IPアドレスによる多数決ではなく、計算能力が高い参加者に対してそれに見合った数の投票券が与えられるという仕組みとなっています。

この投票券は、ノード全体の計算能力の割合によって配分されており、例えばある参加者がネットワーク全体の10%にあたる計算能力を保持していた場合、投票券も全体の10%分が与えられるのです。

プルーフ・オブ・ワーク(PoW)で不正認証を防止することはできる?

プルーフ・オブ・ワーク(PoW)方式を用いてコンセンサスを得る場合、気になるのは一部のユーザーが協力して全体の過半数を超える計算能力を得た際にどうなるのかということです。

PoWでは、悪意あるユーザーがネットワーク内の計算能力の過半数を得た場合、間違った取引を正しい取引として処理させることができます。

しかし、計算能力を高めることで得られる投票券はあくまでネットワーク全体での計算能力の割合によって決められるため、ネットワークに参加するノードが増加すればするほど過半数を得ることが難しくなるのです。

つまり、ビットコインのように多数のノードを持つネットワークの場合、過半数の計算能力を確保して不正な取引を通すというのは理論的に難しいと言えます。

また、もしビットコインのネットワークでこの攻撃が実現した場合、ビットコインの信頼性が失われてしまうため、価値の暴落が起こるでしょう。

そうなると、今までマイニングや取引などで手に入れたコインが全て無駄になってしまうため、不正な取引を行うメリットがありません。

ビットコインなどの仮想通貨では、PoWによるシステム的なセキュリティと、セキュリティが破られた際の資産的なデメリットを利用して取引の正当性を守っているのです。

ビットコインのシステムではどのようにプルーフ・オブ・ワーク(PoW)が用いられている?

ビットコインでは、プルーフ・オブ・ワーク(PoW)を用いて取引の正当性を保っていますが、実際のシステムではどのような処理が行われているのでしょうか?

ビットコインでは、取引依頼は一定時間ごとにまとめられ、ブロックという取引情報の塊が生成されます。

生成されたブロックにはノンスという変数が設定されており、このノンスと一致する計算結果が得られる数列を最も早く発見した参加者に対して報酬が支払われるのです。

しかし、設定されるノンスはランダムに生成されているため、一致する数列を探すためにはプログラムを用いて総当たりで数列を生成して答え合わせを行うしかありません。

数列の生成についてはコンピュータの計算能力が高ければ高いほど単位時間あたりの生成量が向上するため、高性能なコンピュータを持った参加者が基本的に有利となる仕組みです。

また、ノンスが見つかったブロックについては、同時に計算を行っていた他のユーザーによって本当に数値やブロックの内容に間違いがないか検証が行われます。

検証作業では、ネットワーク全体の計算能力の過半数が問題無いと認めなければブロックチェーンにブロックが追加されず、報酬も支払われません。

これらの一連の作業に計算能力を提供することによって報酬を得る仕組みをマイニング、報酬を得るために参加するユーザーをマイナーと呼びます。

ビットコインのシステムでは、このようにマイニングと報酬を上手く活用することで、PoWによる認証の安全性を高めているのです。

過去の取引の改ざん防止にもプルーフ・オブ・ワーク(PoW)が用いられている

ビットコインのブロックチェーンには、接続されているブロックそれぞれに発見されたノンスが記述されています。

この記述されたノンスは新しいブロックを生成する際に取引内容と組み合わせて新しいノンスを生成する際に用いられる仕組みです。

つまり、もしブロックチェーンの一部分だけ取引内容を改ざんした場合、他のブロックまでノンスが一致しないという事態が起こります。

そのため、過去の取引内容を改ざんするためには、目的とするブロックだけを改ざんするのではなく、改ざん時点以降に接続されたブロックについても全て数値を計算し直さなければなりません。

ビットコインのシステムでは、約10分に一度新しいブロックが追加され続けているため、改ざんしたブロックを維持するためには追加されるブロックより早く計算を終わらせる必要があります。

ビットコインのP2Pネットワークには、世界中のマイナーによって膨大な計算能力が集結しています。

個人や一部の参加者によってブロックチェーンの一部を改ざんするためには、大多数のユーザーを超える計算能力がなければ実現は不可能と言えるでしょう。

プルーフ・オブ・ワーク(PoW)は取引処理の正当性を確保するための仕組みですが、ビットコインでは過去の取引内容を守るためにも利用されているのです。