第三回となる今回は、ビットコインを構成する技術の一つである、データの改竄を防いでくれると紹介した「プルーフ・オブ・ワーク」について調べてみました。

PoWとは何か

P2Pネットワークであるビットコインには、管理する人間がいません。どんな人でも参加することができます。そのため、嘘の情報を流して他の参加者を混乱させようとする悪意のある参加者が現れて、自分の都合の良い様にデータを改竄する可能性があります。それでは、参加者はどの情報が本当でどの情報が嘘なのかを問い合わせることが出来ず、ビットコインに対する信頼性は大きく損なわれてしまいます。

そこで利用されているのが、PoW(プルーフ・オブ・ワーク)です。PoWは、管理者がいない取引を行うP2Pネットワークで、悪意のある参加者によって取引情報が改竄されないように、何が正当な取引情報なのかを決定・管理するための仕組みを指します。これに従うことで、管理者がいなくても情報を信頼して受け取ることが出来るのです。

どういう仕組みなの?

ブロックチェーンは、データを一塊にしてブロックを生成し、ブロックの鎖を形成しています。このブロックには、取引データの他に「ブロックヘッダー」と呼ばれる以下6つの情報も一緒に含まれています。

  • Previous Hash(前のブロックヘッダーのハッシュ値。前のブロックを連鎖させる役割)
  • Timestamp(その日時にそのデータが確認されたことを証明する判子)
  • Version(ビットコインのバージョン)
  • Nonce(参加者が求めるハッシュ値。マイニングする箇所)
  • Difficulty Target(Nonceを求める難易度)
  • Markle Root(取引の要約値)

これら6つの値をハッシュ関数にかけてハッシュ値を出し、次のブロックの①Previous Hashを得ます。

ハッシュ値は、入力したハッシュ値が一文字でも違うと全く異なったハッシュ値が出力されるという特性を持ちます。そのため、データを改竄しようとした場合、連鎖的にその後すべてのハッシュ値も変わることになり、改竄しなくてはいけなくなります。また、仮にこれが出来たとしても、ネットワーク全体に打ち勝つくらいのたくさんの計算資源を費やさなければなりません。数人の参加者だけで、全世界の参加者が成立させたブロックチェーンを凌駕することは事実上不可能でしょう。

次のブロックに行こうとして6つの値をハッシュ関数にかけようとしたとき、まだ決まっていない値があることにお気づきでしょうか。④Nonceです。Nonceの値を求めることは、採掘に例えられて「マイニング」と呼ばれ、またその計算を行う参加者を採掘者として「マイナー」と呼称されています。

マイナーは、前のブロックのハッシュ値と約43億通りの数値があるNonceをハッシュ関数に入れ、正しい値が出るまで計算を行います。これは、ハッシュ値が「出力された値」から「入力した値」を推測することが出来ないために、ひたすら地道に入力を繰り返していくしかありません。マイニングをすることが、Proof of Workの「仕事の証明」という名前の所以でもあります。

最初にマイニングに成功したマイナーには、報酬のビットコインと送金手数料が送られます。こうした報酬の存在が、データの改竄や二重支払いなどの不正の抑止力となり、ビットコインへの信頼性の高さの一助になっています。

生成されたブロックはネットワーク全体に公開され、参加者によって検証作業が行われます。その取引が正しいと認められた場合は、参加者は自分のブロックチェーンの末尾に新しいブロックを加えます。

複数のブロックチェーンが生成された場合、一度ブロックチェーンは分岐しますが、長いブロックチェーンが正当な取引であるとされ、一つのブロックチェーンに統合されます。

こうしたさまざまな仕組みが重なり合って使用されることにより、管理者のいないP2Pネットワークであっても信頼して利用することが出来るようになっています。

マイニング戦争

ビットコインの運用が始まった当初は、一般的なコンピュータでもマイニングで報酬を得ることが出来ました。ビットコイン自体の知名度が低く、競争に勝つために必要な計算もあまり多くは無かったためです。

しかし、その後ビットコインの知名度が上がり、価格が上昇するとマイニング専門の業者が現れ、多額の投資をしてマイニング専用の設備を作り始めました。計算回数を増やす技術も発達し、ついにはマイニングに特化したコンピュータチップまで登場しました。

現在では、一般のコンピュータで報酬を得ることはかなり難しく、当たるのに150万年かかるとも言われています。

歴史

みなさんは、これまでにスパムメールを受信したことはないでしょうか。たぶん、ほとんどの方が一度は経験したことがあると思います。

PoWは、元々はスパムメールを防止するための技術でした。その歴史は、Dwork, CynthiaとNaor, Moniによって提唱された1993年にまで遡ります。

メールの送信に対して、計算という負荷を与えることで、送信可能な頻度を押さえ、スパムメールを送るコンピュータの送信効率を劇的に下げることを試みました。

マイニングと同じ様に、一定の範囲の出力を出すような入力を出すことを送信者に義務付け、仮にその入力にマッチしていた場合、メールの送信が可能になるという仕組みです。この仕組みは一部において普及しましたが、受信者は対応メールソフトを持つ必要があり、PoWによるハッシュの逆算を行なっていないメールはそもそもソフト内部に受信しない使用もあったために、世の中には広く浸透しませんでした。

まとめ

PoWがシステムに組み込まれているおかげで、参加者たちは安心して取引情報を信頼することが出来ます。ただし、メリットだけではなく、当然デメリットもあります。

一つが、マイニングをするために常に機械を動かすために、大量に電気を消費する点です。どんなに報酬を手に入れようと、電気代が高いとそのぶん利益も少なくなってしまいます。ちなみに、大手と呼ばれるマイニング業者は、電気代が安い中国に多く存在しています。

そして、もう一点が「51%攻撃」です。仕組みの部分で、『生成されたブロックはネットワーク全体に公開され、参加者によって検証作業が行われます』と書きました。つまり、参加者が多数決でブロックの正誤を決めるということです。もし、悪意を持った団体が50%以上をマイニングした場合、不正な取引を承認することができてしまいます。

現在では、それらの問題点を解決するために、「PoS(プルーフ・オブ・ステーク)」という仕組みも新しく開発されています。しかし、それ故にPoWからPoSへと完全に移行されるかと言うと、そういうわけでもありません。

それぞれにメリット・デメリットがあり、最新の情報をチェックして今後を予測していくことが重要になります。

 

記事提供:株式会社電縁様

東京都品川区西五反田1-21-8 ヒューリック五反田山手通ビル7階(受付6階)

事業内容:

システムコンサルティングサービス
システムインテグレーション
パッケージソフトウェアの提供

URL:https://www.denen.com/