一文了解 NFT 的生态系统(下)
一文了解 NFT 的生态系统(下)
本文是对论文《Understanding Security Issues in the NFT Ecosystem》的第二、三节内容的翻译整理,详细介绍了NFT生态系统的运作机制。文章从参与者、市场机制、用户身份验证、代币铸造、上架交易等多个维度,全面解析了NFT的生态系统,帮助读者深入了解这一前沿技术领域。
NFT 生态系统剖析
在本节中,我们提供了一个关于围绕 NFT 发展起来的经济的概述(如下图所示)。具体来说,我们确定了参与生态系统的参与者以及他们所互动的组成部分。
- 内容创作者将数字艺术品上传到数据托管服务器;
- 内容创作者授权卖家帮助自己完成 NFT 的铸造和出售;
- 卖家请求 NFT 市场上架一个 NFT 商品;
- NFT 市场根据卖家提供的信息去数据托管服务器获取数字艺术品;
- NFT 市场向代币合约传入相应的数字资产及其资产信息;
- 代币合约为其铸造新的 NFT 代币;
- 买家通过 NFT 市场下订单或出价;
- 订单被接受或拍卖结束后发生 NFT 所有权转移;
- 买家可以在自己的显示设备上查看数字艺术品;
- 显示设备从区块链那里获取代币;
- 显示设备从数据托管服务器那里获取数字艺术品;
我不理解为什么要单独拎一个显示硬件出来,因为 NFT 市场连的线已经太多了吗?
1 用户
NFT 通常用于销售数字艺术品,例如图像、音频和视频。NFT 生态系统中的用户分为三类:
- 内容创作者(content creator)
- 卖家(seller)
- 买家(buyer)
首先,创作者(creator)创建数字内容并上传到数据托管服务器,以使艺术品公开可访问。在对内容进行销售时,有些创作者(creator)的技术水平不够,无法将他们的艺术作品转化为 NFT 并将其作为代币存放在区块链上。因此,他们授权卖家(seller)来铸造 NFT 并在市场上销售。不过,内容创作者(creator)也可以自己扮演卖家(seller)的角色。
一旦在市场上列出(list),买家就可以按照售价购买艺术品,通过下订单(make orders)或者出价(place bids)的方式。如果他们的订单被接受或者他们在拍卖中获胜,则通过调用 transferFrom()
方法来将 NFT 的所有权从卖家转移到买家。
个人认为:NFT 市场中的 list 这一术语,就是指把艺术品上架以展示给潜在的客户。
2 市场
NFT 市场(NFTM)是用于交易 NFT 的 dApp 平台。NFTM 通常有两个主要组成部分:面向用户的网页应用程序、一组与区块链交互的智能合约。用户与网页应用程序交互,该应用程序随后代表用户向智能合约发送交易。主要有两种类型的合约:
- (1) 市场合约,实现与区块链交互的 NFTM 协议部分;
- (2) 代币合约,管理 NFT;
市场通常允许用户执行以下活动:
- (1) 用户认证
- (2) 代币铸造
- (3) 代币上架
- (4) 代币交易
这些与代币相关联的活动被统称为 event 事件。
根据这些事件存储的位置,可能有三种广泛的 NFTM 协议设计:
- 链上:所有事件都存储在区块链上。由于每个动作都需要消耗燃料费,这种设计使得对用户来说 NFTM 的运营成本很高。遵循这种设计的 NFTM 包括:Axie、CryptoPunks、Foundation 和 SuperRare;
- 链下:事件被记录在一个由 NFTM 管理的集中式、链下数据库中。用户通过与网页应用程序交互来执行各种活动,而不是与区块链交互,因此这种设计对燃料费友好。Nifty 是一个链下 NFTM 的例子;
- 混合型:根据事件的类型,一些存储在链上,一些存储在链下。为了确保操作的完整性,链上和链下事件通过加密校验相互关联。OpenSea 和 Rarible 采用这种模式。
3 用户身份验证
用户只有在完成注册后才能使用 NFTM 的服务。注册后,有两种不同的身份验证流程:
- (1) 基于经典凭据(用户名/密码)的身份验证;
- (2) 基于签名的身份验证。用户首先被要求对一个挑战字符串进行签名。然后,市场从椭圆曲线签名中恢复签署者(用户)的地址。OpenSea、Rarible、Foundation、CryptoPunks 和 SuperRare 采用这种模式。由于以太坊私钥本质上是不可猜测的,这种身份验证方法通常比传统的密码(密码通常是从有限字符集、较短长度和更容易暴力破解)更安全。
4 代币铸造
通过调用代币合约中的方法来铸造代币,代币合约通常遵守 ERC-721 或 ERC-1155 标准。
一个代币合约可以管理多个 NFT 的所有权。每个 NFT 都被分配了一个称为 _tokenId
的整数。因此在区块链上,NFT 被 (token_contract_address, _tokenId)
对(pair)唯一标识。
不同合约之间的 _tokenId
貌似没有说不能重复?因此这个 pair 像是一个复合主键。
一组类似的或属于同一主题的 NFT 被称为 collection(集合),例如 CryptoPunks,如下图所示:
NFT 可以通过许多不同的方式铸造:
- (1) 默认合约:代币作为由市场管理的、预先部署的、指定的代币合同的一部分被铸造。NFTM 如 OpenSea、Foundation、SuperRare 等在创建者(creator)未部署自定义合约的情况下,提供了帮助拥有一个 NFT 的默认合约;
- (2) 复制品合约:NFTM 代表创作者(creator)来部署一个合约以管理 NFT 所属的集合。部署的合约具有相同的字节码,但可以通过一些初始化参数进行定制。这样的 NFTM 包括 Nifty 和 Rarible 等。由于默认合约和复制品合约都由 NFTM 管理,因此它们一起被称为内部代币合约。
- (3) 外部合约:创作者(creator)自己部署一个自定义合约来管理 collection(收藏),然后再将其导入市场。为了与 NFTM 互操作,外部合约必须遵循一个成熟稳定的代币标准。否则,需要进行定制集成。OpenSea 和 Rarible 允许在其平台上使用外部合约。
虽然单个的代币合约可以管理一个或多个 collection(集合),但是在一般情况下,复制品合约和外部合约管理单个集合,而市场默认合约管理多个集合。在后一种情况下,NFTM 去中心化应用(dApp)需要维护一个链下关联,将一系列的 _tokenId
与它们所属的 collection(集合)关联起来。
5 代币上架
一旦创建完毕,卖家就会列出(list)他们的资产以供销售。要想在平台中上架 NFT,一些 NFT 市场,如 Foundation、SuperRare、Nifty,规定要么是卖家本身,要么是 NFT 所属的整个 collection(集合)通过验证。即使那些提供可选验证功能的 NFT 市场,例如 OpenSea、Rarible,艺术家或 collection(集合)的验证也能提供可信度,并增加买家的信心。NFT 市场在经过验证的艺术家和 collection(集合)的资料页上显示特殊的徽章,这有助于建立品牌,并享受优先待遇以提高销售。例如搜索优先权和安全上架,以在购买前抑制与安全相关的警报。
6 代币交易
买家可以通过下订单(make orders)或者出价(place bids)的方式购买正在出售的资产。当一个订单被接受,或者一个拍卖被结算时,NFT 市场会将资产从卖家的账户转移到买家的账户。通常,这时 NFT 市场会收取服务费用。
在 NFT 市场中有两种购买方式:一种是卖家固定价格,买家直接购买;另一种是卖家实施拍卖,买家之间通过竞价购买。
下面讨论 NFT 市场拍卖系统的几个关键方面:
- (1) 定价协议:出价价格可以随着每次出价而增加或减少。在英式拍卖中,出价从保留价格开始,这是卖家愿意接受的 NFT 最低价格。买家的后续出价逐渐提高价格。NFT 最终归最高出价者所有。大多数 NFT 市场,如 OpenSea、Foundation 和 SuperRare,使用的都是英式拍卖方法。在荷兰式拍卖中,出价从高价开始。卖家随后逐渐降低价格。NFT 归第一个接受出价的出价者所有。Axie 遵循荷兰式拍卖的模式。
- (2) 出价存储:出价可以存储在链上,例如 CryptoPunks、Foundation、SuperRare,或者存储在链下,例如 Nifty、Rarible、OpenSea 。有一些协议,如 OpenSea 使用的 Wyvern,为了节省燃料费,将卖出订单和出价都存储在链下,尽管订单匹配和 NFT 转移是在链上发生的。因此,市场合约通过加密验证买入订单与相关的卖出订单,以防止恶意买家购买不在销售中的物品,或者篡改现有的卖出订单。
- (3) 活跃出价:一些 NFT 市场不允许对同一资产提出多个活跃出价。例如,在 CryptoPunks、Foundation 或 SuperRare 中,当一个出价者超过了当前的最高出价者,后者会自动获得退款。
- (4) 出价撤回:一些 NFT 市场,如 CryptoPunks,允许出价的撤回,而其他市场,例如 Foundation,则不允许。
- (5) 出价结算:在大多数情况下,出价结算不需要卖家的干预,即资产会自动归最高出价者所有。然而,对于一些像 CryptoPunks 这样的 NFT 市场,出价必须得到卖家的明确接受。
当一个资产由非创作者(creator)的卖家(seller)出售时,这被称为二次销售。版税是创作者(creator)因每一次这样的二次销售所获得的支付。在第一次销售发生之前,创作者(creator)需要指定版税金额,之后从每一次二次销售中扣除并支付给 creator(创作者)。扣款在链上或链下都能进行:
- (1) 在链上进行,在每一次购买交易中由市场合约计算版税;
- (2) 在链下进行,由 NFT 市场的 dApp 跟踪从每次销售中累积的版税;
7 外部实体
在 NFT 市场和区块链之外,存在一些服务和设备,它们为系统的运作提供了必要的基础设施支持。例如,创作者(creator)会将他们的艺术品存储在 Web 服务器或存储(storage)服务器上,如 Amazon S3 或 IPFS 。当买家购买 NFT 时,创作者(creator)可以在相册风格的网站或数字 NFT 相框上展示自己的艺术品。这些网站、相框和 NFT 市场分别从区块链中获取代币,从服务器中获取艺术品。