コンセンサスアルゴリズムの種類

コンセンサスアルゴリズムは、分散型ネットワークの参加者がネットワークの状態、または単一のデータ値の状態について合意し、ネットワーク上の未知のピアとの間で信頼を確立するために用いられる、コンピュータサイエンスにおける手順です。

コンセンサスアルゴリズムは、ブロックチェーンのメンバーがネットワーク上でトランザクションを検証し、ネットワークのパラメータを変更し、新しいブロックを処理するのに信頼できるノードをどれにするかを決めること、そしてその他の重要な機能について合意に到達するよう設計されています。

この記事の技術的な性質に惑わされないでください。「コンセンサス」は私たちの周りのあらゆるところにある、人間らしい概念で、ただそれを自動化できるものに当てはめているだけです。

まずは、中央集権型のシステムでは、コンセンサスタスクは中央の権威によって実行されます。

Bitcoinのような分散型システムでは、数百、数千、さらには数十万ものマイナー、あるいはノードで構成されたネットワークがあり、1つまたは複数のタスクを実行し、信頼性が高く効率的なエコシステムを提供するために参加します。

この例で分散型コンセンサスを考えてみましょう。たとえば、あなたが4人の友人グループにいて、そのメンバーの1人、Alexが5人目の人物であるBobを紹介したとします。Bobが去ったとき、たぶん(これはプロトコルです)、グループはBobについて話し始めるでしょう。彼を(結果は「コンセンサス」になります)好きだったかどうかを確かめるために。

José: “Bob seems like a cool guy.”



Kevin: “Yeah, cool guy. How’d you meet him?”

Alex: “He was in one of my finance classes back in college; we would share crypto trading tips, and he ended up being a pretty funny guy.”

Kevin: “Nice, but his memes were just super weird.”

John: “You just don’t get meme culture.”

José: “Yeah you don’t spend a lot of time scrolling through TikTok—I thought they were pretty funny.”

この例では、「コンセンサス」は、Bobが友人グループにうまく溶け込めるかどうかについて到達しました。特定のコミットメントや契約がなくても、意見にはしばしば必要なコンセンサスが存在します。参加者のKevinはBobをグループに入れることに消極的ですが、José、Alex、JohnはBobに賛成です。

このケースでは、上記の例をコンセンサスアルゴリズムとしてコーディングするとしたらこうなります。「3人が“彼はクール”で、1人が“彼はクールだけどXYZは不安”」でも、それは「彼はクール」です。多数決が勝つので、Kevinの意見にもかかわらず、Bobはクールな仲間たちと一緒に過ごせることになります。

たとえばBitcoinは、新しいトランザクションが有効かどうか(「クール」か)を判断するコンセンサスを見つけるために作られています。

ここでは、公的ネットワークと私的ネットワークにわたる、最も人気のある—そしてあまり人気のない—ブロックチェーンのコンセンサスアルゴリズムの種類を見ていきます。

作業量(Proof of Work)とは?

プルーフ・オブ・ワーク(PoW)は、Satoshi Nakamotoが2009年にBitcoinを作成したことに伴って登場した、最も人気があり最も古いコンセンサスアルゴリズムです。 PoWシステムは、数学パズルを解くために競い合うマイナーのグローバルなネットワーク—ネットワークノードと呼ばれる—で構成されます。パズルを成功裏に解いたマイナーは、ブロックチェーンに新しいブロックを追加する権利を勝ち取り、新たに作られた暗号通貨で報酬を受け取ります。

作業量は基本的に、マイナーがネットワークのコンセンサスを達成し、各ブロックの真正性を検証するために計算能力を提供したことを示す方法です。さらに、各ブロック(トランザクション)は連続した順序で配置され、二重支払いのリスクを排除します。

現時点まで、PoWは暗号通貨のブロックチェーンにおいて最も安全なコンセンサスメカニズムでした。ネットワークを改変するには、攻撃者が鎖状のチェーンにある既存すべてのブロックを再マイニングする必要があります。ブロックチェーンが成長するほど、ネットワークの計算能力を独占することは難しくなります。なぜなら、莫大なエネルギー消費と高価な機器が必要になるからです。

