【区块链安全 | 第六篇】NFT概念详解

文章目录

NFT

NFT(Non-Fungible Token,非同质化代币)是一种独一无二的数字资产,广泛用于艺术品、游戏资产、数字身份、虚拟地产等。

在区块链生态中,代币主要分为两大类:

1.NFT(Non-Fungible Token,非同质化代币)

2.FT(Fungible Token,可替代代币)

它们在同质性、可分割性、存储方式、交易方式等方面存在显著区别。

NFT(非同质化代币)

NFT 代表独一无二的数字资产,每个 NFT 具有不同的 Token ID 和元数据(Metadata)。

核心特点

1.每个 NFT 都是独特的,不可互换,比如一幅数字艺术品、一个游戏装备(你买了一幅 Beeple 的 NFT 画作,编号 #2053,它是独一无二的,不能交换成另一幅不同的 NFT 画作)

2.不能拆分为更小的单位(某些 ERC-1155 例外)。

3.NFT 由 ERC-721 或 ERC-1155 标准(智能合约)定义,确保唯一性和可追溯性。

主要应用

1.艺术品(如 Bored Ape Yacht Club)

2.游戏资产(如 Axie Infinity)

3.门票与会员卡(如 NFT 票务系统)

4.虚拟地产(如 The Sandbox)

5.数字身份(如 ENS 域名)

交易方式

1.去中心化市场(OpenSea、Blur)

2.P2P 交易(用户直接交换)

3.拍卖机制(竞拍最高者得)

FT(可替代代币)

FT 是标准化、可分割、可互换的代币,主要用于支付、治理、流动性交易等场景。

核心特点

1.可互换,同一代币的单位彼此相同,如 1 USDT = 1 USDT(你拥有 1 ETH,你可以把它换成任何其2.他人的 1 ETH,它们的价值和属性完全相同。)

3.可拆分成小数单位(如 0.1 ETH)。

4.由 ERC-20 或 BEP-20 标准(智能合约)管理。

主要应用

1.加密货币(ETH、BTC)

2.稳定币(USDT、DAI)

3.DeFi 代币(UNI、AAVE)

4.治理代币(COMP、MKR)

交易方式

1.中心化交易所(CEX)(如 Binance、Coinbase)

2.去中心化交易所(DEX)(如 Uniswap、Curve)

3.智能合约交互(如借贷协议、收益聚合器)

以太坊 NFT 标准

以太坊支持多种 NFT 标准,其中ERC-721 和 ERC-1155 是最主要的两种。它们定义了 NFT 如何创建、转移、存储及交互。

ERC-721(单一资产)

ERC-721 是第一个 NFT 标准,每个 NFT 具有唯一 Token ID,代表不可分割、独一无二的资产。

主要特点

1.每个 NFT 独立存在,具有唯一的 Token ID

2.不可分割,无法交易 0.5 个 NFT(必须整件转移)

3.智能合约存储 Token 拥有者,支持交易和授权操作

4.适用于数字艺术、收藏品、门票、虚拟地产等

一个 ERC-721 NFT 代币的基本实现:

solidity 复制代码
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract MyNFT is ERC721 {
    uint256 private _nextTokenId;
    
    constructor() ERC721("MyNFT", "MNFT") {}

    function mint(address to) external {
        _safeMint(to, _nextTokenId);
        _nextTokenId++;
    }
}

//  _safeMint(to, tokenId): 创建并发送 NFT 到 to 地址
//  tokenId:每个 NFT 的唯一 ID,如 #1001、#1002

ERC-1155(多资产)

ERC-1155 允许同一个合约管理多种类型的代币,可同时包含可替代代币(FT)(如游戏金币、代币)、非同质化代币(NFT)(如游戏道具、皮肤)

主要特点

1.支持同质化 & 非同质化代币(同一合约内)

2.批量转移(一次交易可转移多个 NFT/FT,节省 Gas)

3.多 ID 结构(同一 Token ID 可有多个数量,如 "100 把剑")

4.适用于游戏资产、收藏品、元宇宙物品等

代码示例

solidity 复制代码
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";

contract MyGameItems is ERC1155 {
    uint256 public constant SWORD = 1;
    uint256 public constant SHIELD = 2;
    
    constructor() ERC1155("https://mygame.com/metadata/{id}.json") {
        _mint(msg.sender, SWORD, 100, "");  // 100 把剑
        _mint(msg.sender, SHIELD, 50, "");  // 50 个盾
    }
}

// SWORD = 1,代表编号 1 的游戏道具
// SHIELD = 2,代表编号 2 的游戏道具
// _mint(msg.sender, SWORD, 100, ""):铸造100 把剑

NFT 市场

主要交易平台

版税机制

NFT 版税(Royalty) 是指 NFT 在二级市场交易时,创作者可以自动获得一部分交易金额作为版税,通常设定在 5% - 10% 之间。

举个例子:艺术家 Alice 创建 NFT,最初售价 1 ETH,她设置 10% 版税。Bob 购买后,以 5 ETH 转售,Alice 将自动收到 0.5 ETH(5 ETH × 10%) 作为版税。

版税的运作方式

1.在 NFT 交易时,智能合约自动执行版税规则

2.买家支付交易金额

3.智能合约自动扣除版税

4.剩余款项支付给卖家

5.版税转入创作者的钱包

目前,Blur 和 OpenSea 的竞争导致版税机制逐渐被绕过。OpenSea 最初强制执行版税,但 Blur 允许 0% 版税。这导致 NFT 交易量流向 Blur,OpenSea 被迫改变政策。最终,版税变为"可选支付",创作者收益大幅下降。并且,一些买家和卖家私下交易,绕过版税机制。

NFT 借贷

NFT 借贷允许 NFT 持有者抵押 NFT 以借出 ETH、USDT 或其他代币,同时借贷平台设有清算机制来防止风险。

目前,市场上主流的 NFT 借贷协议主要包括 P2P(点对点)借贷和 P2Pool(资金池)借贷。

P2P 模式(点对点)

代表协议:NFTfi

借款人与贷款人直接匹配,双方协商贷款金额、利率、期限等条款。

如果借款人到期未还款,NFT 会自动归贷款人所有。

P2Pool 模式(资金池)

代表协议:BendDAO、X2Y2 Lending

借款人将 NFT 作为抵押品,从资金池直接借款。

贷款人存入 ETH/USDT 赚取利息,智能合约根据预言机价格评估 NFT 价值。

清算机制:当 NFT 价格跌破一定阈值,NFT 会被拍卖。

NFT 安全

NFT 交易涉及智能合约,因此漏洞点经常发生在智能合约上,在【区块链安全 | 第五篇】DeFi概念详解中有介绍。

相关推荐
燕雀安知鸿鹄之志哉.20 分钟前
ctfshow WEB web5
安全·web安全·网络安全·系统安全
搬砖魁首1 小时前
2024年零知识证明(ZK)研究进展
区块链·零知识证明·zk·sumcheck·sum-check
Sinokap2 小时前
Let’s Encrypt 宣布推出短期证书与 IP 地址支持,推动 Web 安全迈向新高度
前端·tcp/ip·安全·ocr
屎派克3 小时前
物理安全——问答
安全
是懒羊羊吖~5 小时前
RCE漏洞
笔记·安全
人类群星闪耀时5 小时前
区块链在教育领域的创新应用:改变传统教育的未来
区块链
网络安全-老纪6 小时前
网络安全-网络安全基础
安全·web安全·php
矿渣渣6 小时前
嵌入式系统安全架构白皮书
安全·安全架构
Sweet_vinegar7 小时前
Wire1
安全·ctf·misc·攻防世界
Blockchina9 小时前
第 4 章 | Solidity安全 权限控制漏洞全解析
安全·web3·区块链·智能合约·solidity