技術解讀:非同質化代幣與非同質化多鏈區塊鏈
非同質化的token,是個人化的,是個性化的,包含你自己獨特人格烙印的東西。
公鏈是區塊鏈發展的前提基礎,也是區塊鏈行業未來發展的核心保障。而目前區塊鏈的發展現狀是,底層公鏈的性能尚未發展起來,在其上構建的各類DApp嚴重受限于性能,各種共識算法都有不完美之處。以太坊(Ethereum)是一個建立在區塊鏈技術之上, 去中心化應用平臺。它允許任何人在平臺中建立和使用通過區塊鏈技術運行的去中心化應用。在以太坊上發行最廣泛的即是同質化代幣——ERC20 Token,作為一種預發行的通用代幣,它構建了幾乎市面上絕大多數通證經濟的基礎。而ERC721是以太坊智能合約更加完善的體現,它可以把各種不同特征的事物進行具象化定義,并求得完全非同質的解。本文將淺析同質化代幣的抽象共識,非同質化代幣的映射理念,并以此提出對于多鏈體系的非同質化構思。
同質化代幣
很多開發者已經躍躍欲試參與到區塊鏈開發事業當中,但往往會感到有點力不從心。因為公鏈的底層邏輯雖不復雜但也是一個浩大的工程,在公鏈/項目未上線前的人力物力成本也是十分巨大的。以太坊智能合約為區塊鏈開發者們打開了新思路,他們通過構建一種同質化的token,非常輕松的就能將自己項目的權益預發放出去,同時獲得早期的資金。
也許你經常看到ERC20和代幣一同出現, ERC20是以太坊定義的一個代幣標準。要求我們在實現代幣的時候必須要遵守的協議,如指定代幣名稱、總量、實現代幣交易函數等,只有支持了協議才能被以太坊錢包支持。
如上圖所示,一個典型的ECR20代幣有如下基礎變量和函數:
name : 代幣名稱
symbol: 代幣符號
decimals: 代幣小數點位數,代幣的最小單位, 18表示我們可以擁有 0.0000000000000000001單位個代幣。
totalSupply() : 發行代幣總量。
balanceOf(): 查看對應賬號的代幣余額。
transfer(): 實現代幣交易,用于給用戶發送代幣(從我們的賬戶里)。
transferFrom(): 實現代幣用戶之間的交易。
allowance(): 控制代幣的交易,如可交易賬號及資產。
approve(): 允許用戶可花費的代幣數。
ERC20合約的TOKEN一直以來被視以一種單純的鏈上資產來看待,它一直“活的”像是被映射在Ethereum上的Coin,而社群標簽&價值共識是本來ERC20運行的一個深層含義。
形似余額但并不是為了度量余額,熟悉比特幣和以太坊區別的朋友可能都會有所了解,ETH是賬戶機制的設計而BTCOIN是未花費輸出的設計。從技術層狹義的理解就是重隱私性到側重空間性能的不同,但是更深的一層哲學理解便是通貨的度量和共識的度量。可以簡單的說,UTXO模擬了掏出不同面值的貨幣并獲得找零的流程,模擬了各式貨幣的流通(其中還有抽象的部分),應用在通貨資產定義的比特幣上非常的合適。而ETH的賬戶設計其實不能簡單理解為我們最常聯想到的您在銀行里的那個賬戶,從普通人角度去看銀行賬戶是一個管理自己存下來的鈔票(未花費輸出)的地方,而Ethereum的賬戶的非常重要的一部分意義其實是對每一個賬戶背后共識度量的集合。
在今年(2018年)4月至5月份,BEC、SMT等曝出的無限刷代幣量漏洞,明顯提升了大家對ERC20“資產”的認識,就是在合約中看見那個總供給量上限(TotalSupply)并不會真正限制前供給量(currentTotalSupply),這次事件中它們的當前供給量一飛沖天“直逼月球”。其實在以太坊上TotalSupply只起到了一個告知作用,對currentTotalSupply并沒有強制的約束,這正是對通貨度量和共識度量的區別的一個體現。度量通貨則總攻擊力必須要對當前供給量有絕對的限制,而度量共識則合約本身包括這份“告知書”就是共識的內容之一,"履約"并不是強制的因為"違約"也可以是共識。所有Token的持有者共同的認知,微妙的支撐著各種ERC20 Token的價值,持有者也便在悄然組成一個個或緊密或松散共識社群。
每一個ERC20 Token 持有者們就像是一個群,持有的份額分布正是從“群管理”到“群新人”的自治分布。對應的持有的Token越多與這個群體關系越緊密,相應的擁有更高的話語權,持有的越少越邊緣,越相對事不關己,話語權也越微不足道。Erc20Token正是每一個社群的標簽,共識價值與每一個成員都不同程度的息息相關,這種Token更是它的復合載體。
當然這并不是Erc20Token唯一勝任的事情,對于普通幣民來說它們現在更多的是被視作一種僅僅是背著各種故事用途的資產,像自己買的股票一樣在交易所里面當碼子使用。不過隨著廣大投資者的認知逐步提升,這其中更多的理解將被更廣泛的接受,就像對各種Erc標準其術業更專攻的認識。譬如說現在更多的人知道有時錨定某一特定的事物,Erc721才是更好的選擇。
非同質化代幣
什么是ERC-721?現在我們看到的各種加密貓貓狗狗都是基于ERC-721創造出來的,每只都是一個獨一無二的ERC-721代幣,不過ERC-721在區塊鏈世界遠不止貓貓狗狗,它更大的想象空間在于將物理世界的資產映射到區塊鏈上。
ERC721 是由Dieter Shirley 在2017年9月提出。Dieter Shirley 正是加密貓CryptoKitties背后的公司Axiom Zen的技術總監。因此加密貓也是第一個實現了ERC721 標準的去中心化應用。之前,該標準仍雖已被廣泛使用,但在官方一直處于草稿階段,直到6月,ERC721號提議才正式被以太坊作為標準接受。
那怎么理解非同質代幣呢?非同質代表獨一無二,以加密貓為例,每只貓都被賦予擁有基因,是獨一無二的(一只貓就是一個NFTs),貓之間是不能置換的。這種獨特性使得某些稀有貓具有收藏價值,也因此受到追捧。
ERC20代幣是可置換的,且可細分為N份(1 = 10 * 0.1), 而ERC721的Token最小的單位為1,無法再分割。
如果同一個集合的兩個物品具有不同的特征,這兩個物品是非同質的,而同質是某個部分或數量可以被另一個同等部分或數量所代替。
非同質性其實廣泛存在于我們的生活中,如圖書館的每一本,寵物商店的每一只寵物,歌手所演唱的歌曲,花店里不同的花等等,因此ERC721合約必定有廣泛的應用場景。通過這樣一個標準,也可建立跨功能的NFTs管理和銷售平臺(就像有支持ERC20的交易所和錢包一樣),使生態更加強大。
ERC721最為一個合約標準,提供了在實現ERC721代幣時必須要遵守的協議,要求每個ERC721標準合約需要實現ERC721及ERC165接口,接口定義如下:
如上圖所示,一個典型的ECR721代幣有如下基礎變量和函數:
balanceOf(): 返回由_owner 持有的NFTs的數量。
ownerOf():返回tokenId代幣持有者的地址。
approve(): 授予地址_to具有_tokenId的控制權,方法成功后需觸發Approval 事件。
setApprovalForAll():授予地址_operator具有所有NFTs的控制權,成功后需觸發ApprovalForAll事件。
getApproved()、isApprovedForAll():用來查詢授權。
safeTransferFrom():轉移NFT所有權,一次成功的轉移操作必須發起 Transer 事件。
ERC721定義的一些函數使其和ERC20代幣標準存在一致的地方。這樣做的目的在于更加方便現有錢包展示有關于代幣的簡單信息。這些函數使符合該標準的智能合約表現得像諸如比特幣或以太坊之類的普通加密貨幣,方式在于定義使用戶執行諸如將代幣發送給其他人和核實賬戶余額等動作的函數。這些函數定義了合約處理代幣所有權的方式以及轉移所有權的方式。其中最值得注意的函數為takeOwnership和transfer,分別擔任提取和發送功能,且對用戶之間轉移代幣來說必不可少。
函數ownerOf返回某代幣的所有者的地址。由于每個ERC721代幣都是非同質且因此獨一無二的,其在區塊鏈上通過一個唯一的ID被查詢。我們可以利用其ID判斷代幣的所有者。
函數approve批準或授予另一個實體代表所有者轉移代幣的權利。例如,如果Alice擁有1個MyNFT(我的非同質代幣),她可以為朋友Bob調用 approve 函數。調用成功后,Bob稍后就可以代表Alice獲得該代幣的所有權或對該代幣進行操作。關于所有權轉移的更多內容可參見函數 takeOwnership 和 transfer 。
函數transfer,轉移代幣的下一個方法就是使用該函數。函數transfer讓代幣所有者將其代幣發送給另一個用戶,與獨立加密貨幣類似。然而,只有收款賬戶事先被打款賬戶授予獲得代幣的權利,轉賬才能開始。
非同質化代除了表示你擁有某種東西,然后,這個所有權反過來能證明關于你自身的某個狀態。可收藏的對象并不限于電子貓。人類一直以來有收藏東西的歷史;這沒什么新鮮的。從物理貨幣到神奇寶貝卡,人們喜愛收集。這是一種出于對稀缺物品的獨特興趣而形成的習慣。商品價值與其稀缺程度有關,與此類似的是,收藏物對于收藏者的價值與其和其它物品相比起來的稀罕程度相關。
比如,你參加某個社團活動,然后社團會給參與者一個token,然后,當你在自己的朋友圈曬這個token時,朋友圈里的任何人其實都可以通過區塊鏈驗證你是否擁有這個token,并且這也將是一個非常強烈的社交信號。且當這個社團的象征意義越大(比如哈佛大學的博士學位),或者在越來越多的人心中形成共識時,這個token所代表的信息量就越大和明確。
我們能夠將以太坊代幣看作稀有且具有收藏價值的物品,并且其中每個代幣都遵循以太坊社區內被稱為ERC721的標準。以太坊代幣標準721,或稱ERC721,是Dieter Shirley在2017年底引入的一項以太坊改進計劃。這項提議標準讓智能合約能夠像ERC20一樣按照可交易代幣進行操作。ERC721代幣是獨一無二的,原因在于這些代幣是非同質的。
再想想,其實我們的學位、信用額度是不是都有類似的功能?許多銀行的信用卡額度都是據你所擁有的信用卡最高額度來審批給你的額度,現在也有許多單位會要求你出示芝麻信用分。如果你是某一產品或設備的極熱Fans,比如音響設備、手表,你擁有東西本身,就同時在向接觸到你的人傳達了許多你特有的信息。
當你把所有的東西都平權化,所有人都擁有平等的接入某一個東西的權利,這時,每個人其實反過來是喪失了自己的個性化(這其實就是ERC20同質化token)。
所以,非同質化的token,是個人化的,個性化的,包含你自己獨特人格烙印的東西。它可能成為現在這個時代的一種自我表達,這個自我表達比其他任何的語言和媒體更有分量、更有意義。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。