xx labsチームは、2022年1月21日、権利確定スケジュールの修正を推し進めています。
機能一覧
BetaNetステーキングリワードプログラムの制定に伴い、xx networkのほとんどのウォレットに新しいベスティングスケジュールが追加されました。xx labsチームは、これらの新しい権利確定スケジュールを計算する際に発生したエラーを特定し、正しいスケジュールを復元するための修正プログラムを開発しました。
今回は、まずxx networkの権利確定がどのように行われるのかを深く掘り下げていきます。
そして、BetaNet Staking Rewardsプログラムの導入経緯、導入後に判明した問題点、そして誤った権利確定スケジュールの修正を含む問題点の解決方法について説明します。
最後に、改訂されたすべての権利確定スケジュールを、以下のサイトで公開しています。 https://vesting.xx.network をJSONデータ形式で、また、権利確定グラフを含むPNGファイルを添付しています。また、前述の問題の結果、コインホルダーに影響を与えたさまざまなシナリオの例も提供しています。
2022年1月21日にこれらの修正を推し進める予定です。
ベスティングスケジュールとは
権利確定とは、従来ストックオプションで用いられていた概念で、ストックユニット数の付与が行われるが、そのユニットが与えられるだけで、(それらが ベスト)を、四半期ごと、年ごとなど、時系列に分割して表示します。
xx networkの文脈では、コンセプトは似ていますが、実行は異なります。授与されたコインの全額が受領者のアカウントに直接付与されますが、以下のような権利確定スケジュールが設定されています。 錠前 を一定期間ロックすることができます。ベスティングのためにロックされたコインは、ネットワーク上のあらゆる操作に使用することができます(但し、「ベスティングのためのコイン」として使用することはできません)。 遠慮がち コイン)は、他のアカウントに移すことはできません。そして、権利確定中のコインは、ブロックごとにロックが解除されます。
xx networkの権利確定スケジュールは、3つのフィールドで構成されています。
- 権利確定によりロックされる金額。 ロックd
- 各ブロックのロックを解除する金額です。 ブロックあたり
- コインのロックが解除され始めるブロック。 スターティングブロック
私たちは、権利確定スケジュールを使って、コインに2つの異なるタイプの制限を加えることができます。それは、指定された期間、全額をロックするか、または、ある時点から始まり、同様に指定された期間を持つ、線形のロックを解除することです。
事例紹介:
ベータネットノードで毎月7000枚ずつ与えられるコインの権利確定スケジュールは次の通りです。
- ロックd:7000
- ブロックあたり:7000
- スターティングブロック:1123200
この例では7000枚をロックし、ブロック1123200でロック解除を開始し、ブロックごとに7000枚ずつロック解除しています。これは事実上、この7000枚のコインが1123200ブロックまでロックされ、1123201ブロックで完全にロックが解除されることを意味します。1123200ブロックは1123200/(24時間*1時間あたり600ブロック)=78日に相当するので、この例は2021年1月のBetaNet報酬に対するもので、ロックは2022年2月1日に終了することを意味します。
BetaNetのステーク報酬として付与されるコインの権利確定スケジュールは以下のとおりです。
- ロックd:23812
- ブロックあたり:0.009186728
- スターティングブロック:432000
この例では、23812枚をロックし、ブロック432000でロックを解除し始め、ブロックごとに0.009186728枚ずつ解除しています。つまり、23812枚のコインはブロック432000までロックされ、その後ブロックごとに0.009186728でロック解除され始めるということです。ロックされたものをper_blockで割ると、権利確定までの期間が計算できます。23812/0.009186728 ~=2592000ブロック、つまり2592000/(24*600)=180日です。つまり、権利確定が始まってから6ヶ月後、432000/(24*600)=メインネット開設後30日で完全にアンロックされることになります。
Betanet ステーキングリワード
2021年3月、チームはBetaNet Staking Rewardsプログラムを発表し、メインネットローンチ時点のすべてのコイン保有者に適用される。このプログラムのAPYは50%で、2021年3月1日からメインネットの立ち上げまで、利息は毎日計算されます。3月1日以降に受け取ったコインは、付与された日からしか利息が発生しません。報酬額は、コイン保有者ごとに計算され、メインネット立ち上げ前にジェネシスブロックのスプレッドシートに掲載されました。genesisブロックでは、報酬額は請求モジュールで各コインホルダーに設定され、またはBetaNet Staking Rewardsモジュールで直接設定されました。
このプログラムでは、以下のような報酬オプションを用意しました。
- 権利確定はなく、2%の報酬が与えられる。
- 元本+報酬の100%に対して1ヶ月の権利確定、報酬の12%が付与される。
- 元本+報酬の90%に対して3ヶ月の権利確定、報酬の45%が付与される。
- 元本+報酬の80%で6ヶ月の権利確定、報酬の合計が与えられます。何も選択しない場合はデフォルトでこのオプションになります。
- 元本+報酬の100%に対して9ヶ月の権利確定、報酬の120%が付与される。
BetaNetステーキングリワードモジュールは、プログラムの必要な機能をサポートするために設計されました。このモジュールは、xx networkアドレスにコインを請求したユーザーが、希望するオプションを選択できるようにしました。さらに、このモジュールは、メインネットの立ち上げから30日後に設定された制定ブロックで構成されました。これは、コミュニティの投票によってプログラムが承認されるまでの時間を確保するために必要でした。プログラムは国民投票によって承認され、コインホルダーは1週間の間に投票を行った。
制定ブロックでは、プログラムが実行され、メインネットのステーキング報酬プールからすべてのコイン保有者に報酬が与えられ、選択したオプションに従って権利確定スケジュールが適用されました。デフォルトのオプションである6ヶ月の権利確定は、残っているすべての請求に自動的に適用され、請求額に報酬額が追加され、権利確定スケジュールが追加されました。
既存の課題
チームは、BetaNetのステーキングリワードプログラムの制定に影響する3つの問題を特定しました。
- ロックされる金額は、報酬が元本に加算された後に計算されます。つまり、ロック = 0.8 * 元本 + 報酬ではなく、ロック = 0.8 * (元本 + 報酬) + 報酬となります。この結果、多くの残存請求において、ロックされる金額が予想以上に高くなりました。
- 権利確定計算 - ロックされる量は、必要なロックを取り、制定ブロックにおいてすでにロックされている現在の量を差し引くことによって計算された。これは、既存のロックを維持しながら報酬から必要な量をロックする最善の解決策であり、その結果、権利確定ロックは常に以前より高くなりました。しかし、多くのシナリオでこの解決策は、プログラムで要求される値よりも低い値をロックすることになり、異なるオプションを選択したコイン保有者の間で不公平な状況が発生する可能性があります。さらに、ロックされた値が必要以上に高く始まり、その後、許容値よりも低くなるケースもあります。
- 不正なリワード支払い - 2つの別々の請求、1つは権利確定スケジュールなし(例えば、最初の販売による)、もう1つは権利確定スケジュールありのユーザーを考えてみてください。両方が同じ住所に請求された場合、2つ目の請求のリワード値のみが保持されます。つまり、最初の請求による報酬額は、制定ブロックでは支払われなかったということです。この特別な問題は、3枚のコインをお持ちの方にのみ影響します。
課題の解決
以前、フォーラムでお知らせしたように ポストは、追加機能を追加したブロックチェーンランタイムのアップデートを提案しました。これには、技術委員会が全会一致で、ClaimsモジュールとVestingモジュールの権利確定スケジュールを修正する能力を付与する2つの機能が含まれていました。このアップグレードは国民投票で承認され、先週の木曜日(1月13日)に実施されました。
これらの特権的な関数は、誤った権利確定スケジュールを修正するためにチームによって使用され、その後、さらなる実行時アップグレードでできるだけ早く削除される予定です。
新しい権利確定スケジュール
すべてのコイン保有者の権利確定とベータネットステーキングリワードプログラムの情報は、以下のサイトでご覧いただけます。 https://vesting.xx.network.
各コインホルダーに、以下の情報を含むJSONファイルがあります。
- 元本:創世記に存在したコインの量
- 報酬: 選択されたオプションに応じて調整された報酬。
- オプション:BetaNetステーキングリワードプログラム 選択されたオプション
- 権利確定: 権利確定に関するすべての情報
- オリジナル:創世記に存在した権利確定スケジュール
- betanet_rewards: betanetのステーキングリワードで要求される権利確定スケジュール
- on_chain: 現在チェーン上にある権利確定スケジュール
- 計算される: 固定した権利確定スケジュール
- incorrect_on_chain: オンチェインベストが不正な場合に指定するフラグ
各コインホルダーに、ブロック番号の関数としてロックされたコインの量を示す3つのグラフを含むPNGファイルがあります。これらのグラフは、異なる権利確定スケジュールによってロックされたコインの量を、時系列で簡単に比較することができます。
- オリジナルの権利確定(左):このグラフは、オリジナルの権利確定スケジュール(青)と、ベータネット・ステーキング・リワードで要求されるもの(オレンジ)を示しています。プログラム制定後、ロックされる金額は常に最も制限されたもの、すなわちmax(original, betanet_rewards) でなければなりません。
- オンチェーン・ベスティング(中央):このグラフは前のグラフと同じ情報を示していますが、オンチェーン・ベスティングのスケジュールをオーバーレイ(緑)しています。ここで、コインホルダーは現在の権利確定が無効かどうか、より多くのコイン、より少ないコイン(または両方)をロックしているかどうかをすぐに確認することができます。
- 新しい権利確定(右):このグラフは最初のものと同じ情報を示していますが、新しい(固定)権利確定スケジュールをオーバーレイ(緑)しています。ここでコインホルダーは、発見された問題を解決するためにチームによって設定される権利確定スケジュールを見ることができ、見ることができるように、常にオリジナルとbetanet報酬の権利確定間の最大値に従います。このグラフが真ん中のグラフと同じであれば、オンチェーンのベスティングはすでに正しいということです。
各JSONファイルおよびPNGファイルのファイル名は、コイン保有者のxx networkアドレス、またはブロック870000の時点でコインが請求されていない場合はETHアドレスとなります。 コミュニティの皆様には、それぞれの情報を確認し、問題があればチームに連絡することをお勧めします。
メソドロジー
必要な情報はすべて、ジェネシスブロックと各ブロックのオンチェーン状態から直接コンパイルされました。すべてのファイルを生成する際、問題を検出し、修正するために、複数のチェックが行われました。固定権利確定スケジュールの計算は、オリジナルのスケジュールを調整し、必要に応じてベータネットの報酬スケジュールの一部を追加することによって再帰的に行われ、その結果、すべてのブロックで必要なロックと一致し、両タイプのスケジュールの間でちょうど最大となるようにされました。
さまざまなシチュエーションの例
オリジナルロックのない残クレーム、課題1を表示
1号と2号の両方が表示されるオリジナルロック付き残クレーム
オリジナル・ロックの残存請求権だが、正しい権利化
オリジナルロックのホルダー、問題2により予想以上にロックが高いことがわかる。
オリジナルロックのホルダー、問題2により初期にロックが高くなり、その後予想より低くなったことを示しています。
オリジナルロックのホルダーですが、正しいベスティングです。
オリジナルロックがないホルダーですが、正しいベスティングです。
オリジナルロック付きホルダー、バグ1を表示、制定後のクレームのため