プルーフオブワーク(PoW)とは? マイニングの仕組みからわかりやすく解説
「プルーフオブワーク(PoW)って何なんだろう。。。」
そう考えているのではないですか?
確かに、ビットコインについて調べているとPoWという単語をよく目にしますよね。
そこで今回は、プルーフオブワーク(PoW)とは何なのか 、その仕組みと問題点、さらにPoW以外の承認システムも紹介していきます!
これを読めば、プルーフオブワーク(PoW)が何なのかを理解して、あなたの抱えているモヤモヤがすっきりするはずです。
プルーフオブワーク(PoW)とは
プルーフオブワーク(Proof of Work)とは、膨大な計算量を必要とする作業を成功させた人が取引の承認者となり、新たなブロックをブロックチェーンに繋ぐ権利を得られる仕組みのことです。
その計算作業をマイニングと言い、マイニングの成功者には報酬が与えられます。
プルーフオブワークを理解するためにはまずブロックチェーンについて知っておく必要があります。
「ブロックチェーンって何だっけ?」という方はこちらの記事を参考にしてみてください。
プルーフオブワークとマイニングの仕組み
ではそもそもマイニングとは何のために行われるのでしょうか。
答えは、ブロックチェーン上で実行された取引が本当に正しいものかをチェックするため、です。
まず、基本的に暗号資産(仮想通貨)には管理者がいません。
ビットコインのネットワークを運営している企業や人、なんてものは存在しないわけです。
そのため、実行された取引が本当正しいものなのかどうかをネットワークの参加者全員でチェックする必要があります。
そこで行われるのが熾烈な計算バトル「マイニング」です。
マイニングでは膨大な量の計算問題を解くことで取引の正当性をチェックできる仕組みになっています。
計算問題と言っても紙とペンだけで解けるようなものではありません。
数百台の超高性能コンピューターをフル稼働させてようやく解けるような超難問です。
マイニングをしている人たち(マイナー)は、マイニング成功者に与えられる報酬が目当てで四六時中マイニングを行っています。
ちなみに、マイニング成功者として認められるのは計算問題を一番最初に解いた人だけです。
プルーフオブワークをさらに深く知るためにはこの計算問題に用いられる「ハッシュ関数」について理解する必要があります。
基本を理解するだけなら数弱な方でも大丈夫なので焦らずに見ていきましょう。
ハッシュ関数が重要!
このハッシュ関数というのは、値を代入して計算するのは簡単なのに、この値が出るにはどういう値を代入すればいいかが分からないという特殊な関数です。
この特徴を活かしてプルーフオブワークという仕組みは成り立っています。
マイニングという作業で実際にやっていることは、ハッシュ関数に代入するとその頭に決められた個数の0が並ぶ数字が出てくるような値(ナンス)を探すという作業です。
つまり、マイニングの成功とはナンス探しの成功を指します。
例)
0000000000000000000mjo02895hvbab
eiwoqi6bf83e09djfhriw82mozpqwks09
さて、ハッシュ関数は代入して計算をするのは簡単だけど、その逆を求めるのは困難、という性質を持っています。
すなわち、「値を代入したときに頭に0が何個並ぶか」はすぐ分かるのに、「頭に0がこの個数並ぶ数が出てくるには何の値を代入すればいいか」は分からないわけです。
よって、マイニングをする人々(マイナー)は高性能なコンピューターを使って当てずっぽうに値をたくさん代入していって、数字探しの競争をしています。
これは計算量に比例して成功しやすくなるのでプルーフオブ”ワーク(仕事)”というわけです。
プルーフオブワークは改ざん不可能!
もし過去の取引記録を改ざんするような人が現れたらどうなるんでしょうか?
マイニングで見つけられたナンスは各ブロックに記録されます。
実はブロックチェーンでは昔の取引が改ざんされたとすると、その取引が含まれるブロックのナンスが条件を満たさなくなってしまう、という仕組みになっています。
しかも、ナンスが条件を満たさなくなるという現象がそれ以降に繋がっているブロックすべてで連鎖して起こります。
つまり、自分が持っているブロックチェーンは正しいよ!と証明するためには改ざんしたブロック以降のすべてのナンスを計算し直さなければならないのです。
これは凄まじい計算力が必要な作業ですし、計算している間にも改ざんされていないブロックチェーンはどんどん長くなっていくので追いつくことは不可能です。
したがって、膨大な計算力を必要とする作業を行うことによって改ざんが不可能になっているわけです
これが”プルーフ(証明)”オブワークと言われる理由です。
ディフィカルティ(採掘難易度)が調節される
みんなが競争してマイニングをしている時はいいけど、それをやる人が減っちゃったらどうするの?取引の承認がなかなかされなくなっちゃうの?と疑問に思った方もいると思います。
実は、マイニングのデフィカルティ(採掘難易度)は調節することができ、定期的にディフィカルティ調整がされることになっています。
では、どうやって調整をするのでしょうか。
マイニングの作業とは0がたくさん並ぶように適切な値を探してくる作業でした。
この並ばなければいけない0の数を調節することでディフィカルティを調整することができます。
数字の頭に0が10個並ぶのと0が5個並ぶのだったら後者の方が圧倒的に簡単ですよね?
たとえばビットコインでは2016個のブロックが作られる毎にディフィカルティ調整がなされます。このようにして、1ブロックの生成にかかる時間が安定するようになっています。
⇨こちらのサイトでビットコインの現在のデフィカルティを確認できます。
プルーフオブワークとマイニングの仕組みについてもう少し詳しく知りたい方はぜひ読んでみてください!
プルーフオブワークの問題点
プルーフオブワークは画期的な仕組みと言えますが、欠点ももちろんあります。
どのようなデメリットがあるのでしょうか。
大量の電力が必要
プルーフオブワークは膨大な計算をするマイニングの作業があってこそ成り立つものです。
この計算というのは高性能なコンピューターを世界中でたくさん使って行うので、大量の電力が必要となります。
通貨の維持のために大切なエネルギーが大量投入されているわけです。
これは環境にとってあまり良くないと言えます。
そして、マイニングで利益を出す人はマイニングの成功報酬からマイニングに使った電気料金を差し引いたものが手元に残るわけですから、電気料金の安い国の方がマイニングがしやすく、マイナーが電気料金の安い国に偏ってしまうというデメリットもあります。
51%攻撃への懸念
プルーフオブワークの改ざん不可能性は、「どれか一つの集団が持っている計算力ではその他大勢の持っている計算力を越えられない」ということを拠り所にしています。
では、世の中の半数を越える計算力を持つ集団が現れたらどうでしょうか?
世の中の半数を越える計算力を持つ悪意ある集団によってブロックチェーンが改ざんされることを51%攻撃と言います。
プルーフオブワークはこの51%攻撃が起こる状態では改ざんが可能となり、全く機能しなくなってしまいます。
51%攻撃について詳しく知りたい場合はこちらの記事を読んでください!
プルーフオブワークとプルーフオブステークの違い
プルーフオブステーク(PoS)とは
プルーフオブステークとは、暗号資産(仮想通貨)を保有している量が多いほど、また、その保有時間が長いほど、新しいブロックの生成権を獲得しやすくなるような仕組みのことです。
イーサリアムはプルーフオブワーク(PoW)からプルーフオブステーク(PoS)への移行途中です。
さて、プルーフオブワークと仕組みが違うことはすぐに分かると思いますが、実用面ではどのような違いが出てくるのでしょうか。
プルーフオブワークとの違いは?
プルーフオブステーク(PoS)では、プルーフオブワーク(PoW)の欠点を解消することができています。
まず、保有している暗号資産(仮想通貨)の量によってブロックの生成権を誰が持つか決めるので、高性能なコンピューターをたくさん動かしたりする必要がありません。
つまり、大量の電力を必要としません。
そして、51%攻撃を受ける可能性が極めて低いです。
なぜなら、取引の改ざんを行うには大量の暗号資産(仮想通貨)を保有する必要があるのでとてつもない費用がかかり、しかも自分の改ざん行為によってその暗号資産(仮想通貨)の信用が下がり価格が暴落すると、改ざんのために集めたコインが無価値になってしまって損になるからです。
逆にプルーフオブステークのデメリットとしては、多く暗号資産(仮想通貨)を溜め込む人が多くなり通貨の流動性が低くなってしまうということです。
承認システムは他にもある!
- DPoS=承認者を投票で決める
- PoI=どれだけ取引しているかを重視
- PoC=あらかじめ承認者を決めておく
- Hybrid PoW/PoS=2つのシステムの欠点を補う
- Tangle=自分が取引する分だけ、他の取引も承認する仕組み
LISK(リスク)のDPoS
LISKではDPoS(Delegated Proof of Stake)というプルーフオブステークを少し変えた承認システムを採用しています。
これは、次のブロックは誰が生成するかをLISK保有者の投票によって決めるようなシステムです。
投票によって選ばれた人たち(=デリゲード)が取引の承認を行うと、報酬としてLISKが新規発行されます。
デリゲートはその報酬を自分に投票してくれた人たちに分配する仕組みになっていて、これを利用して利益を出すステーキングサービスを提供する取引所も現れ始めています。
NEM(ネム)のPoI
NEMではPoI(Proof of Importance)という承認システムが採用されています。
PoIでは各ユーザーの重要度というものが計算されて、その重要度に応じて新しいブロックを生成できる確率が高くなる仕組みになっています。
PoIにおける重要度とは、保有している暗号資産(仮想通貨)の量だけでなく、どれだけ取引をしているかも考慮されるので、プルーフオブステークの流動性が低くなるというデメリットが改善されていると言えます。
Ripple(リップル)のPoC
RippleではPoC(Proof of Concensus)という承認システムが採用されています。
PoCでは取引を承認する人(Validator)が予め決められていて、そのValidatorのうちの8割が承認すれば取引が承認される仕組みになっています。
Validatorには信頼できる有名な企業(マイクロソフトとかSBI)が選ばれているので、やや中央集権的ではあるものの、取引が改ざんされる可能性は低いです。
PoCの利点としては、マイニングの作業が不必要になるため取引の承認が数秒で終わるというところです。
この取引の速さから、Rippleは銀行間の送金に用いられています。
Decred(デクレッド)のHybrid PoW/PoS
Decredという暗号資産(仮想通貨)ではプルーフオブワークとプルーフオブステークを組み合わせたHybrid PoW/PoSという承認システムを採用しています。
Hybrid PoW/PoSでは、まずプルーフオブワークと同じようにマイニングによって新しいブロックが生成され、そのブロックが有効であるかを投票によって決めます。
持っている暗号資産(仮想通貨)の量が多ければ多いほど投票できる票数が多い、すなわち、たくさん暗号資産(仮想通貨)を持っているとブロックを承認できる可能性が高いので承認作業はプルーフオブステークとなっています。
2つを組み合わせることでお互いの欠点を補うことができます。
まず、計算力があっても信頼されていない人が生成したブロックは投票によって無効となるので51%攻撃を受けにくいです。
また、プルーフオブワークにおいては最も長いチェーンにブロックを繋げないとマイニング報酬がもらえないので、プルーフオブステークにおけるNothing at Stake問題(分岐が起こったときに最も長いチェーンが採用されにくい問題)が解決されています。
IOTA(アイオータ)のTangle(タングル)
IOTAという暗号資産(仮想通貨)では、プルーフオブワークを工夫して作られたブロックチェーンを必要としないTangleという承認システムを用いています。
Tangleでは取引を行った人が自分よりも前に行われた取引を承認する仕組みになっています。
自分が取引をする時にはマイニングをしないといけないというイメージをするといいと思います。
つまり、自分が取引をした分だけ他の人の取引も承認することになるのでTangleでは取引手数料が無料になるのです。
Tangleのようなブロックチェーンに代わる仕組みをDAG(Directed Acyclic Graph)といい、DAGを採用している通貨としては他にもByteball(バイトボール)があります。
プルーフオブワーク(PoW) まとめ
プルーフオブワークはたくさんの計算というワーク(仕事)が必要な取引の承認システムで、いくつかのデメリットがあり、プルーフオブステークではそれらの問題点が改善されていることが分かったと思います。
最後に紹介したDPoSやPoIなどを含め、既存の承認システムの改善案は日々考えられています。
どの承認システムが一番良い、というわけではなく、それぞれの通貨の規模や特性に合った承認システムを採用していくのが重要でしょう。
暗号資産(仮想通貨)を購入する際にはどんな承認システムを採用しているのかチェックしておきましょう!