コンセンサスアルゴリズムは、複数のノード間でブロックチェーンの正当性を確保するために使用されるアルゴリズムであり、PoWやPoSなどの種類がある。このアルゴリズムによって、取引の正当性を確保し、二重支払いや不正操作を防止する。
コンセンサスアルゴリズムは、ブロックチェーン技術の中核的な部分であり、今後も重要性が高まると考えられている。特に、ブロックチェーン技術の利用が広がるにつれ、より効率的かつ安全なコンセンサスアルゴリズムが求められるようになると予想されている。
現在、新しいコンセンサスアルゴリズムが継続的に開発されており、より高速でスケーラブルなブロックチェーンネットワークの実現に向けた取り組みが進んでいる。
コンセンサスアリゴリズムとは?

- コンセンサスアルゴリズムは、ブロックチェーン技術において、分散ネットワーク上で全ノードが同じ情報を共有するための仕組み。
- ブロックチェーンでは、各トランザクションをブロックとしてまとめ、それらをチェーン状に結び付けている。
- コンセンサスアルゴリズムには、PoW(Proof of Work)、PoS(Proof of Stake)、PoA(Proof of Authority)などがある。
- PoWは、暗号学的な問題を解いて新しいブロックを採掘する方式。
- PoSは、保有する暗号通貨の量に応じて新しいブロックを採掘する方式。
- PoAは、特定の認証者によって承認されたトランザクションのみがブロックチェーンに記録される方式。
- コンセンサスアルゴリズムによって、ブロックチェーン上のトランザクションの透明性や改ざん防止が実現される。
コンセンサスアルゴリズムの種類
コンセンサスアルゴリズムで代表的な種類として、PoW、PoS、PoAがある。それらを含めて下記の様なコンセンサスアルゴリズムがあり、それぞれの暗号通貨により様々な種類が開発されている。
PoW (Proof of Work)
PoW(Proof of Work)は、ブロックチェーンネットワークにおいてトランザクションの認証を行うためのコンセンサスアルゴリズムの一つである。以下は、PoWの概要である。
- PoWは、ネットワークのノードがマシンパワーを使用して数学的パズルを解くことで、ブロックの有効性を検証する仕組みである。
- パズルの難易度は、解くことが困難であるため、解くには多大なコンピュータリソースが必要となる。
- ノードがパズルを解くために必要なリソースを投入することによって、ネットワーク全体のセキュリティが高まる。
- 解決されたパズルは、新しいブロックのヘッダーに付加され、新しいブロックを追加することができる。
- パズルの解決には多大なコンピュータリソースが必要であるため、マイニングによる報酬が支払われる。
- PoWは、ビットコインやイーサリアムなどの代表的なブロックチェーンプロトコルで使用されている。(現在イーサリアムはPoSへ以降)
- PoWは、ハッシュレート(ネットワークのハッシュパワーの総量)が高くなると、攻撃者がブロックを改ざんするのが非常に困難になる。
- 一方で、PoWにはマイニングに必要なエネルギーコストが高く、環境に対して負荷をかけるという問題もある。
- 最近では、より環境に優しいPoS(Proof of Stake)などの新しいコンセンサスアルゴリズムが注目されている。

PoS (Proof of Stake)
Proof of Stake(PoS)は、ブロックチェーンネットワークでのトランザクションの承認に使用されるコンセンサスアルゴリズムの一種であり、Proof of Work(PoW)に代わる新しい手法である。以下は、PoSの概要についての箇条書きである。
- PoSは、ブロックチェーンネットワークでのブロック承認を、コンピューターリソースの競争ではなく、所有するトークンの量に基づいて行いる。
- PoSでは、ネットワークの承認者(ステークホルダー)が、自分が保有するトークンを抵当に入れ、承認のプロセスに参加する。
- ステークホルダーは、トークンを抵当に入れることで、ネットワークの安全性を維持するために責任を負いる。もしステークホルダーが悪意ある行為をした場合、彼らは抵当の一部または全額を失うことになる。
- ブロック承認者は、ランダムに選ばれたステークホルダーによって決定され、これは「マイニング」と呼ばれる。採掘により、ステークホルダーはブロック報酬を獲得することができる。
- PoSは、エネルギー消費量が少なく、環境に優しく、高速でスケーラブルなブロックチェーンネットワークを実現するための手段として注目されている。
- Ethereum2.0では、PoSが採用されており、ブロックチェーンネットワークのスケーラビリティを向上させ、将来的にはPoWからの移行を促進することが期待されている。

