LISKのコンセンサスアルゴリズムであるDPoSに焦点をあてます。

Liskの公式WEBサイトを参考に記事にまとめました。

DPosとは

DPoSは、Delegated Proof of Stakeの略です。

委任PoSといった訳になるでしょうか。

かんたんに言うと、投票で選ばれた101人の代表者によって、取引が承認される仕組みです。

101人の選ばれ方

投票してもらいたい人は、Liskネットワークに、「デリゲータアカウント」と呼ばれるアカウントを登録します。

このアカウント登録をした人は、ほかのLSKホルダーから、投票(VOTE)を集めることができます。

投票者のLSKの保有量が多いほど、投票の重みが増します。

ネットワーク全体で最も投票率の高い、上位101のアカウントが、アクティブなデリゲータとなります。

上位101人以外の、他のデリゲータアカウントはスタンバイ状態です。

投票は流動的なので、アクティブなデリゲータと、スタンバイ状態のデリゲータは、よく入れ替わります。

新しいブロックの承認

アクティブな101人のデリゲータが、新しいブロックを承認します。

これはフォージング(鍛造)と呼ばれます。

一個のブロックをフォージング(鍛造)すると、デリゲータは、報酬として、新規発行されたLSKを一定枚数(現在は4LSK)貰えます。さらに、取引手数料(枚数は変動あり)も貰えます。

つまり、

フォージング(鍛造)の報酬

 = 固定報酬(ブロック報酬:4LSK) + 変動報酬(取引手数料)

ということです。

1個のブロックのフォージング(鍛造)にかかる時間は現在「10秒」に設定されています。

101個のブロックのフォージング(鍛造)のプロセス(約17分かかる)は、フォージングラウンド(forginf rounds)と呼ばれます。

各フォージングラウンドにおいて、各デリゲータは、それぞれ1個のブロックをフォージング(鍛造)します。

ただし、フォージング(鍛造)の順番は、ランダムです。

つまり、あるブロックをフォージング(鍛造)するデリゲータが、101人の中からランダムに選ばれ、そのデリゲータがブロックをフォージング(鍛造)したら、その後、別のデリゲータがランダムに選ばれ、次のブロックをフォージング(鍛造)します。

ひとつのフォージングラウンドが終わると、全ての取引手数料は、101人のデリゲータの間で均等に分配されます。また、フォージング(鍛造)したブロックに対する報酬(現在は4LSK)が発行されます。

ちなみに…

障害など、何らかの事情で、デリゲータが取引を承認できないときは、ブロックはフォージング(鍛造)されません。

10秒後、ランダムに選ばれた別のデリゲータが、そのブロックをフォージング(鍛造)することになります。

その場合、100人で101個のブロックをフォージング(鍛造)することになり、2個のブロックをフォージング(鍛造)するデリゲータが1人出現することになります。

そのデリゲータは、ブロック2個分の鍛造報酬と取引手数料をもらえることになります。

なお、この場合、時間が余分に10秒かかるので、新しいブロックがネットワークに表示されるまでに合計で20秒かかることになります。


以上、Liskのコンセンサスアルゴリズムについての解説でした。

みなさんの参考になれば幸いです。