マイナーがパズルを解くと、ネットワークの難易度によって設定された値以下の値を持つハッシュを生成する nonce(nonceは、一度だけ使われる数の略です)を見つけます。

nonceはPoWシステムの中心的な部分です。なぜなら、マイナーはSHA-256ハッシュ関数でハッシュされたブロックヘッダーを作成できるようになるからで、つまり、チェーン内のブロックに対する参照番号を置くことになります。ブロックヘッダーには、タイムスタンプと前のブロックのハッシュも含まれています。

PoWのデメリット

マイナーはパズルを解くためにかなりの計算能力を提供する必要があります。しかし計算は複雑なので、単一のS9 Antminerが消費するエネルギー量は通常、14.5 TH/sのハッシュレートに対して1時間あたり1400~1500ワットです。より強力なS19は、ハッシュレート110 TH/sで、1時間あたり3250ワット消費します。

少し数学を使えば、データセンターやマイニング企業が、1つの場所で毎日数百〜数千ものマイニングリグを使って消費するエネルギー量を計算できます。エネルギー消費の高さと環境へのダメージが、proof of workに対する主な批判です。

例として言うと、Before Ethereum switched to Proof of Stake、世界中のEthereumマイナーは年間およそ10 TWh/yrを消費しており、これはチェコ共和国と同じです。

大きな騒音も人の聴力レベルに悪影響を与えます—80 dBaを超えるからです。だからこそ、マイニングリグは日常の活動を妨げないために、地下室やマイニング施設に置かれることが多いのです。

プルーフ・オブ・ステーク(Proof of Stake)とは?

Proof of Stake(PoS)は、2番目に人気のあるコンセンサスアルゴリズムです。マイナーの代わりに、PoSブロックチェーンにはネットワークバリデータがいて、計算能力ではなくコイン/トークンを、自分がネットワークへのコミットメントを持っている証拠として使います。

ステーキングとは、ブロックチェーンのプラットフォーム上で一定期間暗号資産を「ロック」することを意味し、その見返りとしてユーザーはより多くの暗号通貨で報酬を得ます。

PoW vs. PoS: 主な違い

PoSでは、ユーザーは資産の一部をステークして、専ら不労所得を生み出すことだけを目的にできます。もう一つの選択肢はバリデータになることです。PoWシステムと異なり、バリデータは新しいブロックを作るために競いません。バリデータはアルゴリズムによってランダムに選ばれます。ユーザーがステークするコイン/トークンが多いほど、バリデータになってブロックチェーンで新しいブロックを作る可能性が高くなります。

PoWシステムでは、新しいブロックを生成する時間はマイニング難易度によって決まります。ネットワークに参加する参加者が増えるほど、ハッシュパワー、つまり新しいブロックをマイニングするために必要な計算能力は大きくなります。これに対してPoSブロックチェーンでは、ブロック生成時間はスロット—ブロックを作るまでにかかる時間—に分割され固定されており、さらにエポックもあります。エポックはスロットから成る時間の単位です。

これをよりよく説明するために、Ethereumでは1スロットが12秒であり、これはネットワークがブロックを作成するのにかかる時間です。そして32スロットで1エポックになります。したがって1エポックは6.4分です。PoSブロックチェーンの各スロットには、提案されているブロックの有効性に投票するあらかじめ決まった数のバリデータがいます。ブロックが有効ならチェーンに追加され、ブロック提案者と承認者(attestors)はETHで報酬を受け取ります。

PoSブロックチェーンは、51%スタイルの攻撃でネットワークを攻撃する不正行為者を処罰します。これはslashingと呼ばれ、正直なバリデータが不正なバリデータをネットワークから排除し、その残高を引き落とします。必要なステーク資金の金額がかなり高いので、不正行為者が攻撃に踏み切りにくくなります。Ethereumの場合は32 ETHです。

PoSの利点:

  • PoWと比べてエネルギー消費が少ない
  • PoWよりもレイヤー-2ソリューションと組み合わせるのにより適している
  • コンセンサスはブロックが渡される前に確立されるため、より高いスループットを実現できる。
  • 新しいブロックを作るためにエリート向けのハードウェアを必要としないので、PoWブロックチェーンよりもコストが低い。

