Ocean Protocolデータファーミングの報酬計算事例の紹介:DF1
データファーミングのOCEAN報酬とAPYの例
この投稿は、Ocean Data Farming(DF)プログラムによる収益性を理解するために、DFのラウンド1(DF1)の報酬関数と関連設定について、ステーカー(流動性プロバイダー)に計算事例を提供するものです。
完全な文脈を知るには、まずOcean Data Farming is Launchingをお読みください。
この記事では、まず「報酬関数」の公式を確認します。そして、次のようなシナリオを例として取り上げます:
- 1人のLPが少ないステーク額でAPYの上限である125%を達成した場合
- 1人のLPが大きなステーク額で週間OCEAN_budgetの上限を超えた場合
- 2人のLPで、同じデータ消費量(DCV)、同じリターンの場合
- 2つのLPで、異なるデータ消費量(DCV)、異なるリターンの場合
この投稿は全ての可能なシナリオを網羅することを意図しているわけではありません。いくつかの簡単なシナリオを示すことで、他のシナリオで独自の推論と論理を行うことができる道を示すものです。
今後のDF2、DF3においては、フィードバックと分析に基づいてDFの報酬関数が進化することが期待されます。
報酬関数計算式
DF1の報酬関数の公式を紹介します:
RFᵢⱼ = (プールjに対するLP iのステーク額) * (プールjに対するDCV)
RFₜₒ = 全てのRFᵢˇの総和
LP iとプールjのPro-rata RF:RFᵢˇₙᵣₘ = RFᵢˇ / RFₐₜᵒ
プールごとにLPごとにAPY <= 125% を条件とし、年間利回り(APY)125%は、週間利回り(WPY)1.57171%を意味します。
シナリオ 1
設定:
- 1プール
- 100K OCEANで1 LP(ステーカー)
- 消費は1回で、消費時の価格は1.0 OCEAN / datoken
- 10K OCEANの報酬(=DFαフェーズの週予算)
Q: 1週間でステーカーはいくら獲得できるのか?APYは?
まず、LPのpro-rata RF値を計算します:
- LP 0’s stake in pool 0 (i=0, j=0): stake₀,₀ = 100K OCEAN
- Data consume volume for pool 0 (j=0): DCV₀ = 1 consume * (1 OCEAN / datatoken) = 1 OCEAN
- Reward function value for LP 0 on pool 0 (i=0, j=0): RF₀,₀ = stake₀,₀ * DCV₀ = 100K * 1 = 100K
- RFₜₒₜₐₗ = sum across all LPs and pools = RF₀,₀ = 100K
- RF₀,₀_ₙₒᵣₘ = RF₀,₀ / RFₜₒₜₐₗ = 100K / 100K = 1.0. 1.0は、このLPが全ての報酬を獲得できることを意味します。
LPに入る報酬の計算:
- OCEAN_budget = 10K OCEAN
- total_OCEAN_rewards = min(OCEAN_budget, total_staked * WPY) = min(10K, 100K * 0.015717) = min(10K, 1571.7)= 1571.7 OCEAN
- LP 0’s rewards (i=0): rewards₀ = RF₀,₀_ₙₒᵣₘ * total_OCEAN_rewards = 1.0 * 1571.7 = 1571.7 OCEAN. LP0は唯一のLPであるため、全ての報酬を獲得できることになります。
最終的なAPYの計算:
- LP 0’s weekly percent yield: WPY₀ = rewards₀ / stake₀,₀ = 1571.7 / 100K = 0.015717 = 1.5717%
- LP’s 0’s annual percent yield: APY₀ = (1 + WPY₀)⁵² — 1.0 = (1 + 0.015717)⁵² — 1.0 = 1.25 = 125%. これは、毎週付与されるWPYを持ち、複利計算された場合の1年間の予測利回りです。
Total_OCEAN_rewardsの計算値が、予算項(OCEAN_budget)ではなく、APY項(total_staked * WPY)に拘束されていることから、APYを確認することができます。
ディスカッション:ステーク額が低かったことで、APYは125%に最大化された。
結果:LPの報酬は1571.7 OCEANで、APYは125%でした。
シナリオ2
設定:シナリオ1のような設定で、ステーク額=1M OCEAN(1000OCEANではありません)とした場合::
- 1プール
- 1M OCEANの1LP(ステーカー)
- 消費は1回で、消費時の価格は、1.0 OCEAN / datoken
- 10K OCEANの報酬
※太字はシナリオ1との相違点です
Q: 1週間でステーカーはいくら獲得できるのか?APYは?
まず、LPのpro-rata RF値を計算します:
- stake₀,₀ = 1M OCEAN
- DCV₀ = 1 OCEAN
- RF₀,₀ = stake₀,₀ * DCV₀ = 1M * 1 = 1M
- RFₜₒₜₐₗ = RF₀,₀ = 1M
- RF₀,₀_ₙₒᵣₘ = RF₀,₀ / RFₜₒₜₐₗ = 1M/1M = 1.0
LPに入る報酬の計算:
- OCEAN_budget = 10K OCEAN
- total_OCEAN_rewards = min(OCEAN_budget, total_staked * WPY) = min(10K, 1M * 0.0157171) = min(10K, 15717.1) = 10K OCEAN
- LP 0’s rewards: rewards₀ = RF₀,₀_ₙₒᵣₘ * total_OCEAN_rewards = 1.0 * 10K = 10K OCEAN
最終的なAPYの計算:
- WPY₀ = rewards₀ / stake₀,₀ =10K / 1M = 0.01 = 1.0%
- APY₀ = (1 + WPY₀)⁵² — 1.0 = (1 + 0.01)⁵² — 1.0 = 0.678 = 67.8%.
ディスカッション:
- シナリオ1では、報酬はAPYによって制限されていたので、(a)最大APYと(b)与えられた報酬は週間予算より少なかったと思われます。
- シナリオ2では、報酬は週間予算によって制限されていたので、(a)APYは最大値より小さく、(b)報酬は週間予算の上限に達していた。
結果:LPの報酬は10K OCEANで、APYは67.8%でした。
シナリオ3
設定:これは、シナリオ2に少し似ていますが、2つのプールと2つのLPがあって、それぞれが同じステーク額と消費量を持っている場合:
- LP 0はプール0に1M OCEANをステークし、プール0には消費量1、価格1.0 OCEAN
- LP 1は、プール1に1Mオーシャンをステークしプール1の消費量は1、価格は1.0 OCEAN
- 10K OCEANの報酬
※太字はシナリオ2との相違点です
Q: 1週間でステーカーはいくら獲得できるのか?APYは?
まず、LPのpro-rata RF値を計算します:
- stake₀,₀ = 1M OCEAN
- stake₁,₁ = 1M OCEAN
- DCV₀ = 1 OCEAN
- DCV₁ = 1 OCEAN
- RF₀,₀ = stake₀,₀ * DCV₀ = 1M * 1 = 1M
- RF₁,₁ = stake₁,₁ * DCV₁ = 1M * 1 = 1M
- RFₜₒₜₐₗ = RF₀,₀ + RF₁,₁ = 1M + 1M = 2M OCEAN
- RF₀,₀_ₙₒᵣₘ = RF₀,₀ / RFₜₒₜₐₗ = 1M/2M = 0.5
- RF₁,₁_ₙₒᵣₘ = RFi₁,₁ / RFₜₒₜₐₗ = 1M/2M = 0.5
LPに入る報酬の計算:
- OCEAN_budget = 10K OCEAN
- total_OCEAN_rewards = min(OCEAN_budget, total_staked * WPY) = min(10K, 2M * 0.0157171) = min(10K, 31434.2) = 10K OCEAN
- LP 0’s rewards: rewards₀ = RF₀,₀_ₙₒᵣₘ * total_OCEAN_rewards = 0.5 * 10K = 5K OCEAN
- LP 1’s rewards: rewards₁ = RF₁,₁_ₙₒᵣₘ * total_OCEAN_rewards = 0.5 * 10K = 5K OCEAN
最終的なAPYの計算:
- WPY₀ = rewards₀ / stake₀,₀ = 5K / 1M = 0.005 = 0.5%
- WPY₁ = rewards₁ / stake₁,₁ = 5K / 1M = 0.005 = 0.5%
- APY₀ = APY₁ = (1 + WPY)⁵² — 1.0 = (1 + 0.005)⁵² — 1.0 = 0.296 = 29.6%
ディスカッション:これは、2つの同一のLPが同一の報酬を得るという単純なシナリオです。
結果:各LPは5K OCEANリワードで、APYは29.6%でした。
シナリオ4
設定:シナリオ 3 と同様で、プール1に9倍の消費量がある場合
- LP 0はプール0に1M OCEANをステークします。プール0には1つの消費があり、価格は1.0 OCEAN
- LP 1はプール1に1Mのオーシャンをステークします。プール1には9つの消費があり、価格は1.0 OCEAN
- 10K OCEANの報酬
Q: 1週間でステーカーはいくら獲得できるのか?APYは?
まず、LPのpro-rata RF値を計算します:
- stake₀,₀ = 1M OCEAN
- stake₁,₁ = 1M OCEAN
- DCV₀ = 1 consume * (1 OCEAN / datatoken) = 1 OCEAN
- DCV₁ = 9 consumes * (1 OCEAN / datatoken) = 9 OCEAN
- RF₀,₀ = stake₀,₀ * DCV₀ = 1M * 1 = 1M
- RF₁,₁ = stake₁,₁ * DCV₁ = 1M * 9 = 9M
- RFₜₒₜₐₗ = RF₀,₀ + RF₁,₁ = 1M + 9M = 10M OCEAN
- RF₀,₀_ₙₒᵣₘ = RF₀,₀ / RFₜₒₜₐₗ = 1M/10M = 0.1
- RF₁,₁_ₙₒᵣₘ = RFi₁,₁ / RFₜₒₜₐₗ = 9M/10M = 0.9
LPに入る報酬の計算:
- OCEAN_budget = 10K OCEAN
- total_OCEAN_rewards = min(OCEAN_budget, total_staked * WPY) = min(10K, 10M * 0.0157171) = min(10K, 157171) = 10K OCEAN
- LP 0’s rewards: rewards₀ = RF₀,₀_ₙₒᵣₘ * total_OCEAN_rewards = 0.1 *10K = 1K OCEAN
- LP 1’s rewards: rewards₁ = RF₁,₁_ₙₒᵣₘ * total_OCEAN_rewards = 0.9 *10K = 9K OCEAN
最終的なAPYの計算:
- WPY₀ = rewards₀ / stake₀,₀ = 1K / 1M = 0.001 = 0.1%
- WPY₁ = rewards₁ / stake₁,₁ = 9K / 1M = 0.009 = 0.9%
- APY₀ = (1 + WPY₀)⁵² — 1.0 = (1 + 0.001)⁵² — 1.0 = 0.296 = 0.0533 = 5.33%
- APY₁ = (1 + WPY₁)⁵² — 1.0 = (1 + 0.009)⁵² — 1.0 = 0.5934 = 59.34%
ディスカッション:9倍のDCV以外は全て同じで、LP 1はLP 0の9倍の報酬を獲得します。ステーカーとして、どこにステークするかは本当に重要です
結果:LP 0は1K OCEANリワードと5.33%のAPYとなり、LP 1は、9K OCEANの報酬と59.34%のAPYとなりました。
まとめ
この記事では、DF1でのDF収益を理解するための事例を説明しました。
最初の2つのシナリオは1つのLP(1つのプール)だけでした。シナリオ1では、APYがどのように変動するのかを示し、シナリオ2でOCEAN_budgetがどのようになり得るかを示しました。
シナリオ2では、2つのLPがあり、それぞれ独立したプールで同一のステークを持つものでした。シナリオ3では、DCVが同一で、各LPの報酬が同一となりました。シナリオ4では、1つのプールが9倍のDCVを持ち、9倍の報酬となりました。
この結果を受けて、今後のDF2、DF3では、DFリワード・フォーミュラや関連する設定が改良・進化することが予想されます。
Happy farming!
ファーミングをを楽しみましょう!
その他の資料
Ocean Data Farming Seriesは、データファーミングに関する主要な記事と関連リソースを集めたものです。
Ocean Protocolについて
Ocean Protocolのミッションは、世界に広がるWeb3データエコノミーを始動させ、データの所有者が持つべき権利を取り戻し、人々がデータから本来得られる価値をもたらす世界を構築する事です。
データは新たな資産クラスであり、Ocean Protocolはその価値を引き出します。データの所有者と消費者は、Ocean Marketアプリを使用して、安全でプライバシーが守られた方法でデータ資産を公開、発見、消費できるようになります。
Ocean Protocolのデータトークンは、データを「データ資産」に変えます。これによりウォレットや取引所、その他のDeFiツールを活用して、データウォレット、データ交換、データ協同組合を実現します。プロジェクトは、OceanライブラリやOCEANを自分のアプリで使用し、Web3データエコノミーの推進に貢献していきます。
トークンとしてのOCEANは、データへのステークやデータの売買、ガバナンス投票などに使用されます。トークンの供給は、短期的な成長と長期的な持続性を促進するために時間をかけて分配され、利用量の増加に応じて増加するように設計されています。
詳しくはoceanprotocol.comをご覧ください。
Website | Twitter | Telegram|Discord|Blog|YouTube |
日本版Twitter | 日本版Telegram