NFT交易平臺商城開發系統錢包搭建技術

搭建猿punk2558發表於2023-04-07

非同質化代幣(NFT)是指基於區塊鏈技術,用於表示數字化資產或數字資產的獨一加密令牌,不同於比特幣等同質化代幣,具有不可分割、不可替代的特性,使用非同質化代幣,為具有特定價值的特定資產安全方便的標識了其在區塊鏈上的所有權。

1)a unique digital identifier that cannot be copied,substituted,or subdivided,that is a recorded in a blockchain,and that is used to certify authenticity and ownership(as of a specific digital asset and specifc rights relating to it);

2)the asset that is represented by an NFT.

(1)NFT是一種 獨一的數字表示,不能被複制、更換、切分,記錄在區塊鏈之中,用於檢驗真實性和所有權(例如特定數字資產或相關特定權利);

(2)可以用一個NFT來表徵的資產。換句話說,NFT是一種記錄在區塊鏈裡,不能被複制、更換、切分的,用於檢驗特定數字資產真實性或權利的 獨一資料表示。NFT可以用來表徵某個資產。

NFT非同質化代幣|NFT定義_NFT是什麼

NFT為非同質化代幣,與非同質化代幣NFT相對應的就是同質化代幣FT(Fungible Token),又是一個陌生的名詞,但提到它其中一個代表,你就很容易明白了——比特幣。FT是可以隨意互換、拆分及整合的,具有統一性的代幣。就比如說,你手中的一枚比特幣和我手中的一枚比特幣,本質上是完全一模一樣的,沒有任何區別,而且還可以被分割成0.1個,這就是同質化的代幣。

再舉一個例子,美元等法定貨幣就是很好的同質化例子。張三擁有5美元鈔票,李四也有5美元鈔票,兩人的鈔票可以相互交換,而沒有任何變化和影響。

非同質化的一個極端例子是藝術品。例如,一幅畫通常僅會有一個原始本。

NFT非同質化代幣|NFT定義_NFT是什麼

二、NFT特點

NFT的定義更宜為:基於區塊鏈等加密技術產生的,具有(1)不可複製(2)不可修改(3)不能切分的確認權屬和真實性的虛擬財產或財產性利益的憑證。

獨一性:每個NFT具有不同屬性,這些屬性通常儲存在代幣的後設資料中。

可證明的稀缺性:一般僅有少量NFT只有一個副本,代幣數量可以在區塊鏈上驗證,具有可證明性。

不可分割性:大多數NFT無法拆分,因此不能購買或轉讓NFT的一部分。

三、NFT標準:以太坊ERC-721和ERC-1155為標準z流行。

NFT非同質化代幣|NFT定義_NFT是什麼

儘管NFT可以在任何支援智慧合約程式設計的區塊鏈上部署,但以太坊ERC-721和ERC-1155標準是最引人注目的。

ERC-20是在以太坊區塊鏈上建立代幣的知名標準,USDT、DAI等穩定幣以及LEND、YFI、SNX和UNI等DeFi代幣都使用這一標準。

ERC-721是建立非同質化代幣的通用標準。ERC-721允許建立具有不同屬性的可區別代幣的合同。

ERC-1155用於建立非同質化代幣的下一步,它允許建立同時支援同質化和非同質化代幣的合同。該標準是由基於區塊鏈的遊戲專案Enjin開發。

ERC-1155標準允許開發人員自由定義同質化和非同質化代幣,並規定這些代幣的數量。

四、NFT+DeFi

NFT可以藉助去中心化金融釋放更多潛力。當前,絕大多數DeFi借貸協議都需抵押品。最有趣的一個想法是將NFT用作抵押。這意味著,可以把代表藝術品、數字土地甚至代幣化房產的NFT作為抵押品,然後借貸出其他資產。

除了用作抵押品,NFT還能用於保險、債券或期權等更復雜的金融產品中。Yearn Finance的Yinsure是保險領域應用NFT的案例。在Yinsure中,每個保險合同都用NFT表示,可以在Rarible等二級市場上交易。

智慧合約和NFT相結合,NFT可以用於私募,持有NFT可以分U,純智慧合約實現,

現在開原始碼,如下。

//SPDX-License-Identifier:MIT

pragma solidity^0.8.6;

abstract contract Context{

function _msgSender()internal view virtual returns(address){

return msg.sender;

}

function _msgData()internal view virtual returns(bytes memory){

this;

//silence state mutability warning without generating bytecode-see

return msg.data;

}

}

interface IUniswapV2Pair{

event Approval(

address indexed owner,

address indexed spender,

uint256 value

);

event Transfer(address indexed from,address indexed to,uint256 value);

function name()external pure returns(string memory);

function symbol()external pure returns(string memory);

function decimals()external pure returns(uint8);

function totalSupply()external view returns(uint256);

function balanceOf(address owner)external view returns(uint256);

function allowance(address owner,address spender)

external

view

returns(uint256);

function approve(address spender,uint256 value)external returns(bool);

function transfer(address to,uint256 value)external returns(bool);

function transferFrom(

address from,

address to,

uint256 value

)external returns(bool);

function DOMAIN_SEPARATOR()external view returns(bytes32);

function PERMIT_TYPEHASH()external pure returns(bytes32);

function nonces(address owner)external view returns(uint256);

function permit(

address owner,

address spender,

uint256 value,

uint256 deadline,

uint8 v,

bytes32 r,

bytes32 s

)external;

event Mint(address indexed sender,uint256 amount0,uint256 amount1);

event Burn(

address indexed sender,

uint256 amount0,

uint256 amount1,

address indexed to

);

event Swap(

address indexed sender,

uint256 amount0In,

uint256 amount1In,

uint256 amount0Out,

uint256 amount1Out,

address indexed to

);

event Sync(uint112 reserve0,uint112 reserve1);

function MINIMUM_LIQUIDITY()external pure returns(uint256);

function factory()external view returns(address);

function token0()external view returns(address);

function token1()external view returns(address);

function getReserves()

external

view

returns(

uint112 reserve0,

uint112 reserve1,

uint32 blockTimestampLast

);

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020115/viewspace-2944367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章