原文作者:Paradigm研究合伙人DaveWhite、研究助理Frankie以及Transmissions11,由DeFi之道翻译编辑。
内容
介绍
动机
当前NFT项目的可替代代币发行方式
问题
解决方案的其他要求
机制
概述
定义
Goo发行
在多个GobblerNFT之间优化Goo生产
Goo保持优化
多个GobblerNFT的Goo代币生产
激励
代码
总结
介绍
当NFT项目拥有一种可替代代币时,持有NFT和代币的社区往往会随着时间的推移而分道扬镳。我们创建了一种机制来抑制这种分歧,并在分歧发生时修复它。我们称之为渐进所有权优化,或GOO。
在我们即将推出的NFT项目ArtGobblers当中,其NFT可生产一种名为Goo的以太坊代币。一个GobblerNFT地址持有的Goo代币越多,它生成的Goo代币就越快。这意味着Goo代币的总供应量每天都会加速增加,从数千增加到数百万甚至更多。
在不拥有任何GobblerNFT的情况下囤积Goo代币,这是一种非常糟糕的策略,因为其他人都会生成goo代币,而你在Goo代币总供应量中的份额将迅速减少到零。另一方面,如果你拥有很多GobblerNFT,但拥有少量的Goo代币,那么与其他玩家相比,你的Goo产量将会落后。
假设你维持GobblerNFT的所有权,其总的Goo代币生产能力为总产量的1%,并且你从未移除你的Goo代币。那么无论你开始拥有多少Goo代币,你最终至少会得到Goo代币总供应量的1%!这确保了Goo长期保持在NFT持有者的控制之下。
从数学上讲,即时的Goo发行量等于
,
其中mult是GobblerNFT的乘数,是它生产Goo代币的基本速度,我们使用微分方程自动合成随时间推移的Goo发行量,如果你有多个GobblerNFT,也会自动平衡Goo的发行量。
在这个系统中,由于一些非常幸运的数学运算,结果表明,拥有多个乘数和为X的GobblerNFT,与拥有一个乘数为X的单个GobblerNFT相同,这意味着,随着一些玩家获得更多的GobblerNFT,游戏将保持公平。
虽然该机制是专为ArtGobblers项目设计的,但它可用于任何具有可替代代币的NFT生态系统。它使NFT和代币持有者保持一致,同时确保NFT本身的首要重要性。它也很有趣,尤其是与VRGDA等其他机制结合使用时。
在本文中,我们分解了该机制的细节并提供了可用于生产的代码,以便你可以在自己的项目中使用它。
动机
当前NFT项目的可替代代币发行方式
目前NFT项目发行可替代代币有两种主要方式:
空投,在某个特定时间点,所有NFT持有者都会收到与他们持有的NFT数量成比例的可替代代币数量。
恒定排放,随着时间的推移,每个NFT都会产出大致恒定数量的代币。
一种恒定排放的方法是质押,NFT持有者将他们的NFT锁定在合约中,并每天收到一定数量的代币。
另一种近似恒定的排放方法是PlaytoEarn,拥有或有权访问给定NFT的用户可以玩游戏,然后每天有可能赚取一定数量的代币,具体取决于他们的游戏方式。
问题
在这两种情况下,随着时间的推移,持有NFT的人群与持有可替换代币的人群可能会变得非常不同。
在空投的情况下,由于一些用户在不出售其代币的情况下出售他们的NFT,而另一些用户在不出售其NFT的情况下出售了他们的代币,这导致代币与NFT的所有权不一致,并且不存在使其恢复一致的力量。
即使在恒定排放的情况下,因为可替代代币以恒定的速率发行,NFT和可替代代币所有权实际上不可能随着时间的推移恢复一致:每天,新发行的代币在总供应量中所占的比例越来越小。此外,无论你拥有多少可替代代币,都没有动力将其与相当数量的NFT相匹配,反之亦然。一旦NFT和代币持有者的群体出现分歧,就没有任何东西可以重新调整他们。
解决方案的其他要求
我们希望确保Goo纯粹是一种功能代币,而ArtGobblersNFT本身仍将是经济的支柱。我们还希望我们的解决方案非常高效,NFT社区成员易于理解,最重要的是,使用起来会很有趣。
机制
概述
所有属于给定以太坊账户的ArtGobblerNFT都会将Goo代币排放到对应的「tank」池子中,该地址的所有者可以随时从「tank」池子中添加或移除Goo代币。
ArtGobblersNFT喷出Goo代币的速度与地址的「tank」池子中已经存在的Goo代币的平方根成正比。每个gobbler都有自己的mult乘数,它描述了喷出goo代币的基本速率。
我们使用微分方程自动复合这种瞬时发行,并对其进行延迟评估,以便复合可以在任意长的时间段内发生,而无需花费任何gas。
Goo代币会随时间呈二次方膨胀,这比大多数代币质押方案常见的指数膨胀要慢得多。
当Goo代币与用户的GobblerNFT成比例持有时,Goo代币发行可处于最佳状态,因此规则激励用户按比例持有Goo代币和GobblerNFT。由于Goo代币排放的总体速率一直在增加,所以无论Goo已经发行了多少,这些激励措施仍然很强大。
由于一些非常幸运的数学运算,拥有多个乘数和为X的GobblerNFT,和拥有一个乘数为X的GobblerNFT等效,即使某些用户积累了大量GobblerNFT,也能确保系统保持公平。
定义
mi-Gobbleri的Goo代币排放乘数。
gi(t)-Gobbleri的「tank」池子在时间t时的Goo代币数量。
initialGooi-Gobbleri在最初拥有多少Goo代币。
为了方便起见,我们将使用gi(t)、m以及initialGoo,仅指单个Gobbler,而没有下标i。
Goo代币发行
ArtGobblers以
的速率释放Goo代币。
我们选择平方根发行是为了确保GobblerNFT比Goo代币更基础,你添加到给定Gobbler「tank」池子的Goo代币越多,每个新Goo单位的效用就越少。这意味着用户无法通过在单个Gobbler的「tank」池子中放置大量Goo代币来赚取同等比例的Goo代币。
例如,在时间1时,如果m为2,并且g(1)为2,则即时的Goo代币发行速度会是每天
个Goo代币。
用数学表示,我们有了以下微分方程:
解之得
展开后,我们得到:
注意:为了方便起见,我们假设时间总是从0开始,而在生产中,必须跟踪自上次与合约交互以来经过的时间。
在多个GobblerNFT之间优化Goo生产
想象一下,你有4个Goo代币以及2个GobblerNFT,其中一个NFT的乘数为1,另一个的乘数为3。
你想决定如何在它们之间分配你的Goo代币,以最大限度地提高你的Goo代币生产速率。
如果你必须将所有的Goo代币存入一个GobblerNFT的池子中,显然最好将其放入乘数为3的GobblerNFT池子当中,此时Goo代币的即时生产率为
然而,在GobblerNFT之间平均分配你的Goo代币会表现地更好,这样做的即时生产率为
。
但事实证明我们可以做得更好。对于任何具有乘数为mi的GobblerNFT组,事实证明,在它们之间分配Goo代币的最佳方法,是将总的Goo代币的
分配给每个NFT。
在这种情况下,我们将分配
个Goo代币给第一个GobblerNFT,将
个代币给第二个GobblerNFT,那么总的Goo代币即时生产率为
。
Goo保持优化
如果用户必须不断地在多个GobblerNFT之间重新平衡他们的Goo代币以保持最佳的生产率,这将是一个有趣但不是特别有用的结果。
幸运的是,一旦平衡,Gobbler就会保持平衡!要了解原因,请注意,根据定义,在平衡时,
为了方便,我们引入一个新常数
,我们得到
并将其代入上述gi(t)的定义中,我们得到
进行简化
因为这对所有i都是正确的,我们看到,无论t的值如何,Goo代币都会与其乘数成比例地分布在gobblerNFT之间,这正是我们保持最佳Goo生产所需的条件。
多个GobblerNFT的Goo代币生产
这意味着我们可自动为用户平衡一次GobblerNFT之间的Goo,并且它们将保持平衡。
即便如此,如果Goo生成率复杂或难以理解,整个系统也不会特别令人满意或有趣,用户可能不知道如何与之交互。
幸运的是,情况并非如此。结果表明?,当Goo在具有乘数mi的GobblerNFT之间最佳平衡时,总的Goo代币产出速率与单个具有
乘数的GobblerNFT的Goo代币产出速率相同。
换句话说,乘数和为100的多个GobblerNFT,与单个乘数为100的GobblerNFT,它们的Goo代币产出速率是相同的。
回到上面的例子,我们可以手动验证是否是这种情况。当我们用乘数为1和乘数为3的2个GobblerNFT,并在它们之间平衡4个Goo代币时,并且实现速率为4的即时Goo代币产出速率,这和将4个Goo代币存放在单个乘数为1+3=4的gobblernft池子中的情况相同,其输出的即时Goo代币产出速率为
。我们可以看到,如果我们有四个GobblerNFT,并且它们的乘数都为1,则总的Goo代币产出速率为
。
最终结果就是,拥有几个乘数和为10的GobblerNFT,与拥有一个乘数为10的GobblerNFT是相同的。这是非常直观且幸运的,因为用户可以简单地操作,而不需要通过改变钱包之间的GobblerNFT分配来操纵Goo代币的生产速度。
激励
由于Goo代币的数量是呈二次方的速度膨胀的,所以持有它而不持有GobblerNFT是一个严重的错误决策,因为你不会产生任何新的Goo代币,并且你在整体Goo代币供应中的比例将迅速减少。
此外,我们可以从上面的自动平衡部分看到,当Goo代币按mult乘数比例分配时,整个生态系统中的Goo产量达到了最佳速率。因此,如果你有很多GobblerNFT,但只有很少的Goo代币,你的Goo代币产量将落后于市场水平,你将被竞争对手击败。因此,用户被激励保持其Goo代币和GobblerNFT持有量大致一致。
更正式地说,假设你拥有一个总乘数为M的gobblerNFT集合,如果你从未移除任何的Goo代币,那么根据g的定义,我们可以看到,最终你的Goo代币供应将大约等于
。
假设所有GobblerNFT的乘数总和为Q。如果Goo代币在所有其他GobblerNFT之间完全平衡,则最终他们的Goo代币供应量将大约等于
,所以Goo代币的总供应量将为
。而你的比例将是M/Q,也就是你的GobblerNFT总乘数所占的比例。
如果Goo代币在其他GobblerNFT之间没有完美平衡,那么你在Goo代币总数中获得的比例,实际要大于你的NFT总乘数所占得的比例。
当然,只有当总乘数随时间保持恒定时,才会出现这种情况,这可能与系统其余部分的工作方式无关。否则,你可能必须采取措施确保你在总乘数中的份额保持不变。
代码
你可以在transmissions11/goo-issuance?找到高度优化、生产就绪的GOO实施代码,欢迎有改进的拉取请求。
结论
GOO是为ArtGobblers项目设计的,但我们相信它适用于各种NFT项目和链上游戏。如果你想通过NFT发行一种可替代的代币,同时确保用户持有的NFT以及代币大致成比例,那么GOO代币模型可能就适合你。
如果你有兴趣将GOO集成到你的项目中,我们很乐意听到你的消息。
致谢:samczsun,RileyHolterhus,Aaru,OttoSuwen,0xmisaka,NNBlossoms,DCFPascal,kootsZhin,snoopy,BenLeimberger,shant,0xQTpie
译者简评:Paradigm提出的"GOO"代币发行机制旨在解决同一个NFT项目的社区分裂问题,但前提条件在于,发行的token是持续通胀的功能性代币,而对于总量有限的治理代币,这种模式似乎是不适用的。对于一些链游项目而言,功能代币的发行或许可以考虑采用这种模型。此外,采用这种方式发行的token,也不太可能在中心化交易所进行交易,因为模型不鼓励token的投机,交易所也需要保护投资者在不知情的情况下购买这种token。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。