この記事は、日本のTerra Classicコミュニティメンバーである タマシイ(Tamashi)氏 が考案したリペグ提案を紹介しています。
Click here for Agora proposal.
>> Repeg Idea: Flexible Delegation to reduce USTC supply
提案の要点
- ハイパーインフレが起きないミントの仕組みを作ることが大切
- 2つの専用トークンを用いて「フレキシブルな委任」「USTC供給量減少」アルゴリズムを実現
- 資金調達なども必要なく、オラクルリワードプールを補填することもできる
LUNA暴落の背景
ステーブルコイン であったUSTとのアルゴリズムで急成長を遂げていたLUNAは、昨年の5月にほとんどの価値を失いました。この出来事は当時使われていた「mint / burnスワップ」により、USTが大量に ミント され1ドルの ペグ が外れたことが始まりでした。
USTの1ドルペグが外れた際、当時のアルゴリズムによって再びペグさせるために大量のLUNAとUSTがミントされてしまいました。USTはLUNAを担保にしていたのです。
このアルゴリズムの欠点は「USTの1ドルからの乖離が大きいほどミントが増え、LUNAの価格が落ちるほどにミントが多く必要になること」です。
無限のミントはUSTとLUNAの価値を薄めてしまう大きな要因となり、さらに多くのミントが必要になるという負の連鎖が大暴落の原因となりました。
これがハイパーインフレーションによるLUNAの大暴落です。
USTとLUNAの価値
ハイパーインフレーションによる大暴落はありましたが、法定通貨を担保としないステーブルコインの構造は画期的で、未来では必ず必要になる構造です。
USTが1ドルを超えた場合「mint / burnスワップによりLUNAが Burn(バーン)されることでLUNAの価値が大きく上昇を続ける」というアルゴリズム(暴落前)も投資対象として画期的でした。
これはUSTの需要が大きくなるほどLUNAの価値が上がる事を表し、事実としてLUNAの価値は上昇を続けていました。
つまり、現在に置き換えると「USTCの需要が大きくなるほどLUNCの価値が上がる」ということを表しています。
もし、USTCにハイパーインフレーションが起こらずに需要が上がり続けてUTSCが1ドルとのペグを戻すことが出来るとしたら、その後、LUNCの価値が大きく上がることは誰でも容易に想像できることでしょう。
負の連鎖とミント
「価値が下がる程にミントが必要となり、ミントされるほどに価値が下がる」
この負の連鎖によるハイパーインフレーションさえ無ければミントは怖いものではありません。むしろ投資家に利益をもたらすために必要不可欠なことです。
ミントをゼロにすることが大切なのではなく、負の連鎖によるミント(ハイパーインフレーション)が起こらない仕組みを作ることが大切なのです。
適切なアルゴリズムの条件
- USTCにハイパーインフレーションが起こらない
- LUNCの価格減少が大きい時にはmintされない
この2つの条件さえ守ることができるのならば適切なミントは必要不可欠であり、怖いものではありません。
USTCのリペグが実現された後、LUNCの価値がどれほど上昇するかを考えれば「適切なミント」を否定しない方がホルダーたちの利益に繋がることが簡単に想像できます。
そこで僕は「ハイパーインフレーションが存在せず、トークンによる資金調達も必要としないリペグ案」を提案し、以下に示します。
Flexible Delegation(フレキシブル・デリゲーション)について
ステーキング では、LUNCを バリデータ へ委任することでリワード(報酬)を受け取ることができます。
そして「Flexible Delegation(フレキシブル・デリゲーション)」では、USTCを委任時にLUNCへ変換するアルゴリズムを用い、バリデータへ委任することでリワードを受け取ることができます。
この提案は「mint / burnスワップ」を用いることで実現出来るアルゴリズムで、Flexible Delegationを利用するユーザーは既存のステーキングと同時に利用することで高い効果を得ることができます。
Flexible Delegationのメリット
【ユーザーメリット】
- いつでも委任または委任解除ができる
- 委任解除時のロック期間がない
- リワードはステーキングと同等に委任した量に応じて受け取ることができる
- トークンによる資金調達の必要がない
【チェーンメリット】
- オンチェーンの取引量が増える
- USTCの需要が増える
- USTCの供給量が必ず減る
- ハイパーインフレーションが存在しない
Flexible Delegationのデメリット
USTC / LUNCの価格変動により「USTCの機会損失」「LUNCミント」が起こるケースが考えられます。
ただしミントされたLUNCは全てオラクルリワードプールに送られることになります。
Flexible Delegationで委任できるLUNCの上限
ステーキングが100LUNCの場合、Flexible Delegationによる委任も100 LUNC相当までとなります。
ステーキングの総量をFlexible Delegationの上限とすることで、Flexible Delegationの需要が高まるとステーキング率の上昇も見込めます。
Flexible Delegationの操作感
ユーザーから見たFlexible Delegationは、LUNCをステーキングする時と同じ操作で委任が可能となります。
ステーキングとの違いは「委任への上限」と「USTCが必要なこと」です。
USTCの必要量
Flexible Delegationで100 LUNCの委任をする場合は、100 LUNC相当のUSTCが必要になります。
ですが、Flexible DelegationではLUNCを必要とすることありません。
委任処理について
ユーザーはステーキングと同じ要領で委任することができますが、実際の処理では「ミントされた専用トークン」が委任されます。
下記で解説する2つの専用トークンを用いることで「フレキシブルな委任」と「USTC供給量を減らす」アルゴリズムを実現することができます。
専用トークン「ncLUNC」
Flexible Delegationでは、USTCを消費してncLUNC(non-circulating LUNC)が委任されます。LUNCと同じ価値を持ち、USTCとの「mint / burnスワップ」でミントされます。
これは流通することのないFlexible Delegation専用のトークンです。
専用トークン「ncUSTC」
ncUSTC(non-circulating USTC)は、USTCの供給量を減らすための基準としてミントされるFlexible Delegation専用トークンです。
委任と同時にミントされ、流通はせず、スワップにも使用されない「帳簿としての役割」です。
ncLUNCとncUSTCの具体的な使用例は後記しますが 「ncLUNC」と「ncUSTC」の2つを用いてUSTC供給量を減らすアルゴリズムを実現します。
再度明記しておきますが、この「ncLUNC / ncUSTC」は委任時にミントされますが、どちらも流通することは無い「Flexible Delegation専用トークン」です。
委任時のUI(ユーザーインターフェイス)
ncLUNCが委任される仕組み
- 1 USTC(Burn)→ncLUNC(ミント)のmint / burn スワップ
- 2 ncLUNC → バリデータ(デリデート)
ncLUNCが委任される仕組みでは上記のような処理が行われます。これを下記で図に表していきます。
委任時の流れ
ユーザーがUSTCを消費してバリデータへ委任するとこの画像のような処理になります。ユーザーはUSTCを消費し、ncLUNCが委任されます。
この時、USTCがBurnされているのでUSTCの供給量が一時的に減少しているのが分かります。
解除時の流れ
ユーザーが委任を解除するとこのように委任時と逆の手順を行い、ユーザーにUSTCを返還します。
スワップしたncLUNCの価格
「委任時の流れ」内の画像①の段階で、USTCからncLUNCへの「mint / burnスワップ」が行われており、この時のncLUNCは常にLUNCと同じ価格の扱いとなります。
LUNCの価格が0.00015ドルであるならncLUNCも0.00015ドルとして計算します。
委任時にUSTCをBurn
ncLUNCが0.00015ドルの時、20,000 ncLUNCを委任すると仮定します。
「0.00015ドル × 20,000 ncLUNC = 3ドル」
委任するncLUNCの価値が3ドルであれば、3ドル相当のUSTCを消費することで委任できます。
USTCの価格が0.03ドルだった場合、3ドル相当とは「3ドル ÷ 0.03ドル = 100 USTC」となります。
上記の図のように、委任と同時に100 USTCは即時にBurnされ、20000 ncLUNCがmintされて委任されます。ここで重要なのは「100 USTCがBurnされた」ということです。
USTCの供給量を継続的に減らす仕組み
委任してからUSTC価格が2倍になったと仮定します。(ここでは委任時0.03ドル、委任後0.06ドル)
現状、ユーザーは3ドル相当のncLUNCを委任しており、USTCの価格は委任時の2倍で0.06ドルとなります。この状態でユーザーが委任を解除すると下記の図のように50 USTCが返還されます。
委任前と比べ、USTCの量が100 USTCから50 USTCに減っているのが分かります。
Flexible Delegationでは価値変動がLUNCに依存しているため、LUNC価格が据置きでUSTCの価格が上がった場合、返還されるUSTCの供給量が減ることになります。
ユーザーが3ドル相当のncLUNCを委任し、USTCは0.03ドルで据え置き、LUNCの価格が1 / 2の0.000075ドルになった場合も下記の図のようにUSTCの量が100 USTCから50 USTCに減ります。
この時も上記と同様に、委任前と比べUSTCの供給量が減っています。 これは委任前後で比較しUSTC / LUNCが上昇している場合に、USTCの供給量が減るということです。
委任時・解除時のUSTC減少
USTC / LUNCが上昇し、USTC供給が減る際の流れは下記の図の通りです。
【委任時】
【委任解除時】
委任前後で比較し、USTC / LUNCが上昇したので、100 USTCから50 USTCへと減ったのが分かります。
ncUSTC(non circulating USTC)の役割
ここまで、委任前後にUSTC / LUNCの上昇があった際はUSTCの供給量が減るということを説明してきました。ならば、USTC / LUNCの下落時は下記の図のようにUSTCの供給量が増えてしまうはずです。
【委任時】
【委任解除時】
上記の図を見ると、委任前後で100 USTCから200 USTCへと増えています。
USTCの供給量を増やさないための対策としてここで登場するのが「ncUSTC(non circulating USTC)」です。
ncUSTCは委任と同時にミントされます。
ncUSTCはUSTCと同じ量がミント(100 USTCがBurnされた場合、100 ncUSTCがミントされる)され、このncUSTCが委任解除時のUSTCミントの最大値となります。
USTC / LUNC下降時のncUSTCの動き
【委任解除するncLUNCの価値が「Burnした100 USTCを超える」場合】
委任解除時のUSTCのミントはncUSTCを超えることはありません。
委任時のUSTC量を超える委任解除が起こる場合、代わりにLUNCをミントすることで、USTC供給量の増加を防ぎます。
この場合は 100 USTCがユーザーへ返還され、ミントされた10000 LUNCがオラクルリワードプールに送られます。
【委任解除するncLUNCの価値が「BurnしたUSTCを超えない」場合】
上記の図ではUSTCのミント上限が100 ncUSTCであるのに対し、50 USTCのみをミントしたので「50 ncUSTCをBurn」「残りのncUSTCは維持」という状態になります。
USTC / LUNC上昇時のncUSTCの動き
ncUSTCは委任した時点でミントされるので、USTC / LUNC上昇時(USTC供給量が減る場合)においても考える必要があります。その時のncUSTCの動きは以下の通りです。
【委任時】
【委任解除時(左:100%委任解除|右:50%委任解除)】
USTC / LUNC上昇時、委任しているncLUNCの100%が委任解除された場合はncUSTCの100%がBurnされます。同じくncLUNCの50%が委任解除された場合はncUSTCの50%がBurnされます。
ncUSTC Burn基準|USTC /・LUNC ミント基準
USTC / LUNC上昇時は委任解除するncLUNCの割合でncUSTCをBurnします。これを「 burn_type_A」とします。
USTC / LUNC下降時はミントしたUSTC量の分だけncUSTCをBurnします。これを「burn_type_B」とします。
ブロックチェーンそのものにUSTC / LUNCの増減を判断させることは難しいのでtypeAとtypeBをそれぞれ計算しncUSTCのBurnが多くなる方を採用します。
【pythonコードによるncUSTC burn量の選考方法】
ミントされたLUNCの行先
多くの人が心配するのは「BurnしてLUNCの供給量を減らしているのに、またLUNCをミントするのか?」ということでしょう。
この不安をポジティブなものにするために「ミントされたLUNCは全てオラクルリワードプールへ送金」されます。
これで現在心配されているリワードプールの補填と、ミントによるLUNCの売り圧を回避を同時に対策できます。
下記に図を用いて説明しますが、USTCリペグ後はオラクルリワードプールが補填され続けることが分かります。
LUNCのミント条件とオラクルリワードプールへの補填
LUNCがミントされる条件は「USTC / LUNCが委任時より下降した場合」のみです。
そのUSTC / LUNCが下降する条件は「USTCの下げ率がLUNCの下げ率より大きい場合」もしくは「 LUNCの上げ率がUSTCの上げ率より大きい場合」となります。
このような条件の時にLUNCがミントされます。
つまり、USTCが1ドルで リペグ した後はUSTCに対してLUNCの価格上昇率が大きくなる状態が続きますので「LUNCの価格が上がるほどリワードプールへの補填が加速する」ということになります。
ペグの維持(1ドルを超えた場合)
LUNA暴落前のUST 1ドルペグを実現させていた「USTC mint → LUNC burn」アルゴリズムを不可逆(一方向のみ)で再稼働させます。
何らかの理由によりUSTCが一時的に ディペグ しても「 LUNC ミント → USTC Burn」は決して行いません。また、ユーザーの操作による「mint/burnスワップ」も復活させることはありません。
Flexible DelegationによりUSTCを減らし、USTCが1ドルを超えたら「USTC ミント → LUNC Burn」アルゴリズムで1ドルを維持する(LUNCはBurn)
これだけのシンプル構造です。
USTCは1ドルになるまで必ず減り続けますし、ミントされたLUNCはすべてオラクルリワードプールへ送金されます。リワードが増えればFlexible Delegationやステーキング利用者が増えてプラスの連鎖が始まります。
リワードの算出方法
Flexible Delegationも、ステーキングと同じくオラクルリワードプールからリワードを受け取ります。
USTCを消費しますが、ncLUNC(循環しないLUNC)を委任するだけですので、ステーキングのリワード算出方法に依存します。
例えばあなたが「20000 LUNCの委任(ステーキング)をしている」とします。追加で20000 ncLUNCの委任(Flexible Delegation)をすると、40000 LUNC分(20,000 + 20,000)のステーキングリワードを受け取ることができるシンプルな算出方法です。
提案のメリット・デメリット
メリット
- 報酬を受け取りながらリペグさせることができる
- オラクルリワードプールを補填することができる
- LUNCがミントされても売り圧に繋がらない
- ハイパーインフレが存在しないためデススパイラルになることは決してない
- トークン配布による資金調達なども必要ない
- Terra Classicチェーンの中で完結出来るシンプルな方法
デメリット
- USTCの機会損失が起こる可能性がある
補足
僕は開発技術が無いためL1開発チーム「L1 Task Force」への依頼、または有志の開発者によるテストコードを書いてもらう必要があります。
そしてTerra Stationの変更が必要になりますので TFL(Terraform Labs)に依頼する必要があり、オラクルリワードプールからの報酬支払いの修正が必要となります。
StakingにおけるUndelegateロック日数短縮プランの提案
タマシイ氏が提案する「StakingにおけるUndelegateロック日数短縮プラン」の内容を紹介しています。
続きを見る