前回は基本的な言葉の説明をしましたが、今回はPolkadotのDotトークンのステーキングの仕組みについてもう少し詳しく見てみます。
PolkadotではNominated Proof of Stake(NPoS)という仕組みが採用されています。NPoSとまた新しい用語が出てきたと思いますが、これはいわゆるDelegated Proof of Stake(DPoS)と本質的には一緒、DPoSの亜種だと考えて問題ないです。(かっこつけてまた無駄に新しい用語を当てているだけな気がします…)
前回説明した通り、これはつまりトークン保有者(Nominator)が投票でValidatorを決める典型的なDPoS型のモデルです。ただし、EOSなどの従来型のDPoSの仕組みと少し違うところがあるとすれば、Slashing(罰則)の概念とValidatorの報酬が固定化されていることです。(後述)
DOTのインフレ率
Stakingする前にDOTのインフレーションについて見てみましょう。
DOTにはビットコインなどとは違い、明確な固定の供給キャップは存在しません。毎年Validatorの為に新規発行されるトークン量は、ネットワーク全体のDOTトークンのStaking率に左右され、全体のDOTのうち50%がStakingされている場合1年目に約10%のインフレ率が設定されています。
Staking率が50%以下、もしくはそれ以上だと、Validatorに新規発行される報酬は引き下がっていき、差分は財団が管理するTreasuriesに送られます。このような仕組みをとることで、ある程度高いStaking率を奨励しつつ、同時にStaking率が高くなりすぎてDOTトークンの市場での流動性が損なわれるのを防ごうとしているようです。(仮に100%のDOTトークンがステークされていたら、誰もDOTトークンの新規の売買が出来ませんよね)
Stakingをしないと単純計算で10%自分のコインの価値が減衰してしまうので、Stakingをしないリスクも結構あるといえます。
実際にDotをStakingしてみよう
さて、それではもう少し細かくPolkadotのStakingの仕組みを見ていきましょう。インフレが存在することでStakingをしないと自分のコインの価値が減衰していってしまうため、DOTホルダーは基本的にStakingをしてインフレリスクを避けて行きたいはずです。
Stakingの仕方は保有金額に応じてベストプラクティスが変わってきますが、今回自分はテストで少額をimtokenというモバイルウォレット上でStakingしたのでそれで話を進めます。
ちなみにPolkadot対応のウォレットは以下のサイトなどでまとめられていますが、すでに複数十分に機能的なWebウォレットや、モバイルウォレットも存在するようです。
imtoken上でのDOTのやり取りは非常に簡単でした。DOTトークンのオンチェーン上の送受信は通常のビットコインのオンチェーンのUXと同じですし、imtokenのインターフェース上からStakingにも簡単に参加出来ました。Polkadot上でのStaking投票(Nomination)は最大で16までバリデーターを同時に選択できます。
自分も実験で適当に16選んでStakingしてみましたが、ちょっとこの画像を見て変なところに気づくでしょうか?
Commissionが100%のValidatorが複数いますね。Commissionが100%ということは、これらのValidatorにStaking投票しても自分は全く報酬がもらえないことになるので、本来ホルダーがこれらを選択するインセンティブはないですし、なぜValidatorがわざわざ投票されるのを拒否するようなことをしているのか変な感じがします。実はこれはPolkadotのStakingとValidatorの報酬体系の重要な特徴に起因します。
Validatorの報酬は固定化されている
Proof of Stakeの仕組みでは一般的にThe rich gets richerなどと言われて、保有しているコインの量が多いほどStakeして得られる報酬も増えていきます。EOSのようなDPoSの仕組みでも基本的にたくさん投票されたValidator(EOSの場合Block producers)が投票数に応じて報酬が多くもらえるような仕組みです。
一方、Polkadotの場合Validaotrの枠の数に限りはありますが、Delegateされているコインの数とステーキング報酬は比例せず、Validatorの間で一律固定です。これは各Validatorは基本的には同じ作業をしているので、同じ作業に対しては同じ報酬が払われるべきだという考えがあるのと、Stakingを特定のValidatorに集中させないための工夫と言えます。
具体例を見てみましょう。例えば自分が1,000DOTを保有していて、9,000DOTすでにStakeされている最大のValidatorに全て投票した場合、自分はそのValidatorのStakingシェアの10%を占めていることになります。この時、固定のValidator新規報酬が1,000DOTだった場合、自分の取り分は1,000×10% = 100DOTとなります。
一方、Validatorの枠にギリギリ滑り込むくらいの、1,000DOTしかStakeされていない下位Validatorに投票した場合、自分の保有シェアは単純計算で50%になります。その場合、同じ1000DOTをStakeしたとしても、自分の報酬は500DOTまで上昇することになります。(実際にはもう少し複雑ですが、単純化しています)
つまり、Validatorに投票するトークン保有者(Nominator)は、手数料が低くて信頼できるValidatorを選ぶだけでなく、出来るだけ下位のValidatorに投票してStaking効率の上昇と報酬の最大化を目指すインセンティブがあるわけです。こうすることで市場原理で特定Validatorへの投票の集中化を予防していく狙いがあるようです。