SUIのステーキングについて、あなたが知らないかもしれないハードコアな知識
著者:Sui Network
SUI の主な用途
- PoS:委任証明機構に参加するために使用されます
- ガスメカニズム:ネットワーク取引およびストレージ料金の支払いに使用されます
- 流動性:Sui 経済においてオンチェーンのネイティブ流動性を提供します
- コミュニティガバナンス:Sui の未来のガバナンスに影響を与える可能性があります
ステーキングプロセス
Q1:ステーカーとは何ですか?
Sui アドレスを持つ誰でも、選択した1つまたは複数の検証ノードに SUI をステークすることでステーキングを行うことができます。ステーカーには、SUI をステークする検証ノードや第三者の SUI 保有者が含まれます。
Q2:ステークされた SUI はどこに行きますか?
ご安心ください、それらはあなたのアドレスに安全にロックされています!他のネットワークに存在する流動性ステーキングソリューションとは異なり、ステーカーはそのステークされたトークンの管理権を第三者の流動性ステーキングスマートコントラクトに移譲する必要があります。しかし、Sui では SUI 保有者が選択した検証ノードに直接 SUI をステークでき、そのステークトークンの完全な管理権を保持できます。ステークトークンは Sui プロトコル層によって保護されており、第三者のスマートコントラクトの脆弱性の影響を受けません。
Q3:ステーキングプールとは何ですか?
各 Sui 検証ノードは、自身のステーキングプールを維持し、ステークされた数量を追跡し、ステーキング報酬を蓄積します。検証ノードプールは、各エポック境界で計算される交換率の時系列と連携して機能します。これらの交換率は、過去の各 SUI ステーカーが将来引き出すことができる SUI の数量を決定します。重要なのは、より多くの報酬がステーキングプールに入金されるにつれて、交換率が上昇し、SUI がステーキングプールに入金される時間が長くなるほど、蓄積される報酬が増えることです。
各検証ノードには、その特定のステーキングプールに対応する交換率の時系列があり、ステーキングプールオブジェクト内部でオンチェーンに保存されます。SUI ステーカーの観点からは、以下の合意を通じてそのステークの価値を追跡できます。
E'時の SUI = (E 時に入金された SUI) * (E'時の交換率 / E 時の交換率)
概念的には、ステーキングプールの運用方法は流動性プールと完全に同じです。SUI がエポック E にステーキングプールに入金されると、エポック E の交換率に基づいて流動性トークンに変換されます。ステーキングプールが報酬を得るにつれて、交換率が上昇します。エポック E' では、これらの流動性トークンの価値が高まり、より多くの SUI に変換できます。
Sui ステーキングプールと典型的な流動性プールの唯一の違いは、Sui では流動性トークンが存在しないことです。代わりに、グローバルな交換率テーブルが計算を追跡するために使用されます。この設計の利点の一つは、ステーキングプール内のすべての SUI が同じであるため、最初に新しいステークとして入金されたか、ステーキング報酬として入金されたかに関係なく、すべての SUI が即座にステークと見なされ、報酬が即座に複利計算されることです。
ステーキングプールはシステムレベルのスマートコントラクト(staking_pool.move)であり、Sui フレームワークの一部です。
Q4:SUI ステーキングの発展にはどのような段階がありますか?
ステーキング v1:[初期設計、廃止済み]
この設計はテストネットの第2段階で使用されましたが、現在は廃止され、2つの主要な実装が削除されました:
- 以前は、ステーキングプロセスは2つの段階に分かれていました。まず、ステーカーが SUI を入金すると、すぐにロックされた SUI を含む StakedSUI オブジェクトが得られます。次に、エポックが終了すると、ステーキングプールの交換率が更新され、ユーザーはユーザープールトークンを含む Delegation オブジェクトを得ます。Delegation オブジェクトはエポックが終了するまで待つ必要があります。なぜなら、エポック内では終了時期の交換率を事前に知ることができず、それはエポック全体で収集されたガス料金の量に依存するからです。この方法では、エポック境界で非常に多くのトランザクションを再構成する必要があったため、ステーキング v2 では Delegation オブジェクトが削除されました(以下参照)。
- 以前は、ステーキングの引き出しを実行する際、引き出されたステークは保留ステーク状態に入り、エポック境界が閉じた後に処理されました。これは、現在のエポックのステーキング報酬がエポック全体で決定されるため、エポックがまだアクティブな間は終了エポック時の交換率を完全に予測できないからです。そのため、この設計では、更新された交換率を持つ引き出しを処理する前にエポックが閉じるのを待つ必要がありました。この状況はもはや存在せず、引き出しは前のエポックの交換率に基づいて即座に処理されます。
ステーキング v2:[現在のメインネット設計]
2つの主要な変更点は:
- ステーキングプールの会計が簡素化されました。以前と同様に、ユーザーが SUI をステークすると、これらのオブジェクトは StakedSUI オブジェクトにラップされます。しかし、ステーキングプールはもはや Delegation オブジェクトを通じて各ユーザーのステーキングプールに対する相対的な所有権を実現しません。代わりに、会計は StakedSUI オブジェクトのタイムスタンプ(入金が発生した時点を特定)と入金エポックと引き出しエポックの間の交換率の変化を通じて直接行われます。各ステーキングプールのデータ構造には、そのプールの交換率の時系列が含まれています。これらの交換率は、そのプール内の任意のステーカーの引き出し状況を特定するために使用できます。
- ステーキングの引き出しは、現在のエポックが閉じるのを待つことなく、前のエポックの交換率に基づいて即座に処理されます。引き出しには、ユーザーが入金した元のステークと、前のエポックに蓄積されたすべてのステーキング報酬が含まれます。この方法の欠点は、引き出しのエポック内では、ステーカーがそのステーキング報酬を得られないことです。エポックが閉じるまで、現在のエポック内でどれだけのステーキング報酬が蓄積されるかを事前に知ることができないため、それを引き出しに含めることができません。したがって、任意のユーザーは自分のステークを即座に引き出し、次のように得ることができます:
E'時に引き出された SUI = (E 時に入金された SUI) * (E'-1 時の交換率 / E 時の交換率)
ステーキング v3:[将来の更新]
これは最終的にメインネットに導入される長期的な解決策です。
ステーキング v2 設計の主な課題は、ネットワークのセキュリティにとって重要な解除バインディング(またはクールダウン)期間の問題を処理できないことです。Sui が引き出しリクエストを処理する方法を変更し、2つのステップに分けることでこれを実現します:
- 最初のトランザクションで、ステーカーは引き出しリクエストを提出し、WithdrawalReceipt を取得します。この時点で、ステーカーは SUI を受け取ることはありません。
- 2回目のトランザクションで、予定された解除バインディング期間が過ぎると、ステーカーは WithdrawalReceipt を提出し、元本と蓄積された報酬を受け取ることができます。
重要なのは、解除バインディング期間を有効にするだけでなく、この設計により、ユーザーは WithdrawalReceipt を引き出した後に彼らが得るべきすべての報酬を受け取ることができることです。なぜなら、引き出しリクエストが提出されたエポックの終了時に引き出しが行われる必要があるからです。この設計は、WithdrawalReceipt オブジェクトがいつでも交換可能であり(解除バインディング期間が終了した時点で)、エポック境界に依存しないため、ステーキング v1 で非常に多くの再構成トランザクションを引き起こす課題に直面することはありません。
Q5:私のステーク入金リクエストはいつ有効になりますか?
ステーク入金リクエストが提出されると、それは即座にステーキングプール内の保留状態に入ります。Sui ウォレットはユーザーアカウントの任意の保留ステーク入金リクエストを反映します。しかし、保留ステーク入金リクエストは、リクエストが行われたエポックが終了するまで有効になりません。
Q6:私の解除ステークリクエストはいつ有効になりますか?
解除ステークまたは引き出しリクエストが受信されると、即座に処理されます。ステーカーは、最初に入金された SUI と、前のエポック境界に蓄積されたすべてのステーキング報酬を受け取ります。言い換えれば、これらは現在のエポックのステーキング報酬を含みません。この実装の詳細については、ステーキング v2 を参照してください。将来的には、ステーキング v3 が実装されると、解除ステークリクエストは即座に処理されなくなります。
Q7:各検証者プールの交換率はどのように計算されますか?
各検証ノードプールの交換率は、各エポック境界で以下のように計算されます:
E+1 時の交換率 = (1 + (E 時のステーキング報酬 / E 時のステーキング金額))*(E 時の交換率)
重要なのは、エポック E の期間中にステーカーが得たステーキング報酬は、そのエポック内で検証ノードプールが得た総ステーキング報酬の一部であることです。言い換えれば、検証ノードプールが得た総ステーキング報酬は、誰が得たかに応じて3つの独立した部分に分けられます:
ステーキング報酬 = ステーカー報酬 + 検証ノード手数料 + ストレージファンド報酬
一般的な SUI ステーカーは、ステーカー報酬のみを受け取ります。同時に、検証ノードはこれらの報酬に対して手数料(検証ノード手数料)を受け取り、ストレージファンドに帰属する報酬も得ます。
検証ノードプールの交換率は、ステーカー報酬の金額によってのみ更新され、SUI ステーカーが得た報酬を完全に追跡します。しかし、この計算方法により、Sui は更新された交換率を通じて、追加の StakedSUI オブジェクトの形で検証ノードに検証ノード手数料とストレージファンド報酬を提供し、検証ノードが得た報酬を追跡することができます。
Q8:第三者 SUI 保有者に対して、検証ノードのステーキングプロセスはどのように異なりますか?
プロセスは同じです。SUI を一緒にステークする検証ノードは、その検証ノードと一緒にステークする任意の第三者 SUI 保有者と同じプロセスに従います。
Q9:SUI ステーカーに対して、検証ノードのステーキング報酬計算はどのように異なりますか?
特定の検証ノードステーキングプール内では、すべてのステーカーがプールの交換率の上昇を通じて同じ割合の報酬を得ます。さらに、検証ノードはステーキングの管理に対して手数料とストレージファンド報酬を得るため、各エポックの終了時にこれらの金額の割合に応じて追加の StakedSUI オブジェクトを得ます。
ステーキング報酬
Q1:ステーキング報酬はどこから来ますか?
ステーキング報酬は、現在のエポック内で得られた取引ガス料金およびエポック終了時に解放されるステーキング手当から来ます。
ステーキング報酬 = ステーキング手当 + ガス料金
ステーキング手当は、ネットワークの初期段階で補助金を提供することを目的としており、資金源は 10% の SUI です。この配分が尽きると、ステーキング報酬の全体は、通常のネットワーク操作を通じて収集されたガス料金から構成されます。
Q2:ステーキング報酬は自動的に複利計算されますか?
はい!上記の「Q3:ステーキングプールとは何ですか?」の回答を参照してください。
Q3:メインネットではどれくらいのステーキング報酬がありますか?
ステーキング報酬はガス料金とステーキング手当で構成されています。各エポックに分配される総額は以下のように決定されます:
- ステーキング手当:各エポックに分配される金額は、エポック開始前に予定されたスケジュールに基づいて決定されます。
- ガス料金:各エポックの金額は、エポック全体で得られた総ガス料金に依存します。各 Sui 取引は、実行されたガス単位とガス価格の2つの変数に基づいてガス料金を支払います:
ガス料金 = ガス価格 * ガス単位
収集されたガス料金の総額は、エポック内で処理されたすべての取引のガス料金の合計に対応します。通常の市場条件下では、ほとんどの取引のガス価格が参考ガス価格と等しくなると予想されます。将来的には、Sui は混雑時にガス価格が参考ガス価格を上回るように、混雑価格設定メカニズムを導入する予定です。ユーザーは実際に検証ノードに優先権を得るためのチップを支払います。
ステーキング制限
Q1:アクティブな検証ノードから一部のステークを解除できますか?
これはサポートされていません。各 StakedSUI オブジェクトの解除ステークは、全て解除するか、全く解除しないかのいずれかです。
ただし、ユーザーは任意の数量の SUI オブジェクトを任意の検証ノードにステークできます。したがって、彼らが1つの検証ノードから一部の SUI オブジェクトのステークを解除した場合、実際にはその検証ノードから部分的にステークを解除することができます。StakedSUI オブジェクトは複数のオブジェクトに分割できるため、ステーカーが最初に1つの StakedSUI オブジェクトをいくつかのオブジェクトに分割し、その後いくつかのオブジェクトのステークを解除すれば、ステーカーは常に部分的にステークを解除することができます。
Q2:単一の検証ノードの最小ステーク金額はいくらですか?
最小のステーク金額は 1 SUI です。
Q3:検証ノードのステークとコンセンサスにおける投票権の関係は何ですか?
慣例として、ステークの数量に関係なく、総投票権は常に 10,000 であり、法定閾値は 6,667(2/3 の比率)です。各検証ノードのコンセンサス投票権はそのステークに比例しますが、1つの検証ノードの投票権の上限は 1,000(総投票権の 10%)です。
Q4:単一の検証ノードの最大ステーク金額はいくらですか?
制限はありません。ただし、コンセンサスにおいて、単一の検証ノードの投票権は上限が 10% に設定されています。もしある検証ノードが総ステークの 10% を超えると、その検証ノードの投票権は 10% に留まり、残りの投票権は他の検証ノードに分散されます。
同様に、検証ノードのステーキング報酬の割合も、管理するステークの金額を計算するために同じ 10% の上限を使用します(ステーキング報酬計算を参照)。言い換えれば、ある検証ノードが総ステークの 10% を超えると、各ステークの SUI 報酬は減少し始めます。なぜなら、ステーキングプールはもはやその獲得するステーキング報酬の数量を増加させないからです。
ステーキング報酬計算
温かいヒント:公式が多すぎるので、興味のある方は真剣に読んでください。
検証ノード
Q1:参考ガス価格とは何ですか?検証ノードはいつ参加する必要がありますか?
Sui の設計により、エンドユーザーは通常のネットワーク操作中にガス価格を安定させ、予測可能に保つことができます。これは、各エポックの開始時に検証ノードによってネットワークの参考ガス価格が設定されることによって実現されます。
操作的には、これは「ガス価格調査」を通じて実現され、手順は以下の通りです:
- 各エポック E の期間中、各検証ノードは次のエポック E+1 の最適な参考ガス価格を提出します。
- エポック境界で、Sui がエポック E からエポック E+1 に移行する際、ネットワークは検証ノード集合のガス価格を観察し、2/3 の投票加重に基づいて次のエポックの参考ガス価格を設定します。したがって、各エポックの参考ガス価格はエポック全体で一定であり、エポックが変更されるときにのみ更新されます。
ガス価格調査の提出プロセスは非常にシンプルです。各検証ノードは、自身の参考ガス価格を含むオブジェクトを持っています。検証ノードが自分の見積もりを変更したい場合、そのオブジェクト内の値を更新するだけです。検証ノードは、操作能力オブジェクトを譲渡することで、ガス価格見積もりの設定能力を他のアカウントに委任できます。
Q2:統計ルールはどのようなもので、検証ノードはいつ参加する必要がありますか?
Sui の設計は、検証ノード集合のコミュニティ監視を奨励し、強制することを目的としています。これは統計ルールを通じて実現され、各検証ノードは他のすべての検証ノードを監視し、評価します。これにより、すべての人が効率的に機能し、ネットワークの最善の利益を考慮することが保証されます。規則に従わない検証ノードは罰金を科せられ、そのステーキング報酬が削減されます。
プロトコルは、エポック境界でのみグローバルな統計ルールスコアを計算することを規定しているため、検証ノードの積極的な監視に依存し、他の検証ノードの行動の変化を検出した場合にスコアを変更します。一般的に、統計ルールのデフォルトオプションは、すべての検証ノードのスコアを 1 とし、操作が不適切であると判断された場合にのみ 0 に変更されるべきです。実際には、統計ルールは各検証ノードが所有するオブジェクトのセットで構成されており、これらのオブジェクトのデフォルトスコアは 1 です。そのため、検証ノードは通常、必要なときにのみ他の検証ノードに対するスコアに対応するオブジェクトを更新します。ガス価格見積もりの提出と同様に、検証ノードは操作能力オブジェクトを譲渡することで、統計ルールへの参加権を他のアカウントに委任できます。
Q3:検証ノードが統計ルールで 0 点を割り当てられる基準は何ですか?
統計ルールは社会的均衡を通じて実施されるべきです。検証ノード集合は自分自身を積極的に監視し、ある検証ノードが明らかにパフォーマンスが悪い場合、他の検証ノードはその検証ノードに 0 点を付けて報酬を削減すべきです。将来的には、Sui ネットワークが成熟するにつれて、コミュニティが検証ノードのパフォーマンスを追跡するための公共ダッシュボードを立ち上げ、検証ノードの運営に関するさらなる理解のための信号として利用できると予想しています。
Q4:複数の検証ノードに 0 点を付けることはできますか?
できます。統計ルールを通じて、各検証ノードは他のすべての検証ノードにスコアを付けます。各検証ノードが提出できる 0 点または 1 点の数に制限はありません。