コンセンサス・アルゴリズムとは?

これまでのネットワークとブロックチェーンの違い

ビットコインをはじめとした暗号資産といえば、現在まで主流となっている中央集権型ネットワークと違い「管理者がいない(ルールのみで運用)」「改ざんできない」「送金が早く安い」などといった特徴がありますが、その根幹となるのがブロックチェーンという技術です。

ブロックチェーンではP2P(ピア・ツー・ピア)ネットワークを用いて「分散型台帳システム」を採用することにより、ノードと呼ばれるネットワーク参加者でデータを共有し管理しているのです。取引記録データ(トランザクション)がブロックのようにひとかたまりにまとめられ、鎖のように過去から現在までずっとつながっていることから「ブロックチェーン」と呼ばれています。そのため一部がハッキングにあってデータが失われたとしても、他のノードに記録が残っているためデータが改ざんされることは基本的にはありません。

ブロックチェーンでは中央集権的な管理者がいないため取引システムを保つためにルールを定める必要があります。この取引承認作業における合意方法をコンセンサス・アルゴリズムといいます。コンセンサス・アルゴリズムは暗号資産ごとに何種類も存在し、各通貨ごとに細かいルールが定められています。まず基礎となるビットコイン(BTC)のコンセンサス・アルゴリズム「Proof of Work」について解説いたします。


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

従来のシステムで管理者が取引を承認していましたが、プルーフ・オブ・ワークは直訳すると「仕事の証明」で簡単にいうと一番仕事をした人が取引の承認をしていいというシステムです。

ここでいう仕事とは新たな取引ブロックを追加するため、各ノードのコンピューターに「直前ブロックのハッシュ値に合う数字(ナンス値)」を見つける計算(Work)を行わせ、最も早くその数字を見つけ出すことです。ハッシュ値(16進数64桁)とは直前のブロックの情報をまとめて、主にSHA256という方法で暗号化したものです。ナンス値はハッシュとナンスが鎖のようにブロックを繋げている様子からブロックチェーンと呼ばれます。

ナンス値を見つけたノードが最も働いたとみなされ、取引の承認を行い報酬を得ることができます。この報酬として新規発行される暗号資産を得ることをマイニング(採掘)といい、ノードをマイナー(採掘者)とも呼びます。

PoWは現在Bitcoin(BTC)をはじめ、BitcoinCash(BCH)BitcoinSV(BSV)Litecoin、そして日本のMonacoinなどで採用されています。またビットコインの次に有名ともいえるEtherium(ETH)も現在はPoWですが、今後次に紹介するPoS(Proof of Stake)に移行予定です。


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

先ほど紹介したPoWですが「莫大な電気代がかかる」「そのため一部のマイナーに独占される恐れがある」「51%攻撃という半分以上ネットワークを支配すればハッキング可能」などの問題点が指摘されています。

時価総額2位のアルトコインEtherium(イーサリアム)が移行すると言われているコンセンサス・アルゴリズムPoS(Proof of Stake)は、通貨を持っている割合(保有量)に応じてブロックの承認を行います。そのためPoWの場合はノードはマイナーと呼ばれていましたが、PoSの場合は承認を行うノードをバリデーター(承認者)と呼びます。これによって莫大な電力を使用する計算を行う必要がなくなる、51%攻撃に耐性があるなどPoWのデメリットを軽減いたします。

PoSはCardano(ADA)、Qtum(QTUM)などの通貨に採用されています。ただしPoSにも「保有量・期間により報酬が上がることによる流動性の低下」や、「多く保有するほど報酬を得ることによるお金持ちがさらに富む構図」、「リスクなしに新トークンを得ることができる」などの問題点が指摘されています。イーサリアムをはじめ各通貨はその問題点を解消するような形で開発を進めていますが、PoSの問題点を解決するコンセンサス・アルゴリズムのうち代表的なものの一つがDPoS(Delegeted of Proof of Stake)です。


DPoS(Delegeted Proof of Stake)
デリゲーテッド・プルーフ・オブ・ステーク

