2

买不了整个NFT 那就真的没办法了吗?

 3 years ago
source link: https://www.jinse.com/blockchain/1142512.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

买不了整个NFT 那就真的没办法了吗?

去中心化金融社区 15 小时前 5.8万

顶级的NFT可能花费数万甚至数百万美元。大多数散户投资者都无法接触到它们,不同的团队正在通过将NFT分割来解决这个问题。碎片化是将NFT锁定到金库中,然后铸造一些可替代份额作为ERC-20代币的过程。碎片化既有利于NFT产品所有者,也有利于股权购买者。份额买家现在可以负担一小部分NFT。NFT的所有者可以通过出售部分NFT来了解它们的价值,并在不出售整个NFT的情况下看到一些流动性。

5505476_image3.png

有许多团队正在处理这个问题,而 Fractional 是这个领域的顶级项目之一。

在 Fractional协议中,NFT所有者可以通过创建一个金库来分割自己的NFT。每个金库包含一个NFT篮子(表示为一个NFT代币),该篮子本身包含许多NFT。NFT所有者将获得所有部分的所有权代币,他们可以将这些代币出售给份额买家。

金库的创建者有权每年收取一笔管理费。金库创造了新的部分所有权代币作为管理者的费用。该协议通过具有治理控制的最大费用百分比参数来防止费用百分比过高。

如果某天有人想拥有整个NFT篮子,他可以通过向金库发送等量或更多的ETH来启动拍卖。拍卖完成后,拍卖赢家将收到NFT,部分所有权代币持有者可以索取已支付的 ETH。

创建金库并设置其参数

为了创建一个金库,ERC721VaultFactory#mint 需要以下信息:

  • Name -金库名

  • Symbol-金库符号

  • 代币- NFT(或NFT篮子)地址

  • id—NFT的id

  • listPrice -NFT的初始价格

5505477_image3.png

在金库工厂的初始化期间,ERC721TokenVault会创建一个合约,并在每个金库的初始化中重用其逻辑,以节省gas和存储空间。每个金库都有自己的合约,但逻辑只存在于一个地方。该函数用它的参数对初始化函数签名进行编码,然后将调用数据传递给代理,该代理把delegatecall传递给预先创建的代币金库合约。ERC721TokenVault#initialize初始化分割ERC-20代币,给管理员创建总供应,并设置总底价(标价x供应)。在金库初始化之后,它将NFT从所有者处转移到金库。

5505478_image3.png

每个代币库都可以通过拍卖购买,其默认长度为7天。管理员可以通过调用ERC721TokenVault#updateAuctionLength来更新金库的拍卖长度,但它必须在协议设置的允许范围内。

5505479_image3.png

管理员还可以通过调用ERC721TokenVault#updateFee来更新金库的费用。必须低于协议规定的最高管理者费用百分比。随着管理费用的更新,管理者还可以要求在金库中的任何费用。

5505480_image3.png

创建一个NFT篮子并存储/取出NFT

5505481_image3.png

在代币金库智能合约中,每个金库只能持有一个NFT。Fractional允许金库通过NFT篮子的概念来持有多个NFT。一个NFT篮子本身就是一个NFT,由于它有一个以太坊地址,它可以拥有多个 NFT。要创建一个NFT篮子,调用IndexERC721Factory#createBasket来创建一个新的IndexERC721篮子。它铸造的代币0(篮子)属于工厂。篮子所有权随后转移到msg.sender。

5505482_image3.png

创建篮子之后,可以通过调用IndexERC721#depositERC721将NFT存储到篮子中。

5505483_image3.png

篮子所有者或任何被批准的用户也可以通过调用IndexERC721#withdrawERC721从篮子中取N出FT。

5505484_image3.png

转移金库份额

5505485_image3.png

金库份额是ERC-20代币,它们可以在地址之间自由交易。当交换发生时,金库份额从流动性池转移到买方。钩子ERC721TokenVault#_beforeTokenTransfer被定义,它在每次传输之前运行。它做了三件事。

首先,如果发送方正在转移他所有的金库份额,金库将烧毁他的不可转让的金库NFT,这代表他的金库所有权。

5505486_image3.png

第二,如果接收者不拥有一个金库NFT,金库会为他铸造一个。

5505487_image3.png

最后,如果当前没有拍卖,且发送方的期望售价和接收方的期望售价不同,则根据发送方和接收方的转让金额加权的期望售价调整底价。

5505488_image3.png

更新期望售价

5505489_image3.png

金库份额可以通过调用ERC721TokenVault#updateUserPrice来更新他们想要的出售价格。底价是每个金库份额所有者基于其份额的期望销售价格的加权平均值。用户可以添加/删除/更新他们想要的销售价格。