PoA (Proof of Authority)
PoA(Proof of Authority)は、ブロックチェーンのコンセンサスアルゴリズムの一つである。以下は、PoAについての主なポイントである。
- PoAは信頼された認証局がブロックチェーン上でトランザクションの正当性を検証する方法である。
- PoAでは認証者が事前に選ばれ、アルゴリズムに基づいて新しいブロックを生成する。
- PoAはPoWやPoSよりも高速で効率的であるとされており、特にプライベートブロックチェーンでの利用が多いである。
- ブロック生成の速度が非常に速く、トランザクション処理速度が高いのが特徴である。
- PoAは認証局によって中央集権的に管理されるため、ブロック生成による報酬はない。報酬は認証局が自由に設定することができる。
- PoAはシンプルで柔軟性があり、取引処理にかかる時間が非常に短いことが特徴である。
- PoAはプライベートブロックチェーンでの利用が多いため、パブリックブロックチェーンでの利用に関する議論もある。
- PoAでは認証者は信頼できることが前提であり、ブロックチェーンのセキュリティを高めるために、プルーフ・オブ・ステーク(PoS)などのアルゴリズムを併用することがある。
- PoAを採用している暗号通貨の例としてCronos(クロノス)がある。

DPoS (Delegated Proof of Stake)
- DPoSとは、Delegated Proof of Stakeの略称で、PoSの一種であるコンセンサスアルゴリズムである。
- DPoSでは、ネットワーク上の利害関係者が、自分たちの資金をステーク(担保)し、そのステークを使ってネットワークのブロックを検証するノードを選択する。
- DPoSでは、ステーキングされたコインの所有者が、ブロックチェーンの更新プロセスに参加するために、代理人(ウィットネス、ブロックプロデューサーなどと呼ばれる)を選出する。
- ステーキングされたコインの所有者は、彼らの利益を代表するために、ブロックプロデューサーに投票することができる。
- DPoSでは、ウィットネスは、トランザクションを検証し、新しいブロックを生成するために、彼らが選出されたときにステーキングする必要がある。
- DPoSは、PoWよりも環境に優しく、PoSよりも中央集権化を回避するという利点がある。
- DPoSでは、参加者はネットワークのトランザクションを承認することで報酬を受け取ることができる。
- DPoSの利点は、スケーラビリティとエネルギー効率の向上、運用の容易さ、中央集権化の回避などである。
- DPoSはXDC Network、EOS、AelfなどのコンセンサスアルゴリズムとしてDPoSを採用している
PoS+ (Proof of Stake Plus)
- Symbolでは、Proof of Stake Plus(PoS+)アルゴリズムを使用している。
- PoS+は、ノードが正確かつ正直に動作するようにするために、通常のPoSよりも多くの要素を考慮に入れた進化したアルゴリズムである。
- PoS+では、ノードがネットワークにアクセスする前に、各ノードが一意の証明書を持ち、ネットワークに参加できることを証明する必要がある。
- SymbolのPoS+は、高いレベルの分散、スケーラビリティ、およびノードの不正行為に対する保護を提供する。
- Symbolは、トランザクションの速度が毎秒最大1,000件であり、フィーも低く、ノードのランダム選択によりスムーズに分散が行われる。
- Symbolのアカウントは、アドレスに基づいて一意に識別され、各アカウントは、ネットワーク上のすべてのトランザクションに関連する非公開および公開鍵を持っている。

