Paradigm:一文で理解するNFT恒常速度発行販売協定(CRISP)
著者:デイブ・ホワイト、フランキー、ジャスティン・ロイランド
原文タイトル:《定常速度発行販売プロトコル》
編纂:カイル、DiFiの道
紹介
この記事では、恒常速度発行販売プロトコル(CRISP)について説明します。これは、時間の経過とともに目標速度でNFTを販売することを目的とした価格設定メカニズムです。
もし私たちが毎日100個のNFTを販売したいが、実際には10個しか売れない場合、CRISPは「今すぐ購入」の価格を徐々に下げます。もし私たちが毎日100個のNFTを販売したいが、実際には200個売れる場合、CRISPは新たに販売されるたびに「今すぐ購入」の価格を迅速に引き上げます。
私たちは、このメカニズムの動作をシミュレートするためのPythonノートブックと、参考用のSolidity実装を提供します。
動機
無限の数量のNFTを持っていて、固定の速度で販売したいと想像してみてください。例えば、毎日100個です。
この目標を達成するために、オークションシステムを設計することができます。100個すべてを一度のオークションで販売するか、100回の異なるオークションを開催して、毎回1つのNFTを販売することができます。
しかし、オークションのユーザー体験は非常に不便になる可能性があります。オークションにはガスがかかり、ユーザーがオークションの終了を待たずにいつでもNFTを購入できることを望んでいます。
メカニズム
概要
CRISPはNFTの販売速度を追跡し、それを目標速度と比較します。
NFTの販売速度が目標価格に対して速すぎる場合、私たちは迅速に価格を調整したいと考えます。目標速度に対して販売速度が高いほど、私たちは価格を引き上げる速度を速めたいと考えます。
一方、NFTの販売速度が目標速度に対して遅すぎる場合、私たちは急いで価格を下げたくありません。結局のところ、過去のある時点で、現在の価格を支えるのに十分な需要がありました。したがって、時間の経過とともに、私たちは徐々に価格を下げます。
販売速度
私たちは指数移動平均(EMA)またはEMSを使用して販売速度を測定します。
EMSは指数移動平均の調整で、通常は量的取引に使用され、最近の加重時間ウィンドウ内の累積を測定します。計算コストが低く、必要なストレージスペースも少ないです。
CRISP EMSは特に、販売平均半減期によって定義される最近の期間内に販売されたNFTの数量を追跡するために使用されます。販売平均半減期が100の販売は、100ブロック前の販売が現在のEMSに1/2しか影響を与えないことを意味します。
ブロックbにおけるEMSは再帰的に定義されます:
ここで、S_bはブロックbで発生した販売数量を示す変数です。
2つのブロックb1とb2があり、ブロック間に販売が発生しなかったと仮定すると、私たちは
上記の公式を使用して目標販売速度を目標EMSに変換できます。私たちの目標がnブロックごとに1回の販売であると仮定すると、目標EMSは
価格を上げる
現在のEMSが目標を上回っている場合、定義上、販売速度は速すぎます。したがって、次のNFT販売に対してより多くの料金を請求したいと考えています。これは(おそらく)需要を減少させるか、少なくとも収入を増加させるでしょう。
期待される価格に対して、NFTを販売する速度が速いほど、私たちは価格を更新する速度を速めます。したがって、私たちは変数を定義します
次に設定します
ここで、価格上昇速度は目標価格と観察価格の間の差異に対する価格の反応速度を制御します。
この例では、私たちは200ブロックの周期内でCRISPをモデル化しています。私たちの目標は100ブロックごとに1回の販売を行い、700ブロックの販売半減期を使用します。指定された期間内に、50ブロックごとに購入が発生し、これは私たちの目標を超えています。これにより、各購入時にEMSが押し上げられ、価格もそれに応じて反応します。
価格を下げる
現在のEMSが目標を下回っている場合、販売速度は遅すぎます。したがって、次のNFTに対してより少ない料金を請求し、より魅力的な購入方法にしたいと考えています。
しかし、私たちは時間の経過とともに価格を徐々に下げたいと考えています。なぜなら、以前の価格で目標速度を達成したため、必要以上に価格を下げたくないからです。
最後の取引がブロックb1のprice{b1}で発生したと仮定すると、ブロックb2の価格は次のように与えられます:
ここで、価格減衰半減期は減衰速度を制御します。
私たちは、販売速度が目標を下回っているときにのみ価格を減衰させたいと考えています。現在の販売が販売速度が目標速度を下回ってからの最初の販売である場合、私たちは目標を下回っていたブロックから減衰を計算し、最後の販売からの時間ではなく、
この例では、私たちは300ブロックの周期内でCRISPをモデル化しています。同様に、私たちの目標は100ブロックごとに1回の販売です。指定された期間内に、200ブロック目で1回の購入が発生しました。私たちは、現在のEMSが最初の200ブロックで徐々に下落しているのを見ていますが、価格は100ブロック目あたりまで下がり始めず、この時点で現在のEMSが目標を下回ります。購入後、EMSが依然として目標を下回っているため、価格は上昇しません。
完全な例
長期間のCRISPの例です。最初は購入速度が高すぎるため、各購入ごとに価格が上昇します。しばらく購入がない後、価格と購入速度は大体安定します。
コード
PythonノートブックとSolidity実装はhttps://github.com/FrankieIsLost/CRISPで入手できます。
結論
私たちはCRISPが一連のクールで面白いNFTのダイナミクスを解き放つことを期待しています。
もし何か問題を見つけたり、改善点を思いついたりした場合は、ぜひお知らせください! Twitterで @DaveWhite、@FrankieIsLost、@justinroiland にご連絡いただければ幸いです。
付録
目標販売速度を目標EMSに変換する:証明
私たちの目標がnブロックごとに1回の販売であると仮定します。次に、式(1)を使用して、k\^{th}回目の販売のブロックでのEMSは
これは幾何級数で、収束します
したがって、私たちは目標販売速度と目標EMSの間で変換を行うことができます。