Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

合意形成アルゴリズムの種類と特徴

More than 3 years have passed since last update.

合意形成とは

合意形成とは

ステークホルダー(多様な利害関係者)の意見の一致を図ること。特に議論などを通じて、関係者の根底にある多様な価値を顕在化させ、意思決定において相互の意見の一致を図る過程のことをいう。コンセンサスともいう。特に国民全体の合意形成をはかることをナショナル・コンセンサス、合意形成を図る過程のことを合意形成過程ともいう。

という一般的な意味がありブロックチェーン上では、参加者が次のブロックを作る際正しいブロックはどれか、ネットワーク全体として正しいかを参加者全員で決めることを指しています。

PoW(proof of work)

これはBitcoinなどで使われているものでハッシュ計算などを行い指定された問題を最初に解いた人に次のブロックを作る権利を与えるといったものです。

特徴

参加者が少ないとき・問題の難易度が低い場合・ネットワークが始まったばかりでは比較的他者に悪意のある攻撃を受けやすいですが成熟してくるとブロック全体の値を改ざんすると言った行為が難しくなるといった特徴があります。
また、問題の難易度が低すぎても意味が無いため平均すると次のブロック作成までに10〜20分程度で解ける問題難易度に設定していることが多いです。
参加者が増えれば増えるほどネットワークが強固になっていくのが特徴です。

PoS (proof of stake)

最近Ethereumで用いられているアルゴリズムで所持しているコイン以下の値が計算できたらブロック作成の権利を与えると言ったものです。これはコインを多く所持しているユーザーは自分のコインの価値を下げるような行為をしないといった考えからできたものです。

特徴

PoWの場合51%以上悪意のあるユーザが参加してしまうとネットワークが乗っ取られてしまうという問題点が存在します。その問題点を解決するために考えられたのがPoSです。
また、PoWの計算にはコストがかかりすぎるのでそれを改善するために考えられた方法でもあります。
多くのコインを持つユーザーがマイニングをしやすいと言った特徴とそれほど電力を消費させないという特徴があります。

PBFT

こちらはHyperledger Fabricで用いられている(用いられる予定)のアルゴリズムです。
こちらは単純で全ネットワークの合意形成を決めるリーダーを決めておき、リーダーの言ったとおりに合意形成を行うと言ったものです。

特徴

リーダーが全合意形成を決定するため合意形成にかかる時間が圧倒的に少ないこと、ファイナリティが高いといった特徴があります。
ただし、リーダーが信用出来ないとネットワーク全体が信用できなくなってしまいます。

最後に

合意形成の方法は様々で利用するネットワークで今後どのようにしていきたいかで使われるものが変わっていくかと思います。
合意形成をしっかりとしたものにしたいと思ったらPoWやPoSを使い、次のブロックを早く作成したいなどと思った場合はPBFTを使うと言った形です。

Ruly714
これまでネットワーク系を出来る限り触れないようにしてきたツケを新卒になってブロックチェーンを習得しろという業務命令により精算しているSEです。 動的言語よりはC++のような静的言語が好きです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away