PoP (Proof of Personhood)
Proof of Personhood(PoP)は、ブロックチェーンの世界において、参加者が本物の人物であることを証明するためのコンセンサスアルゴリズムである。以下は、PoPについての詳細な説明である。
- PoPは、参加者がブロックチェーンネットワークに参加する前に、本物の人間であることを証明する必要があるというアイデアに基づいている。これにより、ブロックチェーンネットワークの信頼性が向上する。
- PoPは、顔認証、音声認証、指紋認証、社会保障番号の検証など、様々な方法を使用して、参加者が本物の人物であることを検証する。
- PoPを使用することで、アカウントの多重登録や偽のアカウントの作成を防止することができる。また、プラットフォームに悪意のあるユーザーがアクセスすることも防ぐことができる。
- PoPは、オンライン詐欺やフィッシング詐欺などの問題を解決することができる。これらの詐欺は、偽のアカウントを使用して行われることが多いため、PoPを使用することで、これらの問題を大幅に減らすことができる。
- PoPは、プライバシーに関する懸念がある。顔認証や指紋認証など、多くの認証方法が個人情報を必要とするため、参加者のプライバシーが侵害される可能性がある。
- PoPは、世界中の様々な分野で使用される可能性がある。たとえば、選挙の投票や金融取引など、参加者が本物の人物であることを確認する必要がある分野で使用されることが考えられる。
- PoPは、まだ実験的な段階にあり、現在は実際のプロダクトとしての開発は進んでいない。しかし、将来的には、より多くのプラットフォームがPoPを採用する可能性がある。
PoET (Proof of Elapsed Time)
PoETは、参加者がランダムな時間を待機した後にブロックを採掘することを強制するコンセンサスメカニズムである。エネルギー消費を低減するため、Intel SGXを利用し、攻撃者による侵害を防止し、トランザクションの正当性を高い確率で保証するが、攻撃者がエンクレーブを侵害する場合は無効になる可能性があるため、注意が必要である。
- PoETは、ブロックチェーンの一種であるコンセンサスメカニズムの一種である。コンセンサスメカニズムは、分散型ネットワークでの取引の正当性を確保するために必要である。
- PoETは、参加者がランダムな時間を過ごした後にブロックを採掘することを強制するアルゴリズムである。これにより、参加者はCPUパワーや電力消費に応じたブロック生成の競争を避けることができる。
- 参加者は、ハッシュ値を生成し、それをネットワークに公開する。その後、参加者は、そのハッシュ値に基づいてランダムな時間を待ちます。最初に待機時間が経過した参加者が、ブロックを採掘する権利を得ます。
- PoETは、Intel SGX(Software Guard Extensions)を利用することができる。SGXは、暗号化されたエンクレーブ(安全な領域)を提供し、参加者がネットワークの外部から干渉されることを防ぎます。
- PoETは、競合するコンセンサスメカニズムよりも低いエネルギー消費を必要とするため、より環境にやさしいである。
- PoETは、トランザクションの正当性を高い確率で保証することができるが、攻撃者が参加者のSGXエンクレーブを侵害する場合は無効になる可能性がある。
- PoETは、ハイブリッドブロックチェーンで使用されることがある。これは、複数のコンセンサスメカニズムを組み合わせることにより、セキュリティと効率を向上させることができる。
PBFT (Practical Byzantine Fault Tolerance)
PBFT(Practical Byzantine Fault Tolerance)とは、分散システムにおいて、信頼できないノードによる攻撃に対しても耐性を持った共同決定アルゴリズムである。
- PBFTは、分散システムにおける共同決定アルゴリズムの一種であり、誰か1人以上の悪意のあるノードが存在しても、システム全体の正常動作を維持できるように設計されている。
- PBFTでは、各ノードは「クライアント」「レプリカ」「ビュー・チェンジャー」の3つの役割を担う。
- クライアントがリクエストを送信すると、レプリカはそれを受信し、ビュー・チェンジャーに投票する。ビュー・チェンジャーは、投票が過半数を占めた場合、新しいビューを選出し、それに基づいてレプリカを再構成する。
- リクエストが処理される前に、レプリカ間で事前に協議を行う。協議の結果、処理するリクエストが正当かどうかを判断する。正当であれば、各レプリカはその結果を署名し、結果をクライアントに返信する。
- PBFTは、単純なバイナリ合意アルゴリズムよりも高速である。このため、高速で正確な決定を必要とするアプリケーションで広く使用されている。
- PBFTは、TendermintやHyperledger Fabricなどのブロックチェーンプラットフォームにも採用されている。
- BORAがコンセンサスアルゴリズムとしてPBFTを採用している。

VBFT(Verifiable Byzantine Fault Tolerance)

Paxos (Paxos consensus protocol)
- Paxos Consensus Algorithm(PCA)は、分散システムにおいて一致を取るプロトコルであり、分散システムの障害に対する耐性を持っている。
- PCAは、分散システムの間で一致が得られることを保証することができ、コンセンサスアルゴリズムの一つである。
- PCAは、3つの段階(Phase)からなる。最初の段階では、提案された値をシステム内の他のノードに送信し、それらのノードから返信を受け取る。二番目の段階では、提案された値を受け入れることができるノードが選ばれ、一致が取れるようにされる。最後の段階では、一致が取れたことが確定され、提案された値が採用される。
- PCAには、リーダー選出に関する問題がある。リーダー選出に失敗した場合、システムの一貫性を維持することができなくなる可能性がある。
- PCAの欠点は、多数のラウンドトリップを必要とすることと、ネットワークの遅延がある場合には処理速度が低下することがある。
- PCAにはいくつかの派生形があり、これらの派生形は、改良されたPaxosアルゴリズムであるMulti-PaxosやFast Paxosを含む。
- PCAは、クラスタ化されたデータベースの実装に利用されることがあり、多数のアプリケーションで使用されている。

