
今回は、暗号通貨について色々調べていくと必ずぶち当たる壁であり、しかもわかりにくい「コンセンサスアルゴリズム」についてまとめていきたいと思います(´∀`)
暗号通貨初心者の方にも、ある程度はわかるけどあと一押しがどうしてもわからない方などに向けて噛み砕いていきます!
基礎知識なのでしっかり理解していきましょう。
コンセンサスアルゴリズムとは?
そもそも「コンセンサスアルゴリズム」の意味なのですが、
コンセンサス=合意、承認
アルゴリズム=方法、算法
つまり、合意を取る方法という意味合いになります。
なぜ「暗号通貨にコンセンサスアルゴリズムが必要になるのか」という理由なのですが、ブロックチェーンには特定の管理者、中央の管理者は存在しないという特徴を持っています。
そこで発生する問題「取引・契約に対しての不正チェックを誰が行うか」という部分の、不正チェックを行う人を決定する方式がコンセンサスアルゴリズムです。
そして、暗号通貨によって異なる方式を取っているのですが、ビットコインは「PoW」、ADAやイーサリアム(今後)は「PoS」というコンセンサスアルゴリズムを採用しています。
これらのコンセンサスアルゴリズムによって、ブロックチェーンを成立しているんですね。
そして、PoWやPoSなど色々種類がありますが、それぞれ取引・契約の整合性をチェックする人の選出方法が異なりますので、どういったものなのか見ていきましょう!
ブロックチェーンの仕組みについて
コンセンサスアルゴリズムをきちんと理解するためには、ブロックチェーンへの理解が必要不可欠です。
ブロックチェーンを一言で表すと、よく言われているのが「世界中のみんなが見れる台帳」です。
例えば、「ビットコインを私から渡辺さんに送りました」とかいう取引情報をいくつかまとめたものをブロックと呼び、ブロックをどんどんつなぎ合わせていったもの、つまり鎖のように繋いでいき改ざんを不可能にしていく仕組みです。
そして、ブロックに入れる取引情報をチェックする方法のことをマイニングと呼びます。
そして、ブロックに入れたあとは改ざんが難しいのはもちろんですが(なぜ難しいのかは後述します)、そのブロックに入れる取引情報がそもそも間違ったものを入れると大問題ですよね。
なので、ブロックに入れる前に取引情報を確認する必要があり、その確認方法のことをコンセンサスアルゴリズムと呼びます。
暗号通貨によって採用しているコンセンサスアルゴリズムは違えど、元のブロックチェーンのしくみ自体は違わないのであまり難しく考えなくて大丈夫ですよ。
ブロックチェーンを図解にして細かく分かりやすくしたものをまとめてますので、下記の記事をご覧ください↓↓
ハッシュ値
こちらも上記のブロックチェーンのしくみについてまとめた記事の中に、かなり分かりやすくしているのですが、重要なのでこちらでも軽く説明しますね。
ハッシュ値というのはハッシュ関数という技術を用いて算出される値で、該当のデータの受け渡し・保管時にそのデータが正しいままであるかどうかを確認するためにあります。
あるデータをハッシュ関数に入れるとハッシュ値が生成されるのですが、例えば「AさんからBさんに1000bit送金した」というデータが記録はされているものの、暗号化されてしまうとわたしのような素人がみてもちんぷんかんぷんな様に暗号化=ハッシュ値にされます。
暗号化された状態から元に戻すことは極めて困難になるため、元のデータが改ざんされていないことを確認できるといったしくみです。
そして、ブロックで生成されたハッシュ値は、次のブロックのハッシュ値生成にも利用されるため、そしてハッシュ値がチェーン上に繋がっているので、一箇所でもデータを改ざんしてしまうと永遠改ざんされた計算をしなければいけないため、そういった理由でブロックチェーンが改ざんされるリスクはほぼゼロに近いといっても過言ではありません。
PoW(プルーフ・オブ・ワーク)とは

コンセンサスアルゴリズムの中で最初に誕生したのがPoWです。
特にこの画像に意味は込められていません。笑
PoWは、ワークという文字そのままなのですが仕事量に応じてブロック生成者が決められます。
つまり、一番仕事をした人に対して取引の不正当判断の権利が渡されます。
だからといって一番仕事をした人が不正できるかと言われるとそうではなく、ブロックチェーンの特徴である非中央集権の仕組みによって全員が監視し合っているので不正はできません。
そして、しっかりと仕事をこなし正確にブロックを生成した者に対して報酬が与えられるしくみです。
従来のP2Pネットワークは、IPアドレスごとに発言権を与え制約するしくみをとっていたのですが、そうしてしまうと大量のIPアドレスを保有することができる悪者が出て来たときに発言権を奪われてしまう可能性がありました。
そういった問題をブロックチェーンでは、複数の取引を一つのブロックにまとめてブロックの承認を行い、承認作業自体も難しい演算にすることによって、IPアドレスをたくさん持っているというだけでは発言権を持つことはできないようにしています。
PoWのメリット
改ざんされる可能性がほぼ皆無

PoWのメリットとしては、改ざんされる可能性がほぼ皆無であることがあげられます。
上記にて説明したように周りからの監視があるのも一因ではありますが、不正するには膨大な量の計算量が必要不可欠になってきます。
例えば、取引情報を改ざんしようとする悪者が現れました。
その悪者さんは不正なブロック生成をおこなったとして、その後も前のブロック内の情報を受け継いでいく性質をもっているために全てのブロックを改ざんし続けなければいけません。
全ブロックを改ざんとなると、当然仕事量は膨大なものになりますよね。
また、不正なブロックを生成し続けるとはいっても、毎回ブロック生成の際に誰よりも早く計算式を解かなければいけません。
つまり、世界中の採掘者(マイナー)のコンピューターの計算能力に勝ち続ける必要があるため、膨大な仕事量を永遠こなして不正を行うより、普通にマイニングに参加してきちんと正確に計算を行い報酬を得るほうが断然コストパフォーマンスがいいです。
これらにより、心理的にも体力的にも不正を起こさせない仕組みになっています。
PoWのデメリット
莫大な電気代
電気代に関しては、かなりハイスペックのパソコンを使っても演算に10分程度かかってしまうものなので、そのくらいパソコンをフル稼働させていたら電気代は必然的にかかってしまうのも当然と言えます。
なので、PoWを採用している暗号通貨が出始めた頃は個人のコンピューターでマイニングを行うことができても、ビットコインなどのようなある程度マイニングされている暗号通貨に関しては大資金が必須になってくるために個人ではかなり難しいです。
51%攻撃
51%攻撃とは、ブロックチェーンの性質を利用したものです。
ブロックチェーンはマイナーによってブロック生成がされますが、稀に同時に演算されてしまいブロックが二つできる時があります。一旦はどちらとも正式なブロックとして承認されるんですね。
枝分かれしたところからまたブロックが繋がっていくのですが、最終的には長い方のブロックチェーンが正式なものとしてみなされ、短い方のブロックチェーンはその後繋がることなく無かったことにされます。
なぜそれ以降ずっと枝分かれしたまま繋がれないのかというと、再度演算が同時に終わらないと二つのブロックが続けて繋がることはないですよね。
そして、本題の51%攻撃はこのブロックチェーンの分岐を利用して、改ざんされた不正なブロックチェーンをどんどん伸ばして行き、正当なブロックチェーンを捨ててしまおうという悪質な方法です。
ブロック生成後はそのブロックの取引情報が本当に正しいものであるのかどうかの承認が行われ、承認を得るには51%以上のネットワークの参加者の計算量が必要不可欠です。
しかし、そんな性質を利用して悪者が51%以上の計算力を持っていると、理論上だと好きな方のブロックチェーンを伸ばすことが許されてしまいます。
つまり、演算量の51%を占有するとハッキングできてしまうという意味ですね。
万が一占有されてしまうと、非中央集権型を取っているブロックチェーンが中央集権になりかねない側面も持っています。
ただ、ビットコイン等はすでに個人での参入が難しい現状があるので、51%以上の演算量ができる大資金を持った企業・組織が改ざんや不正を企ててしまうと、改ざんされてしまっても承認され続けてしまう可能性がありますが、先ほどにもお伝えしたように改ざんしようとするとかなりの電力を使うわけでもあり、そのために51%以上の計算もしなければいけないとなると、それはそれは相当な電力になります。
再々になりますが、そんなに労力・電力を消費するくらいだったら正確にマイニングを行い、報酬を得るほうが確実に自身にとっても確実にメリットがあります。
PoWを採用している暗号通貨
PoWを採用している暗号通貨の例に、以下の通貨がよくあげられます。
- ビットコイン(BTC)
- モネロ(Monero)
- ジーキャッシュ(Zcash)
- モナコイン(MONA)
番外編:実はマイニングよくわからん族
ちなみにわたしはマイニングを行なったことがないので、かなり踏み込んだことはどうしてもわからない部分があるのですが、CPUやらGPUやらASICやらの手法が存在します。
中には、専用の機械を自作してマイニングを行っていらっしゃる方もいたり、本格的なマイニング機械などを貸し出ししている企業が存在したり(一ヶ月80万くらいの表記だった気がします、、)と、見ていると様々で面白いです。
ちなみに、 ASICのマシンの一例がこちら↓

わたしにはよくわからない領域になってきました。。
特にPoWはマシンなどを使用しパワーでマイニングを行う必要があるので、こういった機械を利用してコンピューターのスペックをあげていくんでしょう。
もしマイニングにご興味のある方は調べて見てください(´∀`)
そして、PoWには様々がデメリットが出現してきたため、デメリットを解消しようとしてPoS(プルーフ・オブ・ステーク)なるものが生み出されました。
長くなってしまうので、次記事にてPoWと比べつつ特徴をみていきたいと思います!