見出し画像

コンセンサスに対する直接的なアプローチ

はじめに

現在様々な暗号資産/ブロックチェーンはそれぞれ主要なまたは独自のコンセンサスの仕組みを搭載しています。
PoWやPoSなどがよく知られていますが、どのようにコンセンサスを行っているのでしょうか?コンセンサスの側面から考えてみましょう。

なぜコンセンサスが必要か?

そもそもそのコンセンサスで何を成し遂げようとしているのでしょうか?

それはそのネットワークの参加者との合意を行うためです。

最小限のコンセンサス

私とあなたが取引を行い、そこで発生したお金のやり取りについて私が送金し、あなたが受け取ったことに両者が合意しなければなりません。
相手が送信したデータと私が受け取ったデータが同一であることに両者が合意しなければなりません。

二者が1つの物事を達成しようとする場合に、両者によるコンセンサスが必要になるのです。

少し広いコンセンサス

これは二者ではなくより多い人数でも同様です。

例えば10人の友人グループの中での旅行先を決める場合、それぞれがどこに行きたいかを提案するでしょう。 みんなが同じ場所へ行きたいというかもしれないですし、みんなが違う場所へ行きたいと思うかもしれません。

その中で10人は「旅行を行う」という目的を達成するために「話し合い」、一部の人は他の人の場所へ選択を変えることで「妥協」を行い、1つの目的地を決定します。つまりここで1つのコンセンサスが達成されるのです。

グループの内1人はどうしても自分の行きたい場所は譲れないかもしれません。残りの9人は1つの目的地について合意しているため、旅行計画を立てますが、ここでその1人が妥協してその旅行に参加するか、参加しないかはその人次第です。他の9人は参加を強制できません

また「旅行に行く」という目的を達成するために話し合いをしている中で、別の話題を出し、話し合いを阻害する人は異なるコンセンサスの達成を行おうとしているとみなされます。別の話題を出した人により本来のコンセンサスの達成が難しくなると判断された場合は、彼らとのコンセンサスは行わないようになるでしょう。

コンセンサスを取りたい人と自由にコンセンサスを取るだけなのです。

大規模なコンセンサス

「国」は共通のコンセンサスを達成することを目的とする人たちの集合体とも言えるかもしれません。

一人一人の意見は大きく異なるかもしれませんが、みんなそれぞれの考えを「主張」しつつも「妥協」しながら社会を作り上げていっています。特定の行為を行なった人には罰則が与えられるという点でも多くの人により結果的に合意されています。

コンセンサスに合意できず、それを阻害しようとする人は社会から無視されます。
私が自分自身を「アイアンマン」と主張することはできますが、他の人はそれを無視するでしょう。 あなたが社会のコンセンサスに従って「万引きしない」のか、逆らって「万引きをする」のかは自由ですが、共通のコンセンサスに逆らう人は他の人からはコンセンサスを取りたいとは判断されません。 

この「国」で他の人と妥協と合意の中で生活していくかどうかを決めるのは個人の自由ですし、その国のコンセンサスに合意できなければ他の国に移住することもできます。

ネットワークの大小に関わらず共通のコンセンサスの達成のために動く人たちは1つのネットワークとして機能するのです。

コンセンサスの実装

PoW(Proof of Work)

PoWは計算力を使いコンセンサスの達成を目指す方法です。

Bitcoinにおいて採用されています。

PoWネットワークの参加者はネットワーク内の計算力が高いバリデータとコンセンサスをとります。つまり、参加者はネットワーク内の計算力が高いバリデータの決定に大きな影響を受けることになります。

全ての参加者は「計算力が過半数以上の個別または複数のバリデータの決定」を受け入れることになり、「過半数未満のバリデータのみによる決定」を受け入れることはありません。

計算力が過半数以上の個別または複数のバリデータが不正なコンセンサスを達成しようとしたと考える場合、参加者はそのままネットワークに参加し続けるか、別の正しいコンセンサスを達成するためのネットワークを形成するかの選択が必要になります。

また、現在個別または複数のバリデータの計算力の合計が51%を超えないようにするような直接的な仕組みは存在していません。

PoS (Proof of Stake)

PoSは資金力を使いコンセンサスの達成を目指す方法です。

Ethereumにおいて採用されています。

PoSネットワークの参加者はネットワーク内の資金力が高いバリデータとコンセンサスをとります。つまり、参加者はネットワーク内の資金力が高いバリデータの決定に大きな影響を受けることになります。

全ての参加者は「資金力が過半数以上の個別または複数のバリデータの決定」を受け入れることになり、「過半数未満のバリデータのみによる決定」を受け入れることはありません。

資金力が過半数以上の個別または複数のバリデータが不正なコンセンサスを達成しようとしたと考える場合、参加者はそのままネットワークに参加し続けるか、別の正しいコンセンサスを達成するためのネットワークを形成するかの選択が必要になります。

また、現在個別または複数のバリデータの資金力の合計が51%を超えないようにするような直接的な仕組みは存在していません。

PoA (Proof of Association)

もしかしたら聞いたことがないという方も多いかもしれません。
PoAはコンセンサスを取りたい相手と共にコンセンサスの達成を目指す方法です。
どちらもPoAと表記しますが、Proof of Authorityとは異なります。本記事内のPoAは全てProof of Associationを指します。

XRPレジャーにおいて採用されています。

PoAネットワークの参加者は自身がコンセンサスを取りたい相手とコンセンサスを取ります。つまり、参加者は自身が選択した相手の決定に大きな影響を受けることになります。

それぞれの参加者は「自身がコンセンサスを取りたい相手のうちの大多数(80%)を超えるバリデータの決定」を受け入れることになり、「大多数(80%)未満のバリデータのみによる決定」を受け入れることはありません。

自身が選択したバリデータのうち大多数(80%)を超える複数のバリデータが不正なコンセンサスを達成しようとしたと考える場合、参加者はそのままネットワークに参加し続けるか、正しいコンセンサスを達成すると考える別のバリデータセットの選択が必要になります。

PoAでは自身が選択したバリデータに投票力の優劣はなくそれぞれが平等な投票力を保持します。そのため、複数のバリデータを選択した時点で1つのバリデータが80%を超える投票力を保持することは不可能です。

また、自身のリストは自由に変更可能であるため、自身が望むコンセンサスとは異なるコンセンサスを達成しようとするバリデータはいつでも自由にリストから削除することが可能です。そのため自身がリストを正しく設定・調整する限り、80%を超えるバリデータにより自身が望まないコンセンサスが達成されることはありません。

まとめ

コンセンサスそのものは我々の日常生活において無意識または意識的に行なっています。大多数の人によるコンセンサスネットワークによって社会やコミュニティが形成されているのです。

PoWやPoSでは計算力や資金力を使って間接的に参加者がコンセンサスを取る相手を決定しています。一方PoAでは参加者自身において直接コンセンサスを取る相手を決定しています。

PoAの仕組みは他のPoW,PoSに比べ、コンセンサスに対する直接的なアプローチをとっていると考えることができるでしょう。

この記事が気に入ったらサポートをしてみませんか?