BinanceSmartChain (以下、BSC)が凄まじい勢いでトランザクションを増やしています。go-ethereum をベースとし、Ethereumのエコシステムを引き続きつつ、ステークによるコンセンサスアルゴリズムで早く・コストが安いトランザクションを実現しています。実際BSCにトランザクションを流してみると、BitcoinやEthereumメインネットが一世代前のものに見えます。
当初から言われているとおり、BSCの「早さ安さ」というのはセキュリティとのトレードオフで実現されています。今日は、BSCのコンセンサスアルゴリズムの中核となるProof of Staked Authorityがどんなものか本家ドキュメント から抜粋翻訳してみます。
Proof of Staked Authority
プルーフ・オブ・ワーク(PoW)は、分散型ネットワークを実現するための実用的な仕組みとして承認されていますが、環境に優しくない上に、セキュリティを維持するためには大規模な参加者を必要とします。
Proof-of-Authority(PoA)は、51%の攻撃に対してある程度の防御を提供し、効率性を向上させ、一定レベルのビザンチンプレイヤー(悪意のあるプレイヤーやハッキングされたプレイヤー)に対する耐性を持たせています。一方、PoAプロトコルは、バリデータ、すなわちブロックを生成するために交代で参加するノードがすべての権限を持ち、腐敗やセキュリティ攻撃を受けやすいため、PoWほど分散化されていないという点で最も批判されています。
EOS やCosmos のような他のブロックチェーンでは、トークンホルダーが投票してバリデータセットを選出できるように、異なるタイプのDPoS(Deputy Proof of Stake)を導入しています。これは分散化を高め、コミュニティガバナンスを促進します。
コンセンサスのためにDPoSとPoAを組み合わせるために、Binance Smart ChainはParlia と呼ばれる斬新なコンセンサスエンジンを実装しています:
- ブロックは限られたバリデータ集団によって生成されます。
- バリデータは交代でPoA方式でブロックを生成します、これはEthereumの
Clique
コンセンサスエンジンに似ています。 - バリデータ集団は、Binance Chainのステークスベースのガバナンスに基づいて選出されます。
- バリデータ集団の変更は、クロスチェーンの通信メカニズムを介して中継されます。
- Parliaのコンセンサスエンジンは、システムコントラクトのセットと相互作用して、活気のあるスラッシュ、収益の分配、バリデータ集団の更新機能を実現します。
どうやら、以下のような仕組みのようです
- BSCはParliaというDPoS+PoAの仕組み
- BSC外で決められた21人のバリデータ集団が交代でブロックを生成
BNBのステークスベースとなれば、実質Binance社のオフチェーンとあまり変わらないようにも見えます。Binance社が強力な権力を持っているチェーンなので、Binanceが信じられない人は使うべきではないのでしょう。もしそうでなければ、フラストレーションのないEVM環境というのは非常に魅力的です。今後もBSCをチェックしていきたいと思います。