
コンセンサスアルゴリズムはブロックチェーンを支える根本的な技術の1つで、仮想通貨のマイニングやセキュリティの中心とも言えるしくみです。
こちらの記事ではそんなコンセンサスアルゴリズムを解説します。また種々のアルゴリズムの紹介とそれらの特徴を比較します。
目次
1. コンセンサスアルゴリズムとは合意形成の方法
コンセンサスアルゴリズムは、日本語で「合意形成アルゴリズム」、「合意形成するための方法」と訳されます。
1-1. コンセンサスアルゴリズムの意味
コンセンサスアルゴリズムは、「情報を信用する(合意する)ための基準やルール」と考えて良いでしょう。
情報を信用するためには骨が折れる作業が必要
例えば、インターネットではWebサイトへアクセスして情報を得ます。ただし、そのサイトの情報が正しいかどうかは、誰にも分かりません。
アクセスする人たち同士で情報交換したり、他の情報源と付き合わせたりして確認すれば分かる場合もありますが、全員がすべてを確認することは簡単ではありません。
公的機関のサイトは当たり前に信用できる
しかし、そのサイトが官庁や役所など公的機関のサイトであれば、ほとんどの人が「正しい情報」だと考えるでしょう。これは「公的機関の情報は正しい」という合意が、教育や経験によりとれているためです。
当たり前の信用(合意)を技術によって作り出す
この合意を作り出すしくみがコンセンサスアルゴリズム(合意形成アルゴリズム)です。
もっと詳しく商品の売買に置き換えてみる
また、一般的な商品の売買では、「お店」が生産者と消費者の取引を仲介する管理者となって、「商品が正規のものであること」「お金が本物であること」などを確認し、双方の満足のいく商品と価格であることの合意をとったうえで取引を成立させています。
このとき、管理者がいなければ生産者が偽物を売ったり、消費者が偽札で払ったりすることが簡単にできます。そんな信用できない状態では、取引が成立することができなくなるでしょう。
この管理者が担っている「正しい取引であることを関係者が合意できるしくみ」が、コンセンサスアルゴリズムなのです。
1-2. コンセンサスアルゴリズムが仮想通貨を生み出した
世界で初めての仮想通貨であるビットコインは、Proof of Work(PoW)というコンセンサスアルゴリズムによって、非中央集権の仮想通貨取引を実現させました。
PoWは、「莫大な計算コストを支払うため、不正を働いても損をする」という心理面も含めたしくみで、「正しいチェーンである」ことを全ノードで合意しています。
1-3. ブロックチェーンの連続性を保証している
コンセンサスアルゴリズムは、取引の承認単体だけでなくブロックチェーンの連続性も保証しています。
ブロックチェーンでは、ネットワーク上のコンピュータ(ノード)が取引を格納したブロックを作ってつなげています。しかし個々のノードが勝手にブロックをつなげるだけでは信頼できませんので、正しさを保証するコンセンサスアルゴリズムが必要となるでしょう。
ブロックとブロックをつなぐのも合意が必要
ブロックチェーンのコンセンサスアルゴリズムは、基本的に「正しくつながっているチェーンであること」を確認することでチェーンの連続性が保障され、その結果取引の正しさが保証されます。
連続性というのは、「残高から支払う」という因果関係の正しさです。この因果関係が正しいことを保証することで、不正取引である二重払いを防いでいるのです。
●残高から支払う因果関係を無視した二重払いとは●
aさんはbさんとcさんから商品を購入したいが、残高が足らない場合を考えましょう。
前提として、仮想通貨での支払いというのは、直接コインをやりとりするのではなく、支払証明のような台帳を通して行います。
正しい取引では、次のように順番に支払証明を作って支払うことになります。
aさんがbさんへ支払ってしまうと、
aさんはcさんへ支払えなくなります。
これは、aさんが「bさんへ支払う」後に「cさんへ支払う」という取引の順番が守られているからです。
不正な取引では、aさんはまず、平行して2つの支払証明を作ります。この時点では、aさんの残高はあるので、両方の支払証書を作ることができます。
そして、この支払証明を使えば、aさんはbさんにもcさんにも支払う二重支払が可能になるのです。
コンセンサスアルゴリズムによって取引の順番が守られていれば、このような不正は起こせません。
2. 各種コンセンサスアルゴリズムの特徴
代表的なコンセンサスアルゴリズム7つについて、メリットデメリットも含めて説明します。
正しさを承認してブロックをつなげる権利を得る手段はマイニングの方法そのものですので、マイニングに興味のある人は自分に合った仮想通貨を探すヒントになるかもしれません。
■Proof of Work (PoW)
莫大な計算を行ってもっとも早く答えを見つけたノードに対して、承認の権利を与えるアルゴリズムです。
「不正をするよりも正しく処理した方が得をする」ことで不正を防ぎ、ブロックチェーンの正しさを保障しています。
メリット:改ざんが非常に難しい
デメリット:消費電力が大きい、取引速度が遅くなる
採用通貨:BTC、ETHなど
■Proof of Stake(PoS)
コインの保有枚数の多いノードが承認の権利を得る確率が上がるアルゴリズムです。
悪意のあるノードが不正をしても自ら保有するコインの価値を下げることになるため不正をする意味がなく、ブロックチェーンの正しさが保障されます。
メリット:消費電力が小さい、決済速度が速い
デメリット:流動性が下がりやすく貧富の格差が広がる
採用通貨:ADA(Cardano)
■Proof of Importance (PoI)
コインをより多く保有し、かつ、より多く取引をした人が承認の権利を得られるアルゴリズムです。
大量のコインを保有して利用する必要があるため、コインの価値とネットワークへの信頼を守るインセンティブが働き、不正を防ぎます。
メリット:一定の流動性が保証される
デメリット:ある程度の貧富の格差ができる
採用通貨:XEM
■Proof of Consensus (PoC)
金融機関などの信頼されたノードに承認の権利が与えられ、そのノードのうちの80%が承認することでブロックがつなげられるアルゴリズムです。
金融機関自身の社会的責任によって、ブロックチェーンの正しさが保障されます。
メリット:取引速度が速い
デメリット:参加者の意見が通りにくい、悪意のある承認者を止められない
採用通貨:XRP
■Delegated Proof of Stake (DPoS)
コインを多く持つノードから投票されたノードが権利を得られるアルゴリズムで、承認の権利を与えられたノードの中で順番にブロックをつないでいきます。
不正を働くと次回の投票で権利をはく奪されるため、不正を防ぐインセンティブが働きます。
メリット:消費電力が小さい、決済速度が速い
デメリット:悪意のあるノードが結託すると不正なノードに権利を与えられる
採用通貨:LSK、EOSなど
■Proof of Authority (PoA)
信頼された参加者のノードが権利を持つアルゴリズムで、組織内などの閉じられた環境で使われます。
権利者が誰なのかが公開されているため、安易に不正を働くことはできません。
メリット:取引速度が速い
デメリット:参加者の意見が通りにくい、悪意のある承認者を止められない
採用通貨:なし。イーサリアムのtestnet内で使われています
■Proof of Burn (PoB)
特定のコインを秘密鍵が分からないアドレスへ送って使用不能にする代わりに承認の権利を得られるアルゴリズムです。
相応のコストを支払わせることで、不正を防いでいます。
メリット:格差が広がらない、元の通貨の相対的価値が上がる
デメリット:他の通貨を持っていないと参加できない
採用通貨:XCP
これらのアルゴリズムはブロックチェーンの用途によって使い分けるもので、優劣はありません。最適なアルゴリズムを利用することで、コンセンサスアルゴリズムはその真価を発揮するのです。
まとめ
コンセンサスアルゴリズムは、ブロックチェーンを正しく動作させる要となる技術であり、次のようなものです。
- 正しいチェーンであることを保証するしくみ
- 因果関係を保証し、二重払いを防ぐ
採用しているコンセンサスアルゴリズムを知れば、その仮想通貨が「セキュリティ」や「取引速度」「公平性」など、何を重視しているのかが理解できます。
自分に合った仮想通貨を見つけるために、コンセンサスアルゴリズムを意識するのも1つの方法ではないでしょうか。