dYdX v4 深掘りシリーズ「報酬とパラメーター」
dYdXチェーンのメインネット立ち上げに向けてオープンソースのソフトウェアを開発する中、dYdX Tradingが何を開発しているのかテーマごとに深掘りしてお伝えするブログ。今回のテーマは、「報酬とパラメーター」です。
以下に書かれるトピックは、後ほど、該当するガバナンスコミュニティ("Governance Community")によって変わる可能性があります。このブログは、dYdXトレーディング社によって開発されたオープンソースのソフトウェアがどのような特徴を持っているのか、単に透明性を確保することが目的です。
トレーディング報酬
最初のソフトウェア設計で考慮されたトレード報酬は、後ほど該当するガバナンスコミュニティによって調整される可能性があります。
ソフトウェアは、ネットワークに対してトレード報酬の設計を許可できます。
dYdXプロトコルにおけるトレードのインセンティブ設計に加えて、トレード報酬には以下のような目的があります。
自己取引(self-trading)で利益を得るべきではない。
トレード報酬は、プロトコルに支払われた手数料に比例するべきである。
トレード報酬は、確定的であるべき。
トレード報酬は、ブロックごとに決済および分配されるべきである。
トレード報酬は、プロトコルによるトレード活動への過度な支出を制限する役割を担うべきである。
ユーザーの観点でトレード報酬はどのように機能するのか?
トレーダーは、dYdXプロトコルでトレードが成立するたびに報酬を受け取れます。注文が約定されるとユーザーはdYdX Chainに登録したアドレスで以下に書かれる公式を根拠にトレード報酬を受け取ります。トレードする前に、UIによって推定の最大の報酬額を確認することができます。
トレーダーは、ネット取引手数料の最大100%をガバナンストークンによって受け取ることができます。
トレード報酬は、ガバナンストークンのインフレ可能性にどのような影響を与えますか?
トレード報酬は、ブロック毎にdYdXプロトコルによって分配されますが、ブロック毎に生じるネットトレード手数料のドル建ての価値相当が上限になります。このため、トレード報酬は、ブロック毎に上下します。
このため、プロトコル側は多くの「(インフレの削減によって生まれる)貯金」を持つことになります。これは、トレード活動へのインセンティブとして過剰に支払わないことで可能になります。
トレード報酬を決める公式はオープンソースのソフトウェアに存在しますか?
ソフトウェアは、トレーダーに分配するために存在するRewards Treasuryのトークンを反映します。Rewards TreasuryのサイズをTとしましょう。ブロック毎に新しいトークンがベスティング契約からTに送られ、報酬が分配されます。ブロック毎に、プロトコルにおけるトレード活動によって、Tのサイズは大きくなったり小さくなったりします。
あるブロックにおいて、Tからトレーダーに分配される報酬の総量をAとします。
その時、我々はトレーダーXの「報酬スコア」を以下のように定義します。
あるブロックにおいて、全てのトレーダーの報酬スコアの合計をSとします。Sは以下によって導き出されます。
ブロック毎に、トレーダーに分配されるAのネイティブトークン建ての価値は以下のように定義されます。
Cは該当するガバナンスコミュニティによって決められる定数です。初期のオープンソースのソフトウェアではCは.99に設定されています。
TとAの差額(T-A)はRewards Treasuryに残ります。新しいトークンは次のブロックでRewards Treasuryに追加されます。
Aは、あるブロックでトレードした全てのテイカーに分配され、T-AはRewards Treasuryに残って次のブロックへと引き継がれていきます。
分配される報酬であるAは、トレーダーのスコア毎にトレーダーに割り当てられます。
ベスティング契約に資金が供給されることで、各ブロックごとに取引報酬の処理と決済が自動的に続くことになります。
以下は、トレード報酬の俯瞰図です。
手数料
最初のソフトウェア設計で考慮された手数料は、後ほど該当するガバナンスコミュニティによって調整される可能性があります。
手数料の基本的な構造は、以下の特徴を持っています。
メーカーかテイカー、どちらのサイドを取るかによって手数料は異なる。
ユーザーは、全てのサブアカウントとマーケットにおける30日間の取引量に応じて手数料の割引を受けることができる。
全てのマーケットで手数料は一定である。
当初、トレーダーのメーカーリベートは-1.1bpsに設定される予定です。この初期設定は、該当するガバナンスコミュニティによって調整できます。最初のオープンソースのソフトウェアでは、90日間が過ぎるともう一方の手数料体系に移るように設計されています。
初期段階のソフトウェアコードは、バリデーターに手数料が蓄積し、それがバリデーターにステーキングを行うステーカーに分配される可能性があることを視野に入れています。ほとんどの設定と同様に、これは該当するガバナンスコミュニティによって調整できます。
パラメーター
以下は、代表的なパラメーターをまとめたものです。それぞれのパラメーターがどのような効果をもたらすのか解説します。パラメーターは、該当するガバナンスコミュニティによって調整可能であり、ジェネシスにおいて実装者によって変更可能です。
Bank Transfer
このパラメーターは、トークンの送金をジェネシスで実行するために使われます。
State Parameters
ネットワーク上のバンク状態(bank-state)についてオープンソースのソフトウェアが事前に設定することはありません。ジェネシスに参加するバリデーターがネットワークの最初の状態を決めることができます。
Slashing Parameters
このパラメーターは、バリデーターによる悪意ある行動を罰するために設けられています。
SignedBlocksWindow: MinSignedPerWindowと一緒に使われることで、バリデーターが限られたウィンドウ内で署名しなければならないブロックの数を示します。MinSignedPerWindowに失敗すると、バリデーターはアクティブなバリデーター群から追い出されます。
SlashFractionDownTime: ダウンタイムにおけるスラッシング罰を定めます。
DownTimeJailDuration: ダウンタイムによって追い出された後、復帰できるまでにどのくらいの時間が必要かを示します。
バリデーターによる二重署名はネットワークに不安定と予測不可能性をもたらすため深刻な違反行為と考えられます。もしバリデーターが二重署名をしたら、SlashFractionDoubleSignによってスラッシングされ、ネットワークからの追放(jailed)と復帰禁止(tombstoned)が言い渡されます。
Distribution Parameters
ネットワークで生じるガス代と手数料のバリデーターへの分配方法を定めます。
Community Tax: コミュニティートレジャリーに行く手数料を定めます。初期のソフトウェアは0%の設定になります。
WithdrawAddrEnabled: デリゲーターは出金のためのアドレス(デリゲーター用のアドレスとは別のアドレス)を設定して報酬を受け取ることができます。
Staking Parameters
プロトコルでステーキングがどう機能するかを定めます。
*MaxValidatorsとUnboundingTimeは、とりわけパブリクテストネットのデータとフィードバックによって変更される可能性があります。
MaxValidators: 上位のMaxValidatorsバリデーターは、ブロック毎にステーキング量に応じてアクティブなバリデーター群に入れられます。
UnboundingTime: アンロック準備期間を定めます。この期間はトークンがロックされた状態で送金やデリゲートができません(トークンはステーキングされた状態です)。
MinCommissionRate: バリデーターがデリゲーターに支払う最低のコミッション料率を定めます。デフォルトでは100%に設定されています。
*上記はdYdX Trading社のブログ「v4 Deep Dive: Rewards and Parameters」を翻訳・編集したものです。
この記事が気に入ったらサポートをしてみませんか?