ブロックチェーン基礎知識・PoWとは?|DApps(ブロックチェーンを活用したアプリケーション)のことなら

TOP  コラム  ブロックチェーン基礎知識・PoWとは?

ブロックチェーン基礎知識・PoWとは?

2018.12.16

コラム

ブロックチェーン基礎知識・PoWとは?

ブロックチェーンネットワークに不可欠なコンセンサスアルゴリズム
近年、ブロックチェーン技術には高い関心が寄せられ、今後は従来の社会構造を大きく変革するものに成長、重要なインフラベースとなることが予想されています。このブロックチェーンは、これまでの一般的なサービスとは異なって、提供事業者など特別な権限を持った管理者がどこにも存在しないという大きな特徴があり、非中央集権的なシステムを形成します。

それゆえのメリットは数多く見込まれるのですが、一方で不特定多数のさまざまな人々が関与するものでありながら、管理者を置くことなく運用していくのですから、高度な仕組み上の工夫が必要になることはいうまでもありません。

とくに発生・記録する取引について、その確かさはネットワークに参加するノード全体で担保し合っていきますが、その全ノードの合意をどう形成するか、不正がないことをどう確認し合うかは、システムの根幹に関わる非常に重要な問題です。

この合意形成の方式をコンセンサスアルゴリズムといい、それぞれブロックチェーンにより、採用している方式が決まっています。そこで今回は、その代表的なもののひとつであるPoWについて解説します。

ビットコインに代表されるPoWとは?
「PoW」というワードを目にされたことのある方は、おそらくビットコインなどの仮想通貨に興味関心があって、調べた経験のある方でしょう。これらの技術的な仕組みを理解する上では、欠かすことのできない頻出ワードです。

PoWは略語であり、元の言葉に戻すと「Proof of Work」になります。直訳すれば“仕事量の証明”ですね。その語が示すとおり、仕事量(計算量)によって発言権を有するノードを決定する、計算量ベースで合意形成を図る手法となっています。

PoWを採用するビットコインを例に、より具体的な機能の仕方をみていきましょう。仮想通貨のビットコインを扱うネットワークでは、さまざまな取引が行われ、価値のやりとりが絶え間なく実行されています。AからBへの送金といった取引内容は、ブロックチェーン上に記録され、ネットワーク上の全ノードで同期・保持するものとなり、書き替えられることのない確かなデータとして誰でも参照できるかたちで永続的に維持されます。

発生した取引データは、一定時間のものがまとめられてブロックに格納されます。このブロックの生成にかかる作業をマイニングといい、生成とチェーンへの追加というこの活動を有志の誰が行うか、それを決定するのにPoWが用いられるのです。

ブロックには、取引データの他に、直前ブロックのハッシュ値やナンスと呼ばれる特別な値が含まれています。そうすることによって前後の揺るがない関係性が作られ、不正改ざんに強いチェーンの連結が生み出されています。

マイニングは、およそこのナンスという値を発見するための計算作業にあたり、ハッシュ値が特定の条件を満たすような数を探していくことになります。実際の計算は、少しずつ値を変化させながら総当たり的に何兆個も試していく必要があり、ハッシュ値がDifficulty Targetとされる値よりも小さくなるように調整します。

大変な計算となりますが、それを経て最初にナンスを発見したノードが発言権を獲得、ブロックを生成できるようになります。また、仕事に対するインセンティブとして、ビットコインを得られる仕組みともなっています。このギブアンドテイクで、管理者を置かずとも、有志による運用、計算リソースの提供が続くようになっているのです。

生成されたブロックは、他のノードへと伝送されていき、受け取ったノードは問題のない有効なブロックであるかを検証、適正なブロックと確認されたら、さらに別のノードへと伝えていきます。検証作業は、すでにナンスが発見されているので、ハッシュ計算によりごく簡単に終了します。

こうした計算量の競争、CPUの投下によって代表者を決め、検証をみなで進めていくのがPoWです。

不正改ざんに強いPoW
PoW方式の場合、理論上は誰でもマイニングに携わることができ、公平性と透明性が保たれています。また、不正改ざんに強い点がとくに優れており、仮に悪意を持ったノードがネットワークを混乱させたり、不正取引を認めさせたりする目的で、不正にブロックを生成、チェーンを形成させようとしても、実質的に不可能と考えられています。

なぜかというと、過去の取引記録における改ざんならば、該当ブロックから最新ブロックまで、全てが論理的に整合するように、改ざんを施し、全ノードに適応させなければなりません。ブロックの生成はその間も次々に発生しますから、膨大な計算量を、ネットワーク全体のスピードを超え、追いつき追い越す水準で実行しなければ成功しません。

また不正なブロックの生成を図り、誤ったチェーンを正しいものと認めさせようとするには、世界中に散らばったネットワーク上のノードが投下するCPUの総計算量において、51%以上を占有し、能力で上回る必要があります。

失敗すればインセンティブは得られず、チェーンも無効と廃棄されるため、それだけのリソースを注ぎ込むメリットがありませんから、そもそも不正を働こうとしなくなる、正しいマイニング、正しい計算作業の側につくようになるのです。

PoWで強い発言権を獲得するには、膨大なコストをかけてCPUの力、きわめて高性能な計算力を集合発揮させる必要があり、通常はそうした占有がきわめて難しく、仮に不正を行ってもそれに見合うメリットがない、逆に正しいマイニングに参加する方が報酬を得られる仕組みになっています。

計算量とそれに応じて得られるインセンティブの存在、これが大きなポイントです。

▼DApps総研
https://dapps-info.com/

(画像は写真素材 足成より)