ERC721P 全称为 ERC721 Panda,该协议属于NFT的去中心化Swap协议,由PandaDAO社区开发,SlowMist进行安全审计。在2022年的惊蛰前后,团队在内部讨论关于社区NFT的事情,那个时候ERC721P想法还没有成型,NFT的画面也远不是今天这个样子的,但是缘分就是如此的巧妙,我们在那个时间萌生了NFT的想法,就像惊蛰这个节气一样,惊醒了蛰居了一整个冬天的动物;同时我们也希望,该名字意味者本次加密市场的寒冬终结。所以我们把第一个版本取名叫惊蛰,纪念我们那些过去的日子,也期待社区未来的日子。
在设计阶段,我们希望抛开个人或者某个特定组织对合约的直接干预造成影响,遵循区块链的规则『Code is Law』。因为我们相信,任何伟大的事物,是不受个人或者小部分组织可以影响的,而是由底层的代码确定了它的生命周期和未来它的上限。
ERC721P最初由Random Panda Club (以下简称RPC)使用,也是社区的第一个正式的NFT项目。Random Panda Club 的中文叫做随机熊猫俱乐部。所有美好事物的诞生往往是随机性的,并未刻意安排所有进程,宛如上帝抛下了一颗颗巨大的骰子。好比地球的诞生,生命的起源和web3的无限可能性。也如同01二进制创造了整个互联网世界,熊猫的黑白创造更多的可能性。
ERC721P: 去中心化的NFT Swap协议
最初,RPC的每个NFT都会锚定5万个 $PANDA。简单来说,每个RPC可以兑换出5万个$PANDA,而5万个$PANDA也可以兑换出1个RPC。而PandaDAO社区会对市面上流通的Token实行0.005 美金的固定价格回购,也就是是说每个RPC的最低可以兑换出250美金,随着合约交互的增加,手续费的增加,NFT的锚定价格也会增加。
因为该设计,在NFT市场上也存在套利空间。当NFT的价格在公开市场低于锚定价格等值的ETH。套利者可以购买NFT,兑换成$PANDA,再兑换成稳定币。
如果NFT的市场价格高于合约锚定价格,同时LP池子中也有NFT作品。那么套利者可以购买$PANDA,再兑换出NFT,再去公开市场进行出售,实现套利。 但是因为LP池子最低有1000个NFT的下限,如果LP池子中少于1001个NFT,则无法完成该套利条件。
ERC721P还有一个机制在于每次Swap都需要锚定价格7.5%的手续费,其中一半手续费会进入合约增加NFT的锚定价格,另外一半手续费则会打入社区国库,用作NFT的持续运营,比如ChainLink的预言机续费,项目空投等等。这个机制的出现,NFT的持有者越晚退出,退还的代币越多,所得到的回报越高。同理,当池子中有NFT可以swap出来,越早兑换,所需要的Token越少。 详细公式如下:
但是ERC721P还有一个巧妙的设计在是NFT的重生,也就是用NFT去兑换NFT。假设你的NFT稀有度很低,或者你已经看腻了你的NFT,那么你可以用你的NFT随机置换出另一个NFT。因为置换是随机的,也许你会得到一个1/1作品,或者你会得到稀有度更低的作品。并且在未来的规划中,我们计划在池子中加入BAYC,Doodles,Azuki等蓝筹NFT,也就是用户可以用RPC NFT兑换出其它的蓝筹作品,该协议更新预计在2.0版本上线。 重生合约和Swap合约一样,7.5%的手续费,一半进入社区国库,一半进入LP矿池中,以此抬高NFT的锚定价格。也就是越早进行置换,所需要的花费越少。 详细公式如下:
该合约的机制在于,不管NFT市场如何,PandaDAO社区国库都是RPC持有者最坚强的后盾,满足所有RPC持有者的良性退出,并且不会影响到RPC NFT的市场价格。
ERC721P解决的问题
1,流动性问题
流动性差是NFT诞生那天起就存在的问题,特别是当地板价暴跌的时候,NFT的流动性几乎枯竭,兜底价格虽然能一定程度解决这个问题,但是当NFT地板价高于兜底价格很多的时候,NFT的流动性还是会接近于枯竭;
2,收藏价值问题
目前NFT在流通中的手续费都是进入交易市场与项目方的钱包中,作为一个NFT的Holder,除了赚卖出差价之外,并没有在NFT的流动中得到收益,这一点是不符合长期持有者的预期的;
3,审美疲劳与可玩性问题
用户购买NFT之后,往往会用来当头像,你在购买的时候会选择一个你喜欢的PFP作为头像,但是人的审美会变,而且喜新厌旧是人的本性;另一方面,长期持有一个PFP如果不是价格一直上涨也是一个比较无趣的事情。
ERC721P就是为了解决这些问题而生,一方面通过锚定价格,形成套利空间,从而间接的影响到NFT的流动性,也可以避免手中的NFT出现归零。基于ERC721P的LP设计,可以不断的提高锚定价格,不管是有人退出,还是加入,甚至是置换,将大部分权益转移至长期持有者。因为ERC721P协议还有重生的功能,在增加可玩性的同时,也增加了NFT的随机性。
预言机随机数
ERC721P中,用Token置换NFT和NFT的重生,两个都是随机性的。因此随机数对该合约非常重要。这里我们用的ChainLink预言机提供的随机数接口(Chainlink VRF 2.0)。在区块生效前,任何人都不知道会获得什么随机数,并且该机制可以杜绝链上随机数攻击。
但在实践中我们发现Chainlink VRF的fulfillRandomWords逻辑执行非常复杂,会使得回调执行的失败率增高,同时因为Chainlink回调执行的gas fee是无法在发出random request的时候准确的预知的,所以需要尽量减少在回调中的gas消耗;所以我们最终决定在回调中只做随机值存储处理,随机值确定之后的NFT transfor放在最后由用户来执行。
尽管我们已经对Chainlink回调的处理逻辑做了最大的简化,但是不排除在极端情况下,VRF可能会出现大面积失败;一旦出现这种情况,国库多签将会开启随机值生成的兜底方案:Commit Reveal,在这个方案中,随机值得生成将只依赖于用户提交的随机salt,以及矿工打包hash,在有限的区块内,这种方案随机值作恶几乎不可能。
VRF大面积回调失败概率是极低的,但是我们依然要考虑少数个例的失败,如果你在重生或者购买中出现了VRF执行回调失败的情况,那么你可以向国库提起申诉,提交链上证明;国库核对之后,会通过添加白名单的方式让你通过Commit Reveal来生成的补偿的随机值。
ERC721P的未来
基于该协议,我们可以确保,不管市场如何,ERC721P协议发行的NFT都会有对应的抵押品,无法归零,从而解决NFT的泡沫危机。而去中性化的Swap协议和套利空间,可以解决NFT的流动性问题。除此之外,还有NFT被盗的问题。如果您的NFT被盗,当交易所拦截了该NFT交易。那么黑客可以选择在ERC721P置换成其它NFT。作为被盗用户,可以联系社区,以锚定价,或者其它低质量的NFT兑换出自己原有的NFT,尽可能的挽回自己的损失。
你在玩了很久NFT之后,发现你的背包里面有一堆已经卖不出去的”归零”小图片,但是他们曾经也是有生命的,如果721P可以重生,那么他们呢?
流动性既然是个NFT普遍的问题,或许你也希望让整个NFT重新流动起来,包括那些即将出生的NFT……
当然,它还有很多发展空间,作为ERC721P的发起人之一,我也不清楚未来它会如何走,一切的一切交给时间去决定。我们所需要做的是构建一个完善的合约,不管市场如何变动,社区如何变动,甚至整个互联网如何变动,它都能一直运行下去,靠代码去约束一切,避免个人对核心逻辑进行干涉和修改。遵循区块链的规则『代码即法律』,而非『个人即法律』。