PoSの欠点

  • ステークされたトークンが大量のバリデータがネットワークに影響を与えられる場合、PoSシステムは依然として中央集権化の対象になり得ます。
  • PoWブロックチェーンに比べてセキュリティ面で実証が少ない。

Proof of History(履歴の証明)とは?

Proof of History(PoH)は、Solanaブロックチェーンによって提示されたコンセンサスアルゴリズムで、ネットワーク上のすべての出来事にタイムスタンプを付与し、それが指定された時刻に実際に起きたことを証明するものです。 PoHは、取引を時系列順に確定する暗号学的な時計として説明できます。

SolanaはPoHのアプローチにPoSを組み合わせています。したがって、ネットワーク参加者はバリデータになるためにSOLをステークし、新しいブロックを処理しなければならず、PoHメカニズムはそれらのトランザクションがリアルタイムで起きていることの妥当性を検証します。言い換えると、PoHがセキュリティを維持し、PoSがタイムスタンプを検証してトランザクションを確定できるバリデータのネットワークを提供します。

しかしSolanaは、稲妻のように高速なトランザクションスループットを提供するために分散性を犠牲にしています。このブロックチェーンはセミ・セントラライズドなアーキテクチャに依存しており、単一のノードがリーダーとして選出され、その役割として「単一の時間の源」、つまりPoHクロックを実装することを担い、他のすべてのノードはそれに応じて時間のシーケンスに従わなければなりません。リーダーはPoSの選挙によって定期的に選ばれます。

Solanaは業界でも最速クラスのブロックチェーンの一つですが、それでも定期的に停止(ダウンタイム)に悩まされています。2020年のローンチ以来、ネットワークはおよそ10回のダウンタイムを経験しており、そのうち5回は2022年に発生しました。これらの障害の主な理由は「誤設定されたノード」です。

Delegated Proof of Stake(委任型プルーフ・オブ・ステーク)とは?

Delegated Proof of Stake**(DPoS)は、PoSの概念のバリエーションであり、コミュニティが中心的な役割を果たすものです。**

DPoSブロックチェーンでは、コミュニティのメンバーが自分たちの暗号通貨をステークして、ブロック生成のための次の証人(witness)またはデリゲートに投票します。これを行うには、ユーザーは自分のトークンをブロックチェーンのステーキングプールにまとめ、その資金を指定されたデリゲートに紐づける必要があります。

DPoSは、元EOSのCTOであるDan Larimerによって開発され、2015年にBitShares上でそのアルゴリズムが実装されました。Larimerや他のDPoS支持者たちは、次のバリデータを選ぶのはコミュニティであるため、DPoSは民主主義の範囲を広げる、と述べています。現在、TRONやCardanoのようなブロックチェーンはDPoSを使用しています。

ただしDPoSへの批判は、その方法論が裕福なユーザーに有利だという点です。トークンを大量に持つ人ほど、ネットワークに与えられる影響が大きくなります。Vitalik Buterinは最初期のDPoS批判者の一人で、ブログ記事の中で、このコンセンサスアルゴリズムは証人(witness)がカルテルを形成し、支持のために投票者へ賄賂を送ることを促す、と主張しました。

Proof of Authority(権威の証明)とは?

**Proof of Authority(PoA)は、許可されたメンバーだけがブロックチェーンとやり取りでき、トランザクションを実行し、ネットワークパラメータの変更を行う/提案すること、トランザクション履歴を確認することなどができるコンセンサスアルゴリズムです。 **

この用語は、Ethereum、Polkadot、Kusama Networkを共同設立したブロックチェーン開発者Gavin Woodによって考案されました。

PoAブロックチェーンでは、**すべてが評判(レピュテーション)に関することです—ネットワーク参加者はコインの代わりに自分の身元をステークしています。**限られた数のバリデータにのみ依存するため、より高いレベルのスケーラビリティとスループットが得られます。これはかなり強く中央集権化されたモデルだと考えるかもしれませんが、PoAブロックチェーンは通常プライベートであり、ブロックチェーン技術を使ってビジネスや運用システムを強化する企業や組織により適しています。

