ビットコインの情報サイトの運営者ブログ

サイトには掲載していない仮想通貨に関する時事的な情報や個人的な感想など。中級者以上向け。

LiskのDPOSとBitSharesのDPOSの違い

今月24日にLiskがリリース予定ということで、Lisk関連の話題を一つ。LiskはEthereumとコンセプトがほぼ同じものですが、コンセンサスアルゴリズムにProof of WorkやProof of StakeではなくDelegated Proof of Stake(DPOS)を採用しています。そこでオリジナルのBitSharesのDPOSとLiskのDPOSの比較をしてみたいと思います。

DPOSとは?

Proof of WorkやProof of Stakeの代替となるDelegated Proof of Stakeと呼ばれるコンセンサスアルゴリズムでDPOSと略されます。2014年にスタートしたBitSharesで初めて採用されました。(普通に略すとDPoSになりそうですが、BitSharesではすべて大文字のDPOSという呼称を使っています。)

DPOSは一言でいえば間接民主制のようなシステムです。仮想通貨の保有者による投票プロセスを経て取引の承認者(ビットコインではminer、BitSharesではwitness、Liskではdelegateと呼ばれる)が選出され、選出された承認者がブロックを生成します。

ブロックチェーンの基軸通貨の保有者にはその通貨の保有量に応じて投票権が割り当てられるため、Delegated Proof of Stakeという名前がつけられています。Proof of Stakeという名前はついているものの、不特定多数が誰でもブロックを生成できる可能性のあるオリジナルのProof of StakeやProof of Workとはかなり異なるもので、むしろRippleやその他プライベートチェーン系の多くのコンセンサスアルゴリズムに近いイメージのものです。プライベートチェーンでは取引の承認者を特定の管理者が選びますが、DPOSでは不特定多数が承認者を選ぶことになります。

LiskのDPOSとBitSharesのDPOSの違い

LiskのDPOSはBitShares1.0のDPOSをもとにしており、現在のBitShares2.0とは微妙に異なるものになっています。

ブロック生成報酬の財源が違う

DPOSでは取引の承認者にインセンティブとなる報酬が与えられます。この報酬の財源が異なります。

BitSharesでは間接的ではありますが、基本的には取引手数料から支払われており新規に仮想通貨が発行されることはありません。「取引手数料」→(Reserve Pool)→「承認者」というかたちです。一旦Reserve Poolという場所にプールしておくことで、承認者への報酬をランダムではなく一定にできるというメリットがあります。

Liskは取引手数料に加え新規に発行される仮想通貨(LISK)が報酬になります。1年目は5LISK/ブロック、2年目は4LISK/ブロック、・・・と1年に1LISK/ブロックずつ減少し、5年目以降は1LISK/ブロックになります。

つまりBitSharesには発行上限がありますが、Liskには発行上限はありません。

承認者(witness/delegate)の数が違う

BitSharesでは承認者を20人前後としていますが、Liskでは承認者が101人います。101人というのはBitShares1.0がもともと採用していた人数です。一見承認者が多いほうが分散的で良いように思われるかもしれませんが、BitSharesでは以下の理由で承認者の数を減らしたものと考えられます。

ブロック生成報酬のコストがかさむ(一人一人の報酬が少なくなる)

Liskとは異なり、BitSharesでは限られた財源からブロック生成の報酬を与えなければなりません。このため、承認者が多くなりすぎるとそれだけ支払う報酬も多くなってしまい「財政破綻」してしまう可能性があります。逆に破綻しないように一人一人の報酬を抑えれば承認者になるインセンティブが少なくなり、誰も承認者になろうとしなくなる恐れがあります。

多すぎると候補者を評価できない

最初に書いたようにDPOSとは間接民主制のようなシステムです。つまり、有権者(仮想通貨の保有者)は取引の承認者の候補者を一人一人評価して投票しなければなりません。承認者が多すぎるとその中に悪意を持った人間がいるのかどうか分かりづらくなってしまうデメリットがあります。

CommiteeメンバーやWorkerがいない

DPOSとは直接関係ないかもしれませんが、BitSharesには承認者以外にもCommitteeやWorkerと呼ばれる役割があります。Committeeメンバーは取引手数料などに関するブロックチェーンの仕様変更を提案する人で、Workerは機能拡張などのブロックチェーンの改良その他BitSharesに寄与することを提案・実行する人のことです。CommitteeメンバーやWorkerの提案も承認者の選出と同様に投票により決定されます。

Liskにはこれらの役割がなく、主に開発者主導でブロックチェーンの仕様変更・改良などを行うことになります。

DPOSのメリットは?

ではPoWやPoSと比較したときのDPOSのメリットとは何なのでしょうか?主に以下の二つが考えられると思います。

①取引の処理能力が高い

PoWやPoSではnonceの探索のためにブロック毎にハッシュの計算を行いランダムに承認者を選出するため、どうしても時間がかかってしまいます。一方で、DPOSでは一定期間ごとに承認者を選ぶだけであとは承認者も承認の順番も決められた中で淡々とブロックを生成するだけなので、低コストで取引承認が行えます。現在のところ、BitSharesのブロック生成間隔(取引承認時間)はわずか3秒で、公称の処理能力は100,000tps(取引/秒)とされています。現在のEthereumの25tpsとは圧倒的な差です。

②より分散的である

この点はかなり議論が分かれると思います。誰でもブロック生成に参加できるものの6つのマイニングプールが90%以上の採掘力を占めているビットコインと、20ないし101のみが取引承認を行うBitShares/Liskのどちらが分散的でしょうか?この議論だけで1記事書けそうなので軽く触れるだけにしておきます。

ちなみにBitSharesは20でも十分分散的であるという立場ですが、Liskの開発チームは不十分なら101から増やしてもいいよ、という立場のようです。

DPOSは安全か?

理論的にはRipple他のプライベート型のコンセンサスアルゴリズムをうまくパブリック型にもってきた感じがします。しかし、安全かどうかは正直わかりません。唯一Proof of Workはビットコインが大丈夫だからまあ大丈夫だろうと言えるかもしれませんが、PoWに次いでポピュラーなProof of Stakeもまだまだ実験段階ですし、さらにマイナーなDPOSは評価不能です。本当に安全かどうかはもっと参加者が増えて時が経たないとわからないでしょう。