Blockchain: Polkadot
Polkadot の合意メカニズムは従来の Ethereum と同様に PoW に基づきチェーンの分岐が発生する BABE という機構と、分岐した枝のどれが採用されるかを選択する GRANDPA [1] という機構の 2 つに分かれている (彼らはこれをハイブリッドコンセンサスと呼んでいる)。つまり BABE が非決定的な処理シーケンスを作成し GRANDPA が合意に相当するアルゴリズムを実装する。
Table of Contents
BABE
BABE (Blind Assignment for Blockchain Extension protocol) は Ouroboros Praos から派生したアルゴリズム。1 つのブロックを生成する単位をスロット
BABE は全ての Validator が同じ量の Stake を持っているため、スロットリーダーの選出確率は全て同じである。
GRANDPA
他の多くの合意アルゴリズムが生成されたブロックごとに検証済みの整合性とチェーンの接続で合意するのに対して、GRANDPA は PoW により発生した分岐のどれを採用するかを決定する目的で分岐に対して合意を行う。
GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement) のアルゴリズムはチェーンの分岐がツリー構造となる性質をうまく利用した投票に基づいている。PoS によって選出された委員会のメンバーそれぞれは、自身が妥当と判断した位置のブロックに投票する。チェーンの分岐は自然にツリーの形となるため、根に向かって票数を加算して行き、(想定するビザンチン数を
Fig 1 はこのスキームに従い
委員会のメンバーはそれぞれどの分岐に投票したかについて合意しなければならない (さもなくば委員メンバーに紛れ込んだビザンチンノードがある方面には
- 1 Byzantine Finality Gadgets (2019) (日本語訳)