如果没有投票代币,或者用户是唯一的份额所有者,它会将底价设置为用户的权重乘以期望价格。

5505490_image3.png

如果用户不再想投票,该函数将从底价中删除用户的加权价格以及投票代币的数量。

5505491_image3.png

如果用户是第一次投票,并且底价已经由其他份额所有者确定,那么在将加权价格添加到底价之前,该函数会检查用户的期望销售价格是否在金库平均底价的最小/最大底价系数之内。

5505492_image3.png

类似地,如果用户正在更新期望的销售价格,该函数将进行相同的检查,只是它在平均底价计算中删除了旧的加权价格。新的加权价格被添加到底价中,旧的加权价格被从底价中删除。

5505493_image3.png

最后,它在userPrices映射中设置用户所需的销售价格。

5505494_image3.png

发起拍卖

5505495_image3.png

拍卖可以通过调用ERC721TokenVault#start来启动。它是一个payable函数,因为函数调用者必须发送价值至少等于金库底价的ETH作为起始出价。为了开始拍卖,还必须对底价达成共识。通过比较投票代币的数量和协议的最小投票百分比来检查它。

5505496_image3.png

拍卖的结束时间戳是当前区块时间戳加上拍卖长度。它的状态由不活跃变为活跃。当前价格为msg.value和获胜的地址是msg.sender。

5505497_image3.png

在拍卖中出价

5505498_image3.png

其他投标人可以通过调用ERC721TokenVault#bid提交他们的投标。每个出价必须至少将价格提高协议的预定义最低出价增幅。

5505499_image3.png

如果距离拍卖结束时间不足15分钟,拍卖时间将延长15分钟。

5505500_image3.png

然后该函数将当前出价最高的人存入的ETH作为WETH返回给这个用户。基于合约定义_sendETHOrWETH的方式,我认为发送 WETH 而不是 ETH 是为了防止恶意合约通过定义恶意fallback函数来攻击金库。

结束拍卖

通过结束时间戳的实时拍卖可以通过调用ERC721TokenVault#end来结束。它将拍卖转换live为ended,并将金库的NFT(或NFT篮子)转移到获胜地址。

5505501_image3.png

拍卖结束后,金库份额所有者可以调用ERC721TokenVault#cash来赎回他们从拍卖中收集的ETH份额。如果份额所有者是智能合约,则发送WETH。金库份额随后被烧毁。

5505502_image3.png

兑换金库NFT

如果买家不想通过拍卖,他也可以通过控制所有金库的份额供应来获得完全的NFT所有权,然后调用ERC721TokenVault#redeem。该函数烧毁所有份额并将金库NFT转移给用户。拍卖状态转换为redeemed。

5505503_image3.png

对付有恶意的管理员

如果存在恶意的管理员,治理可以通过调用ERC721TokenVault# kick来指定另一个地址作为管理员,从而投票将管理员踢出去。

5505504_image3.png

申请费用

管理员收取管理金库的费用。ERC721TokenVault#claimFees可以被调用,以向管理员和管理人员创造ERC-20金库份额。年费是金库总份额供应的一定比例,每秒钟都会滴到管理者和治理者手中。只要当前区块时间戳和最后一个声明的时间戳之间已经过去了一段时间,费用就可以索赔。如果金库是通过拍卖购得的,则无法收取费用。

5505505_image3.png

到目前为止它做得怎么样?

让我们从平台的一些高级统计数据开始:

5505506_image3.png

下面我们可以看到所有成功分割并拍卖的NFT的结果(目前有9个),比较标价和最终拍卖价格的“利润”。

5505507_image3.png

https://dune.xyz/queries/96146/204625

以及更复杂的查询,得到一个碎片NFT的隐含值。我们首先从分割的NFT的ERC20代币所在的DEX池中获取最近的交易,然后取汇率的美元价值,并将其乘以该代币的总供应。

据此,我们得到59个不同的NFT池,其隐含估值分布如下:

5505508_image3.png

https://dune.xyz/queries/96482/204676

最后,我们可以看看一段时间内的总交易量:

5505509_image3.png

总结

Fractional允许NFT持有人在不出售全部资产的情况下看到其NFT的流动性,同时也允许价格发现。买家现在可以通过Fractional的金库份额购买他们以前无法负担的昂贵的NFT份额。不同的协议采用不同的方式进行NFT的分块/收购,而Fractional选择了AMM +拍卖作为其主要机制。我还在研究另一种名为Spectre的协议,它不相信低流动性高滑点的AMM用于分割代币和收购的链上拍卖。它结合了铸币厂和掉期交易的方式进行收购,这取决于资金池的流动性,它还利用闪电收购而非拍卖的方式进行去分割。我很想知道哪种机制最终会被更广泛地采用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK