原文作者:DaveWhite,Frankie
创作者:Yofu
审核者:DAoctor
原文:GOO(GradualOwnershipOptimization)
当NFT项目同时包含一个可替代的代币时,持有NFT和代币的社区往往会随着时间的推移出现分歧,而这种分歧一旦发生难以修复。Paradigm创建了一个新的机制即渐进式所有权优化解决此问题。DAOrayaki去中心化编辑委员会特编译此文,文章共分为引言、动机、机制、代码和结论五部分。
一、引言
当NFT项目同时包含一个可替代的代币时,持有NFT和代币的社区往往会随着时间的推移出现分歧。我们创建了一个机制来抑制这种分歧,并在它发生时修复它。这种机制称之为渐进式所有权优化。
ArtGobblers-即将推出的NFT项目,是产生一种名为Goo的以太坊代币的NFT。一个Gobbler拥有的Goo越多,它生成Goo的速度就越快。这意味着Goo的总供应量每天都会增加得越来越快,从几千到几百万甚至更多。囤积Goo代币而不拥有任何GobblerNFT是一个非常糟糕的策略,因为其他人都会生成Goo,而你在Goo总供应量中的份额将迅速减少到零。另一方面,如果你拥有很多"Gobblers",但却没有多少Goo,那么你的生成Goo的速度将落后其他玩家。
但是,假设您拥有GobblerNFT的所有权,其Goo总产能占总量的1%,并且你从未移除您的Goo。无论您开始拥有多少Goo,您最终都会得到至少Goo总供应量的1%!这确保了Goo长期保持在NFT持有者的控制之下。
从数学上讲,瞬时Goo的发行量等于
,其中Gobbler的Mult,或乘数,是其生成Goo的基本速度。我们用一个微分方程自动合成Goo的发放,如果你有多个Gobbler,也会在Gobbler之间自动平衡Goo的发行量。
在这个系统中,由于一些非常幸运的数学运算,事实证明拥有多个Gobbler的乘数与总mult相加与拥有一个Gobbler的乘数为总mult相同,这意味着随着一些玩家获得更多Gobbler,游戏保持公平。虽然是为ArtGobblers设计的,但该机制适用于任何具有可替代代币的NFT生态系统。它使NFT和代币持有者保持一致,同时确保NFT本身的首要重要性。这也很有趣,尤其是与VRGDA等其他机制结合使用时。
在本文中,我们分解了该机制的细节,并提供了可生成Goo的代码,因此可以在自己的项目中使用它。
二、动机
1、当前NFT可替代代币的发行类型
目前,NFT项目有两种主要方式发行可替代代币。
1)空投:在某个特定的时间点,NFT的所有持有者会收到与他们持有的NFT数量成比例的可替代代币。
2)恒定释放:每个NFT在一段时间内释放出大致恒定数量的代币。
一种恒定释放方法是质押,NFT持有人将他们的NFT锁定在一个合约中,每天收到一些恒定数量的代币。
另一种近似恒定释放方法是"玩赚",拥有或可以使用特定NFT的用户可以玩一个游戏,有可能每天赚取一定数量的代币,这取决于他们的游戏方式。
2、问题
在以上两种情况下,随着时间的推移,持有NFT的人数可能会与持有可替代代币的人数大不相同。
首先,在空投的情况下,由于一些用户在不出售其代币的情况下出售NFT,而另一些用户在不出售其NFT的情况下出售代币,代币和NFT所有权失衡,而且没有力量使其恢复一致。
即使在恒定释放的情况下,由于可替代代币以恒定速率发行,随着时间的推移,NFT和可替换代币的所有权实际上是不可能回到一致:每天,新发行的代币在总供应量中所占的比例越来越小.此外,无论您拥有多少可替代代币,都没有动力将其与相当数量的NFT相匹配,反之亦然。一旦NFT和代币持有者的群体出现分歧,就没有任何东西将他们重新整合。
3、解决方案的其他要求
我们想确保Goo是一个纯粹的实用代币,而ArtGobblersNFT本身将继续是经济的支柱。我们还希望我们的解决方案是非常高效的,易于NFT社区成员理解,而且最重要的是,使用起来很有趣。
三、机制
1、概述
属于给定以太坊帐户的所有ArtGobblerNFT将Goo释放到与该帐户关联的Goo池中。该地址的所有者可以随时从该池中添加或删除Goo。
ArtGobblers生成Goo的速度与池中已经存在的Goo的平方根成正比。每个Gobbler都有自己的mult或倍数,描述其生成Goo的基本速度。
我们用一个微分方程来自动复合这个瞬时的发行量,懒惰地进行评估,以便复合可以在任意长的时间段内发生,而不需要花费任何Gasfee。
Goo随着时间的推移呈二次方膨胀,明显慢于大多数代币质押计划中常见的指数式膨胀。
因为当Goo与用户的Gobblers按比例持有时,Goo的发行是最理想的,用户被激励按比例持有Goo和Gobblers。由于Goo的总体释放率一直在增加,所以无论已经发行了多少Goo,这些激励措施都是强有力的。
由于一些非常幸运的数学运算,拥有许多乘数等于给定总数的Gobblers与拥有一个乘数等于该总数的Gobbler是一样的,即使某些用户积累了大量Gobbler,也能确保系统保持公平。
2、定义
-
的Goo释放倍数
-在时间t时,
池中的Goo的数量
-Gobbler在时间0时,
拥有多少Goo
为方便起见,在仅指一个Gobbler时,我们将使用
不加下标
。
3、Goo的释放
ArtGobblers瞬间释放Goo的速度是
。
我们选择平方根发行是为了确保Gobbler比Goo更基础--在某个Gobbler的池子里添加的Goo越多,每个新单位的Goo增加该Gobbler的瞬时Goo发行量就越少。这意味着用户不能通过在单个Gobbler的池子里放置大量的Goo来玩弄这个系统。
例如,在时间1,如果m是2,并且g是2,那么Goo每天的瞬时Goo发行量将是
。
用数学方法表示,我们有以下微分方程:
求解后可得
并展开,我们得到
注意,为方便起见,我们假设时间总是从0开始,而在生成中,我们必须跟踪自上次与合约互动以来所经过的时间。
4、跨越Gobblers优化Goo生产
想象一下,你有4个Goo和2个Gobblers,一个mult为1,一个mult为3。
你想决定如何在它们之间分配你的Goo,以使你的Goo生产率最大化。
如果你必须把所有的Goo都放在一个Gobbler的池子里,显然最好是把它放在mult为3的Gobbler的池子里,这样瞬间的生产速度为
。
然而,将你的Goo平均分配给Gobblers就更好了,其生产速度为
但事实证明,我们可以做得更好。对于任何一组有乘数
的Gobblers,在他们之间分配Goo的最佳方式是将总Goo的
分配给每个人。
在这种情况下,我们将把
Goo分配给第一个Gobbler,把
Goo分配给第二个Gobbler,这样瞬间的Goo总产量为
5、Goo保持最优化
如果用户不得不不断地在多个Gobbler之间重新平衡他们的Goo,以保持它们的最佳生产状态,这将是一个有趣但不是特别有用的结果。
幸运的是,一旦平衡后,Gobblers就会保持平衡。要知道为什么,请注意,根据定义,在平衡的时候。
如果我们为方便起见引入一个新的常数
,我们会得到
将其插入上述
定义中,我们可以得到
并且,简化一下:
由于这对所有的
,我们可以看到,无论t数值是多少,Goo都是按照它们的乘数比例在Gobbler之间分配的,这正是我们维持最佳Goo产量所需要的条件。
6、多个Gobblers产生的Goo
这意味着我们可以为用户自动平衡Gobblers之间的Goo,只需一次,它们就会保持平衡。
即便如此,如果由此产生的Goo生产率很复杂或难以理解,整个系统就不会特别令人满意或有趣,而且用户可能不知道如何与之互动。
幸运的是,情况并非如此。事实证明,当Goo在多个
Gobbler之间得到最佳平衡时,总的Goo生产率与单个
mult的Gobbler的Goo生产率是一样的,换句话说,拥有Mult总和为100的多个Gobblers与拥有Mult为100的单个Gobbler相同。
回到我们原来的例子,我们可以手动验证是否是这种情况。当我们用1和3的乘法器在两个gobbler之间优化平衡4Goo并实现4的瞬时输出时,这与将4Goo放入具有mult1+3=4的单个gobbler的池中相同达到输出。我们可以看到,如果我们有四个Gobbler,每个Gobbler的mult为1,总输出为
.
这个最终结果-拥有几个总和为10的Gobbler与拥有一个具有10倍数的Gobbler相同-既非常直观又非常幸运,,因为否则用户可以通过改变钱包之间的Gobbler的分配来操纵Goo的生产速度。
7、激励措施
因为Goo是二次方膨胀的,所以持有它而不持有Gobblers是一个严重的错误,因为你不会再产生任何Goo,同时在你的整体供应中的比例将迅速减少。
此外,我们可以从上面的自动平衡部分看到,当Goo按比例分配给mult时,整个生态系统的最佳Goo生产率就达到了。因此,如果你有很多Gobblers,但Goo却很少,你的Goo生产将落后于整个领域的生产,你将被竞争淘汰。因此,用户被激励保持他们的Goo和Gobbler持有量大致一致。
更正式地说,假设你拥有一个总乘数为M的Gobblers集合。如果你从未将你的任何Goo从其收集器中移除,从
的定义中我们可以看到,最终你的Goo供应将大约等于
,这是唯一的二次项。
假设所有的Gobblers加起来的总倍数是Q。如果Goo在所有其他Gobblers之间完全平衡,最终他们的Goo供应量将大约等于
,因此Goo总供应量将与
成正比,而你所占的比例将是
,即你拥有的总mult的比例。
如果Goo在其他Gobblers之间不是完全平衡的,你在总Goo中的比例实际上会大于你在总mult中的比例。
当然,这只是在总mult随着时间的推移保持不变的情况下,而这可能不取决于系统的其他部分如何运作。否则,你可能不得不采取行动,以确保你在总mult中的份额保持不变。
四、代码
在transmissions11/goo-issuance可以找到GOO的高度优化、生产准备和许可实现。欢迎提出改进意见。
五、总结
GOO是为ArtGobblers设计的,但我们相信它适用于各种NFT项目和链上游戏。如果你想从NFT中发行一个可替换的代币,同时确保用户持有NFT和代币的比例大致相同,GOO可能适合你。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。