Delegated Proof of Stakeは日本語でいうと「委任証明」で、通貨の保有量に応じて「投票権」が与えられており、投票によって選ばれたノードが取引の承認を行う、選挙に似たコンセンサス・アルゴリズムです。DPoSネットワークにおいてブロックバリデーターは対象となる暗号資産のコンセンサスによって数が決められており、トークン保有者はデリゲーターとして投票し、ブロックが生成された際には報酬をもらえます。一部のバリデーターに票が集まった場合中央集権的になるリスクはありますが、比較的民主的なシステムとなっています。

DPoSは次のような通貨に採用されています(数字はバリデーター数)。
EOS(eos):21、TRON(TRX):27、Cosmos(ATOM):100、Lisk(LSK):101、Loom(LOOM):24、CyberMiles(CMT):19

最近私が気になった通貨(LoomやCyberMiles、Tronなど)に採用されていることが多かったので本ブログで簡単にまとめさせていただきました。またDPoSと似てるけど少し違うコンセンサス・アルゴリズムを持つ通貨として

IOST(iost):Proof of Believibality
VeChain(VET):Proof of dAuthority

などもあります。いずれもトークン保有者が投票という形で比較的簡単にステーキングできる点は一般ユーザーにとって魅力的ですね。また最近独自チェーンに移行しましたBinanceCoin(BNB):11もDPoS+PBFT(Practical Byzantine Fault Tolerant)を採用する予定です。


BFT(Byzantine Fault Tolerant)ビザンチン・フォールト・トレランス

上記のBNBでDPoSと一緒に採用されるPBFT(Practical Byzantine Fault Tolelance)について解説しますが、その前に文中にもあるBF(Byzantine Faul)とはいったい何のことでしょうか?

ビザンチン将軍問題

「ビザンチン将軍問題」の語源は、東ローマ帝国(ビザンチン帝国)の将軍達が敵を包囲した際に、一斉攻撃の合意が取れていれば撃破できたにも関わらず、お互いに連絡が取るのが難しく、しかも反逆者が紛れ込み情報をかき回して(多数決4対4の状態で攻撃派には攻撃すると伝え、撤退派には撤退と伝える)いたため意思疎通が取れず全体としての合意をとるのが難しくなる問題に由来しています。

インターネットのP2Pネットワークにおいては、各ノードは他の全てのノードに関するデータを持っておらず、ハッキングの危険性があるため、全体としての意思疎通ができない状態のことをいいますが、ビットコインのプルーフ・オブ・ワークは競争と、一番長いブロックチェーンが正しいとする特徴により、このビンザンチン将軍問題を解いたと言われています。

ビットコインのようにP2Pにおいてビザンチン将軍問題が解決した正常に稼働している状態をBFT性(Byzantine Fault Tolerance)があるといいます。このビザンチン・フォールト・トレランス性を持った合意形成アルゴリズム2種について説明します。

PBFT(Practical Byzantine Fault Tolerant

PBFTはノードが予め信頼できる少数(コアノード)に決定されていて、ノードを検証ノードと非検証ノードに分け、非検証ノードがトランザクションを受け取り、検証ノードが2/3以上の合意によってトランザクションを完了させます。高速なトランザクションと安定的なマイナーへのインセンティブというメリットがあります。

採用している通貨:ZIL(Zilliqa)、Ark(ARK)など

DBFT(Delegeted Byzantine Fault Tolerant

DBFTではPBFTと流れは同じですが、検証ノード(Bookkeeper)はトークンホルダーの投票によって民主主義的に選出されます。代表者の選出はランダムに決定され、合意が2/3以上に満たない場合は別の代表者に交代します。DPoSと似ていますが不正なブロックがあった場合、DPoSではその後正しいブロックを見つけフォークさせることでつなげるのに対し、DBFTではブロックが承認されない場合そもそも繋がらないためフォークされないという特徴があります。

採用している通貨:NEO(NEO)など

またNEOと提携しているONT(Ontology)はdBFTの元となるBFT(ビザンティン将軍問題耐性)やイーサリアムが将来的に以降する予定を表明しているPoS、ランダム性と公平性を付与したVRFと3種類を組み合わせたコンセンサスアルゴリズムVBFTを採用しています。


今回はコンセンサス・アルゴリズムについて紹介いたしました。各通貨で詳細は異なりますのでご了承ください。

関連項目

基本情報カテゴリの最新記事