PoW、デジタル署名、51%攻撃……キーワードで学ぶブロックチェーン技術──『ブロックチェーン白書2019』より(2)

(本記事は『ブロックチェーン白書2019』=N.Avenue株式会社発行=から、許諾を得た上で抜粋・編集、加筆したものです)

ブロックチェーンを構成する主な技術

ブロックチェーンを構成する主な技術を以下に整理する。

デジタル署名

デジタル署名とは、電子的な記録に対して行われる署名であり、電子的な記録の正当性を保証するために用いられる暗号化された署名情報のことを指す。デジタル署名を利用することで、文書の作成者が本人であることや途中で文書が改ざんされていないことを証明する事ができる。

ブロックチェーンでの取引には、デジタル署名が利用されており、デジタル署名とそれを検証するための公開鍵をセットにすることで、取引データはブロックチェーンに保存される。このデジタル署名は、公開鍵に対応する秘密鍵を保持している本人しか作成することができないため、データが改ざんされていないかどうかについては、デジタル署名の正当性を検証することで確認することができる。

P2Pネットワーク

ブロックチェーンは、P2Pネットワークで稼働するシステムである。従来のクライアント・サーバー方式とは異なり、P2Pネットワークの場合、特定のサーバーやクライアントを持たず、「ノード」と呼ばれる各コンピューター端末が対等に直接通信することで、ユーザー同士の情報共有や決済のやりとりを可能にしている。サーバー側で情報を集約して管理する場合、中央管理者が「単一障害点」となる可能性があるが、ブロックチェーンの場合、ユーザー全員が同じ取引履歴を保持しているため、複数のノードに障害が発生した場合でも、システムを維持することができる。

コンセンサスアルゴリズム

中央集権的な管理者を持たないブロックチェーンでは、台帳上の情報をネットワーク上の参加者全員で共有するために、全体の合意形成を行う必要がある。そのような合意を行う方法が「コンセンサスアルゴリズム」である。コンセンサスアルゴリズムにはいくつかの種類が存在するが、以下に代表的なものを整理する。

※より厳密に言うと、PoWやPoSなどは大量のデータをノードに送り、ブロックを承認できないようにするシビル攻撃を防ぎ、ブロック生成をするためのメカニズムである。結果として生成されたブロックが連なったチェーンの中から、正しいチェーンだとマイナーが合意するプロセス全体を称して、コンセンサスアルゴリズムと呼ぶ。多くの文献でもコンセンサスアルゴリズムとして使われているため、本書においても、便宜上、コンセンサスアルゴリズムと呼ぶことにする。

PoW(Proof of Work:プルーフ・オブ・ワーク)

PoWとは、ビットコインのネットワークで採用されているP2Pネットワークにおけるコンセンサスアルゴリズムであり、ビットコインのネットワークにおいて、偽造や二重支払を防止するための重要な仕組みの一つである。PoWの概念は、その名の通り、「仕事量による証明」で あり、「取引データ+前ブロックのハッシュ値 + ナンス値」から新規のブロックのハッシュ値を求め 、 そのハッシュ値が 「先頭に一定数以上のゼロが連続して並んでいる」状態にするようなナンス値を求めることを意味する。

ハッシュ関数は、一方向の関数であり、入力値から出力値を求めることはできるが、出力値から入力値を計算することはできないため、PoWを行うためには、ナンス値にさまざまな数値を入力し、ブロック全体のハッシュ値を総当たり方式で求める必要がある。この作業には膨大なコンピュータリソースが必 要であり、悪意の攻撃者による改ざんを極めて困難にしている。このように、PoWは、ビットコインのネットワークを維持するために重要な役割を担っている。

PoS(Proof of Stake:プルーフ・オブ・ステーク)

PoSとは、発行済の全コイン総量に対する保有コインの割合によって、発言力が変動するように設計されたアルゴリズムのことを指す。PoSの中にもさまざまな仕様があるが、基本的にはコインの保有量が多いほどブロック生成者が選ばれやすい=報酬を得やすい仕組みになっている。

これは「大量のコインを持っている者は、自身が保有するコインの価値を守るべく、システムの信頼性を損ねるような行動を取ることはしない」という発想に基づいている。ビットコインと同様、マイニング自体は必要だが、PoSの場合、PoWのように膨大な電気代コストやマイニング機材の取得コストが不要なことがメリットとして挙げられる。PoWの場合、高いハッシュパワーを持った悪意の第三者が現れた場合、ネットワーク自体の乗っ取りを許してしまうという51%攻撃の問題が指摘されているが、Proof of Stakeは、この問題点を解決する手段の一つとして考案されたという経緯がある。

※51%攻撃

悪意のあるグループもしくは個人によって、ネットワーク全体のハッシュレートの51%(50%以上)を支配し、不正な取引を行うこと。通常の場合、50%以上のハッシュレートを確保するのは非常に高コストであり、現実的に51%攻撃は起こりえないとされているが、2013年12月にGhash.ioというビットコインのマイニングプールのハッシュレートが一時的に50%を超えそうになる事態が発生し、ビットコインの価格下落を招いたことがある。

PoI(Proof of Importance:プルーフ・オブ・インポータンス)

PoIは、PoSの概念を拡張したコンセンサスアルゴリズムである。PoIでは、ネットワークにおける重要度をブロックの生成に必要な要素としている。PoSでは、計算量を要さないため、電気代などの物理的なネットワークの運用コストの削減を図ることができたが、コインの保有者がコインを溜め込むといった問題点があった。そこで、PoIでは、コインの保有量に加えて、取引量を評価基準として加えることで、PoSの問題点の解決を図っている。ちなみに、PoIでは、単純に入出金を繰り返して取引量を増やし、重要度を稼ぐことができないように、入金後に一定時間経過しないと重要度の計算に用いられないといった制限がつけられている。

PBFT(Practical Byzantine Fault Tolerance:実用的ビザンチン・フォールト・トレランス)

PBFTは、「実用的ビザンチン・フォールト・トレランス」という合意形成の方法であり、「コアノード」と「アプリノード」の権限を区別していることに特徴がある。コアノードは、取引を検証する権限を持つノードであり、アプリノードは、取引を行うことはできるものの、検証を実施しないノードである。

PBFTは、コアノードに取引承認の権限を集中させ、コアノードによる合議によって、取引の承認を行う仕組みである。一定の割合のコアノードが合意した段階で、取引の正当性が認められたものとして、取引が承認されることとなるため、迅速な価値の移転が可能となる点がメリットとして挙げられる。

また、ブロックチェーンの分岐が発生せず、取引が承認された時点で、いわゆる「ファイナリティ」が確保できることもメリットの一つである。金融分野におけるブロックチェーンの適用を検討する場合、大量の取引をリアルタイムで処理することやファイナリティを確保することは重要な要素であり、金融分野におけるブロックチェーン技術を活用した実証実験では、コンセンサスアルゴリズムとして、PBFTが好んで用いられることが多い。

【関連記事】
ブロックチェーンって何?定義・データ構造から知る基本──『ブロックチェーン白書2019』より(1)
ブロックチェーンの体系的な知識を短期間でつかむ──『ブロックチェーン白書2019』のポイント

文・編集:CoinDesk Japan編集部
写真:astel design / Shutterstock.com, N.Avenue