PoB(Proof of Believability)
Proof of Believability (PoB)は、IOSTによって開発されたコンセンサスアルゴリズムであり、参加者の信頼性に基づいてブロック生成権を与える。信頼性は、投票行動、貢献度、トークンバランスなどに基づいて決定される。エネルギー消費が少なく、スケーラビリティに優れ、分散型アプリケーションの構築に適している。IOSTのPoBは、トランザクション処理速度が高く、セキュリティが高いため、他のコンセンサスメカニズムと比較して優れている。
- PoBはIOSTによって開発されたコンセンサスアルゴリズムであり、参加者の信頼性に基づいてブロック生成権を与える。
- 参加者の信頼性は、投票行動、貢献度、トークンバランスなどに基づいて決定される。
- PoBはPoSやPoWに比べてエネルギー消費が少なく、スケーラビリティに優れている。
- 分散型アプリケーションの構築に適しており、スマートコントラクトとの統合も容易である。
- PoBはネットワークのパフォーマンスが向上すると、参加者の報酬も増加する。これは、参加者がより良いネットワーク環境を維持するためのインセンティブとなる。
- PoBは参加者がより公平な取引を実行できるようになる。これは、より多くの人が参加できるようになり、ブロック生成者に偏りが生じることを防ぐことができる。
- IOSTのPoBは、トランザクション処理速度が高く、セキュリティが高いため、他のコンセンサスメカニズムと比較して優れている。
- 参加者の報酬が増加するため、投機的な取引を防ぐことができる。
- 技術的な評価が高く、他のコンセンサスメカニズムと比較して優れているとされている。
- 他のコンセンサスメカニズムと比較して、シンプルなアルゴリズムを採用しているため、スケーラビリティが高く、開発者が簡単に実装できるようになっている。

PoH(Proof of History)
- Proof of History(POH)は、分散型ネットワークでのブロックチェーン技術において、暗号学的に安全な時系列のタイムスタンプを提供するアルゴリズムである。
- POHは、時間の経過とともに成長していく暗号学的に安全なストリームとして実装され、POHストリーム内のそれぞれのエントリは、過去のエントリを指し示す事前のハッシュによって確認される。
- POHは、マイニングなどのネットワーク参加者のアクションに応じて、暗号学的なポイントを発行する。これにより、POHの状態はネットワーク全体で共有され、分散型アプリケーションのトランザクションやアクションを確定するために使用される。
- POHは、スループットの向上やデータの効率的な伝送を可能にするため、他の共通のコンセンサスアルゴリズムと併用される。
- Solarは、POHを採用したプラットフォームの1つであり、データの速度、可用性、およびセキュリティに優れたサポートを提供する。

PPoS(Pure Proof of Stake)
Pure Proof of Stake (PPoS)は、参加者が自身の通貨をステーキングして、ブロック生成権を得るコンセンサスアルゴリズムであり、エネルギー効率が高く、スケーラビリティに優れています。しかし、ステーキング量に応じた報酬を得られるため、中央集権化が発生する可能性があるため、リスクがあります。ブロック生成者がネットワークから排除される「罰則機能」を備え、高度な機能も持っています。
- PPoSはステーキングによってブロック生成権を得るコンセンサスアルゴリズムであり、ブロック生成者が報酬を得る。
- ステーキングとは、ネットワークに通貨をロックし、その通貨の量に応じてブロック生成権を得ることである。
- PPoSはPoWと比較してエネルギー効率が高く、スケーラビリティに優れている。
- PPoSでは、ネットワークの中央化を防ぐため、通貨の配分が均等に行われるように設計されている。
- PPoSはステーキング量に応じた報酬を得るため、中央集権化が発生する可能性がある。
- PPoSはブロック生成者がネットワークから排除される「罰則機能」を備えている。これにより、不正行為を行うブロック生成者を排除することができる。
- PPoSはリアルタイムでのネットワークアップデートを可能にするなど、高度な機能を備えている。
- PPoSの欠点として、ステーキングによってブロック生成権を得るため、一部の参加者が多くの通貨をステーキングすることで、中央集権化が発生する可能性がある。
- PPoSはステーキング量に基づく報酬を得るため、投機的な取引を引き起こす可能性がある。
- PPoSのセキュリティは、ステーキング量に応じて決定される。そのため、セキュリティが低下する可能性がある。
- PPoSは他のコンセンサスアルゴリズムと比較して、スケーラビリティが高く、開発者が簡単に実装できるため、ブロックチェーンプロジェクトに広く採用されている。
- AlgorandでPPoSのコンセンサスアルゴリズムを採用している。
