去年 11 月,Crypokitties 的發佈給加密貨幣的世界帶來了風暴,有些加密貓的價格甚至漲到了 30 萬美圓,以太坊網絡擁堵不堪,平均貢獻了當時以太坊網絡30%的交易額。當 Cryptokitties 的用戶活躍度和去年年末的高峯期相比急劇降低之時,市場上出現了不少數字加密收藏品的變種。數字加密收藏品增加的背後是不可替代代幣出現以後釋放出來的助力。數據庫
NFT(Non-Fungible Token) 定義了一種生態中不可分割的、具備惟一性的代幣交互和流通的接口規範。
瀏覽器
在區塊鏈上,數字加密貨幣分爲原生幣和代幣兩大類。前者如Bitcoin、Qtum等,擁有本身的主鏈,使用鏈上的交易來維護帳本數據;後者如BOT、INK等,依附於現有的區塊鏈,使用智能合約來進行帳本的記錄。代幣之中又可分爲同質化和非同質化兩種。網絡
同質化代幣,即FT(Fungible Token),以ERC20和QRC20爲基本標準,是互相能夠替代、可接近無限拆分的token。而非同質化代幣,即NFT,則是惟一的、不可拆分的token,如加密貓、token化的數字門票等。app
FT的特性使其能夠用來表示現實世界中各類具備可替代性的事物,如貨幣、積分、股票等。這些事物須要能夠拆分,而後在用戶之間進行交換。在區塊鏈上,FT被普遍應用於發行新的數字貨幣。這些數字貨幣一般與公司的股權或是產品的使用權限進行掛鉤,吸引用戶的購買或炒做。函數
現在市場逐漸迴歸理性,也使咱們開始認識到FT的侷限性:現實生活中真正具備價值的事物是不可替代的,如一件商品、一份合同、一項資質等,這些具備惟一性的資產是沒法用FT進行錨定的。工具
相較於FT,NFT 的關鍵創新之處在於提供了一種標記原生數字資產全部權(即存在於數字世界,或發源於數字世界的資產)的方法,且該全部權能夠存在於中心化服務或中心化庫以外。NFT 的全部權並不阻止其餘人視察它或閱讀它,NFT 並非捕獲信息而後把它藏起來,只是捕捉信息而後發現該信息與鏈上全部其它信息的關係和價值。區塊鏈
同時,NFT因爲其非同質化、不可拆分的特性,使得它能夠錨定現實世界中商品的概念,例如通證化的門票、一瓶珍貴的紅酒、獨特設計的珠寶等等。NFT 使咱們可以將任意有價值的事物通證化,並追溯該信息的全部權,這樣就實現了信息與價值的交匯。ui
NTF是基於區塊鏈的差別性數字資產,兼容NTF的區塊鏈就像一個可以記錄任何商品的數據庫。NFT理論上能夠將現實中具備非同質化特性的事物都錨定起來,實現將現實世界通證化,造成一個價值互聯、信息互通的數字資產世界。
編碼
目前不可替代代幣的勢力能夠分爲四組:加密
不可替代代幣發佈者
不可替代代幣市場
不可替代代幣基礎設施
針對不可替代代幣的各種資源
而落到具體的應用場景中NFT分爲如下幾種[1]:
12
收藏品
咱們上面也提到過基於NFT設計的加密收藏品,那就是CryptoKitties,同時加密收藏品還有不少別的擴展方向,好比藝術品收藏。咱們能夠將須要進行存證的合同、版權、專利等信息,以NTF的形式保存在區塊鏈上,便於後續的更新、流轉、交易等。當它的全部者想出售時,只須要簡單地出具這枚NFT的標記信息來聲明做品的真實性和本身對該做品的全部權便可,同時這種認證是數字化可溯源的,由於藝術資產的全部權記錄在區塊鏈上,在保證交易合法性的同時也能夠防止藝術品的僞造和欺詐。
12
遊戲道具
NFT也正在完全改變遊戲世界。一般,遊戲中的角色會得到相似武器、衣服、房產等可交易的物品,爲每一個物品都建立一個NFT可使它們可以與遊戲中的積分代幣甚至現實世界的現金進行交易,這就造成了虛擬商品的在線數字經濟體系。這些NFT存儲在區塊鏈上,它們的信息、歸屬、以及全部交易記錄都將透明公開,且不可銷燬不可篡改。
12
電子門票
若是我有一張巨星演唱會的門票而你有一張籃球電子門票,它們是一樣類型的物品可是表明的價值卻徹底不一樣。因具有不可篡改、可追溯特徵,區塊鏈與存證有着自然的結合點,存證也所以成爲區塊鏈應用的典型場景之一。區塊鏈存證適用於全部須要進行存證、核證、取證的業務場景,尤爲是須要解決多方信任問題或獲取司法監管許可的狀況。同時門票數字化後的身份驗證還能防止假票和黃牛票,所以電子票務是NFT能夠改造的一個行業。
12
身份認證
咱們能夠將NFT應用到身份認證中來實現我的行爲的全紀錄。好比,得到一個不可交易的NFT來做爲出生證實、護照和認證我的駕照等等,儘管該NFT不可交易,可是經過權限控制能夠實現身份的交互驗證。咱們在招聘時能夠驗證一我的的身份NFT來查詢其大學文憑,在看病時申請查看醫生的身份信息來認證其資質等。身份認證將人token化,將全部屬性和行爲歷史都記錄在案。
12
電子存證
使用NFT,將現實世界中的合同、文書等信息進行鏈上去中心化存儲,防止僞造且便於追溯。同時,藉助於電子簽名、證書等技術,對文件的真實性和有效性進行證實。電子存證可有效地實現知識產權、版權、著做權等價值的電子化,而NFT賦予的交易特性又可使得這些價值直接在區塊鏈上進行交易,方便了價值的流通。
自從數字貨幣出現以來,將現實世界token化是整個行業一直在作的努力。2013 年風靡一時的彩色幣是最先想要給數字資產賦予獨特特性的嘗試之一。彩色幣是比特幣的附加產物, 或者在大多數案例裏,是比特幣可被分割的最小份額,也叫給satoshis「加了顏色」,以表明現實世界裏的資產,例如一筆房子、股票、債券、商品的交易。而合約幣則進一步地容許用戶在區塊鏈基礎上創造他們本身的實際資產。基於不可替代代幣NFT 標準的數字加密收藏品正是創建於這一基礎上,恰逢其時地繼續肩負彩色幣最初的使命,將現實資產與數字貨幣連接起來,NFT的實現也是現實世界token化的進程之一。
NFT的一個最受關注也是現今最流行、承認度最高的實現即ERC721標準協議[2]。ERC721自己是一個EIP(Ethereum Improvement Proposals),是一個由開發人員提出的以太坊改進方案,經以太坊委員會經過後成爲了ERC(Ethereum Request for Comment),即Ethereum意見徵求稿中的一員。ERC721 官方簡介是:A standard interface for non-fungible tokens, also known as deeds,即NFT。
ERC721做爲一個合約標準,提供了在實現ERC721代幣時必需要遵照的協議,要求每一個ERC721標準合約須要實現ERC721及ERC165接口,接口定義以下。除了標準接口以外,還有一些可擴展接口,例如ERC721Metadata系列接口定義了ERC721的一些基本信息,ERC721Enumerable系列定義了枚舉接口,這些都在標準中有詳細說明,再也不贅述。
interface ERC721 /* is ERC165 */ {
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
function balanceOf(address _owner) external view returns (uint256);
function ownerOf(uint256 _tokenId) external view returns (address);
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
function approve(address _approved, uint256 _tokenId) external payable;
function setApprovalForAll(address _operator, bool _approved) external;
function getApproved(uint256 _tokenId) external view returns (address);
function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}
interface ERC165 {
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
上述的全部接口構成了ERC721的完整標準接口和可擴展接口。須要注意的是,真正使用ERC721的時候,必須其中實現一些額外的功能和接口,例如_mint鑄幣操做、_burn銷燬操做、addTokenTo爲給定地址添加tokenId等,這些方法共同定義和實現了ERC721代幣協議,咱們能夠基於此將ERC271代幣應用於不少場景中,經過繼承其主要token合約來開發遵循ERC721協議的代幣,並自由的添加相應的業務邏輯來豐富應用。
因爲NFT的不可替代性和加密貓引起的數字收藏品的火爆,基於NFT的標準協議正在一步步地更新和迭代中。例如ERC875 [3]、ERC998 [4]等,雖然目前都在draft階段,但其提出的觀點是很是值得思考的。其中ERC875比較受到咱們的關注,由於NFT自己是對商品的定義,而商品一個重要的屬性就是交易。ERC875正是在ERC721的基礎上加入了交易功能,容許用戶使用區塊鏈上的原生幣購買NFT資產。
這裏咱們簡單分析一下ERC875合約中trade交易實現流程:
在token擁有者owner在想要賣出token時(可一次賣出多個token),owner用本身的祕鑰簽名售賣總額、成交有效期限、售賣的tokenId列表和合約地址並公佈;
買家在獲取到該簽名信息後,經過給定的一些APP幫助,從簽名恢復出tokenId列表和價格信息,以及代碼中的V、R、S簽名參數,將tokenId索引、V、R、S做爲trade輸入,與售賣總額相同價格的代幣(msg.value)共同構造一筆交易發送到合約地址調用trade接口;
trade函數中調用encodeMessage函數將msg.value和tokenId列表等信息一同編碼爲message,調用ecrecover函數驗證傳入的簽名信息V、R、S正確性,並求出賣家的地址;
將從賣家地址下登記的資產列表中找出本次售賣對應的每件商品的TokenID,並轉移登記到買家地址下的資產列表中,買家成爲這批物品的新主人,對於同一份售賣簽名信息,能夠同時有多個買家,這時候遵循先買先得的原則。
Qtum致力於創建一個具備高兼容性和擴展性的區塊鏈生態,NFT在Qtum生態中也是必不可少的。Qtum已經完成了同質化代幣FT的生態兼容,QRC20代幣標準一經發出就受到很大關注,有不少項目選擇使用QRC20標準在Qtum上構建本身的應用,取得了不錯的成果。所以,咱們計劃推出Qtum上的NFT標準,鼓勵開發者基於Qtum實現NFT的應用,具體包括如下幾個方面:
制定QRC721接口協議。協議將參照ERC721,根據最新的應用方向和社區的反饋進行調整。
發佈QRC721模板。開發人員計劃實現QRC721的基本功能而且完成Qtum上的調試,從而幫助更多的開發者構建符合QRC721標準的應用。
增長對QRC721的支持。根據開發者的需求和應用的發展狀況,陸續在瀏覽器、錢包等Qtum相關工具中增長對QRC721的支持。
經過對NFT的調研和分析,咱們看到了區塊鏈將來的一個發展方向,即用於標記虛擬或現實世界中的商品,從而實現商品的信息記錄、流轉、交易、追溯等功能。這大大拓寬了區塊鏈的應用前景,爲區塊鏈技術走向大衆提供了基礎。
[1] What Are NFTs? https://coincentral.com/nfts-non-fungible-tokens/
[2] ERC721: Non-Fungible Token Standard. https://eips.ethereum.org/EIPS/eip-721
[3] ERC875: A better NFT standard. https://eips.ethereum.org/EIPS/eip-875
[4] ERC998: Composable Non-Fungible Token Standard. https://eips.ethereum.org/EIPS/eip-998