Proof of Elapsed Time(経過時間の証明)とは?

Proof of Elapsed Time(PoET)は、私的ブロックチェーンで最もうまく機能する別のコンセンサスアルゴリズムです。

PoETアルゴリズムは、最初にIntelのソフトウェア開発者によって提示され、私的ブロックチェーンや機関向けとして、Hyperledger Sawtoothに実装されました。

このアルゴリズムは、他のブロックチェーンほど人気がないかもしれません。十分に定義されていなかったからです。しかし、その狙いは、プライベートブロックチェーンが次のブロックプロデューサーを選べるようにする、既製のNakamotoスタイルのエンジンを提示することでした。では、どう違うのでしょうか?各ネットワークノードに対して「ランダムな待機時間」を生成し、その間、ノードは「sleep」しなければなりません。待機時間が最も短いノードが最初に起きて、チェーン上でブロックを生成する権利を勝ち取ります。

つまり主な違いは、PoETのマイナーは24/7で稼働しておらず、より少ないエネルギーを消費するという点です。さらに、PoWネットワークではマイナーが次のブロックヘッダーをハッシュ化するために競いますが、PoETではそれがよりランダムな選択システムになっています。

コンセンサスアルゴリズムFAQ:

Ethereumは、PoSへ移行したので、これから速くなるのですか?

よくある誤解は、EthereumはPoSベースのブロックチェーンになったことで自動的にスケールするというものです。しかし、この移行はEthereumを次のように強化するために行われました:

  • エネルギー消費の低減
  • ハードウェア要件をなくすことで、参入のハードルを下げる
  • ノードの不正行為に対する経済的ペナルティを導入する
  • トークン放出(emissions)の新しいモデルを導入する
  • Ethereum Layer-2ソリューションと連携するためのより良いインフラを整える。

**許可不要(permissionless)と許可制(permissioned)のブロックチェーンとは?: **

許可不要のブロックチェーンとは、誰でもトランザクションを作成したり、トランザクション履歴を確認したり、コインをステークしたり、バリデータになったりできるパブリックなブロックチェーンを指します。 一方、許可制(プライベート)のブロックチェーンでは、許可を持つメンバーだけがネットワークにアクセスしてトランザクションを作成したり、ネットワークノードとやり取りしたり、オンチェーンの活動を追跡したりできます。

PoWは最も安全なコンセンサスアルゴリズムですか? PoWにもそれなりの欠点はありますが、これまでのところ、ブロックチェーンにおいてネットワークのコンセンサスとセキュリティを維持するための最も実証され、信頼されている方法でした。

最終的な考え: コンセンサスアルゴリズムの解説

ブロックチェーンは、銀行や金融だけでなく、さまざまな業界における多くの課題や悩みを解決できる技術です。しかし、ブロックチェーンにもそれなりの後退(欠点)があります。そこで開発者たちは、中央集権化、スケーラビリティ不足、低スループットといった共通の問題に取り組むために、複数の種類やバージョンのコンセンサスアルゴリズムを作り出してきました。

ですが、ブロックチェーンアルゴリズムの未来について語るのは難しいです。最大の課題が「ブロックチェーントリレンマ」だからです。Vitalik Buterinによって最初に示されたこのトリレンマは、ブロックチェーンネットワークが3つの利点(分散性、セキュリティ、スケーラビリティ)のうち2つを提供できないというものでした。FantomやSolanaのような複数のブロックチェーンプラットフォームは、ブロックチェーントリレンマを解決しようとして、それぞれ独自のハイブリッド版コンセンサスアルゴリズムを実装してきましたが、これまでのところ本当に成功したものはありません。

他にもブロックチェーンの特性を改善するための技術的アプローチはあり、その中でも人気の一つがレイヤー2(layer-2s)です。これはレイヤー1に接続されたチェーン、たとえばEthereumのArbitrumのようなものです。そしてシャーディング(sharding)は、ブロックチェーン全体を多くの小さなネットワークに分割します。Buterinは、シャーディングこそが「完璧なブロックチェーン」の3つの特性を提供するうえで最良のアプローチだと考えています。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし
  • ピン