以太坊是項目代幣發(fā)行及運行的主要平臺。根據(jù)ICOWatchlist 10月17日的數(shù)據(jù),通過以太坊平臺進(jìn)行ICO的項目市值占到所有ICO項目市值的82.66%。以太坊平臺上有很多ERC代幣。根據(jù)Etherscan 10月17日的數(shù)據(jù),以太坊上ERC-20代幣數(shù)量達(dá)到130058種,ERC-721代幣數(shù)量為276種。除了ERC-20、ERC-721之外,以太坊平臺上還有很多其他類型的ERC代幣。
這些代幣有不同的使用場景,不同的使用場景因為要滿足不同的需求,對代幣的屬性、功能、操作都提出了不同的要求。這就是為什么現(xiàn)在市場上會有這么多形形色色ERC代幣標(biāo)準(zhǔn)的原因。
所謂ERC,就是Ethereum Request for Comment,以太坊代幣協(xié)議。不同的協(xié)議對各自代幣的屬性、功能會有不同的設(shè)置。今天,區(qū)塊真探梳理了十幾種比較典型的ERC代幣協(xié)議供小伙伴們參考。此外,真探還針對ERC代幣協(xié)議提出了兩點思考,感興趣的小伙伴歡迎一起互動呀。
01
以太坊上有哪些ERC代幣協(xié)議
先介紹一下ERC-20代幣協(xié)議,這是第一代數(shù)字代幣標(biāo)準(zhǔn),同時也是以太坊網(wǎng)絡(luò)中最主要的代幣標(biāo)準(zhǔn),大部分1C0項目的代幣使用的都是這種協(xié)議。
一般情況下,開發(fā)人員在創(chuàng)建DApp(去中心化應(yīng)用)時會開發(fā)出對應(yīng)的內(nèi)生代幣。如果不對這些代幣設(shè)置一個統(tǒng)一的標(biāo)準(zhǔn),那么錢包、交易所,以及需要與多種DApp進(jìn)行交互的智能合約等每與一種新的代幣進(jìn)行交互就需要更新系統(tǒng)代碼,會非常麻煩。
為了解決這個問題,以太坊系統(tǒng)在2015年提出了ERC-20代幣協(xié)議。簡單來說,ERC-20代幣標(biāo)準(zhǔn)就是DApp開發(fā)人員在項目代幣中采用的一套標(biāo)準(zhǔn),以確保自己的代幣能兼容ERC-20協(xié)議,從而兼容上述的錢包、交易所、智能合約等平臺,并且提高操作效率。
ERC-20協(xié)議為以太坊網(wǎng)絡(luò)做出了巨大貢獻(xiàn),但是也存在一個比較嚴(yán)重的問題。如果用戶將ERC-20代幣發(fā)送到代幣自身(代幣本質(zhì)上是一種智能合約)或者不兼容智能合約時,會導(dǎo)致資金丟失,因為此類智能合約無法做出響應(yīng)。為了解決這個問題,同時滿足其他應(yīng)用場景需求,市場上逐漸出現(xiàn)了其他ERC代幣標(biāo)準(zhǔn)。
名稱:ERC-223
提出時間:2017年5月3日
類型:標(biāo)準(zhǔn)代幣
首先,ERC-223在ERC-20的基礎(chǔ)上引入了一個新功能,通過回退函數(shù)來防止代幣被發(fā)送到不兼容合約中,從而避免代幣丟失。
其次,ERC-223代幣在轉(zhuǎn)移的過程中只需觸發(fā)1個交易步驟(ERC-20使用的是transfer函數(shù),代幣在轉(zhuǎn)移的過程中需要觸發(fā)2個交易步驟,第一步用于請求交易,第二步才是通過合約執(zhí)行交易),所以,基于ERC-223的代幣轉(zhuǎn)移效率更高,花費的Gas更少。
第三,ERC-223代幣向后兼容ERC-20代幣。也就是說,ERC-223在解決ERC-20缺陷或者優(yōu)化ERC-20的同時,繼續(xù)保有ERC-20的其他功能。
名稱:ERC-777
提出時間:2017年11月20日
類型:標(biāo)準(zhǔn)代幣
詳情:首先,如上所述,ERC-20代幣在轉(zhuǎn)移的過程中需要觸發(fā)2個交易步驟,而ERC-777采用send函數(shù),代幣在轉(zhuǎn)移的過程中只要觸發(fā)1個交易步驟。和ERC-223一樣,代幣交易效率更高,Gas費用更低。
其次,ERC-777可以通過send函數(shù)來調(diào)用ERC-820合約,ERC-820本質(zhì)上是一個信息記錄表,通過ERC-820合約,ERC-777可以判斷與其交互的合約是否兼容,如果不兼容,就會取消交易,從而避免代幣丟失。
第三,ERC-777在ERC-20的基礎(chǔ)上增加了hook函數(shù)。通過這個函數(shù),ERC-777合約能控制代幣在特定交易環(huán)境中的行為,也允許交易雙方干預(yù)交易過程。舉個例子。ERC-777可以在交易發(fā)送前向代幣發(fā)送方發(fā)出提醒,允許發(fā)送方取消交易。
ERC-777還能基于hook函數(shù)屏蔽特定地址或代幣類型的交易。在實現(xiàn)這一功能時,ERC-777也會調(diào)用ERC-820協(xié)議。比如,代幣持有者可以將某些不可信地址列入黑名單,屏蔽與這些地址間的交易,從而提升資金的安全性。
第四,ERC-777添加了operator。一個operator就是一個地址,可以代表另一個地址發(fā)送并且銷毀代幣。代幣持有者可以指定operator或者default operator,也可以隨時撤銷operator。
通過operator操作,代幣持有者可以實現(xiàn)一系列不同的功能。比如,將代幣自動支付到某合約或者可信地址,或者根據(jù)一定的規(guī)則幫助分配代幣持有者的數(shù)字資產(chǎn)。比如,設(shè)定一定的條件,當(dāng)條件滿足時將代幣從熱錢包轉(zhuǎn)移至冷錢包;進(jìn)行代幣捐贈或者再投資等等。
第五,在實現(xiàn)以上功能的同時,ERC-777也實現(xiàn)了對ERC-20的向后兼容。
名稱:ERC-1155
類型:標(biāo)準(zhǔn)代幣
首先,ERC-1155通過整合智能合約在很大程度上節(jié)約了資源及成本。ERC-1155的創(chuàng)造者是Enjin Coin平臺(用于開發(fā)區(qū)塊鏈游戲及加密貨幣)的CTO。
他在開發(fā)的過程中發(fā)現(xiàn),當(dāng)時的代幣標(biāo)準(zhǔn)無法滿足區(qū)塊鏈游戲的需求,因為每個代幣都需要一個獨立合約來對其進(jìn)行定義。可以想象,一個大型的區(qū)塊鏈游戲里面有幾萬種游戲資產(chǎn),每種游戲資產(chǎn)對應(yīng)一個智能合約,那么一個游戲就需要用到幾萬個智能合約。這就好比我們每使用一個APP都要特意買一臺電腦來運行這個APP一樣,完全沒有必要,而且是對資源的極度浪費。
其實大部分以太坊合約都是比較相似的,不同的合約間存在很多相同的代碼。開發(fā)人員在開發(fā)項目或者新代幣的時候只是對合約做了細(xì)微的調(diào)整。
通過ERC-1155代幣標(biāo)準(zhǔn),開發(fā)人員只需定義那些與其他代幣互異的數(shù)據(jù)就可以了,不需要再重復(fù)過一遍與其他合約相同的代碼,節(jié)約了存儲成本及開發(fā)時間。
其次,ERC-1155標(biāo)準(zhǔn)提升了代幣交易效率,降低了交易費用。ERC-20代幣間交易過程是這樣的。
而ERC-1155可以把同一種代幣打包到一起,將ERC-20交易過程中的三個授權(quán)步驟壓縮到一步,能夠做到將單個或者多個代幣發(fā)送給單個或者多個地址,從而大大提升了交易效率,同時也降低了交易Gas費用。
從上面這張圖中,我們可以看到ERC-1155標(biāo)準(zhǔn)的最大優(yōu)勢在于,可以連接不同的代幣(比如同質(zhì)代幣和非同質(zhì)代幣【后文會提到】),既支持通貨(可以理解為同質(zhì)代幣)的定價換物,也支持物物相換(可以理解為非同質(zhì)代幣間交易),未來的應(yīng)用場景非常廣闊。
名稱:ERC-721
類型:NFT(Non-FungibleToken)非同質(zhì)代幣
提出時間:2017年9月
ERC-721是除了ERC-20之外大家聽得比較多的一種ERC代幣。這種代幣或者代幣標(biāo)準(zhǔn)最大的亮點就是不可置換性。ERC-20代幣是可置換的,最小可細(xì)分到十的十八次方分之一份,而ERC-721代幣的最小單位是1,無法再分割。每個ERC-721代幣都對應(yīng)唯一的ID,是獨一無二的。以加密貓為例,每一只貓都被賦予獨特的屬性,貓與貓之間是不能進(jìn)行置換的。這種獨特性使某些稀有貓咪具備收藏價值,受到很多人的追捧。
ERC-721代幣可以有非常廣泛的應(yīng)用場景。現(xiàn)實生活中的很多物品都具備獨特性,ERC-721代幣的應(yīng)用場景之一就是將現(xiàn)實生活中的實物資產(chǎn)映射到區(qū)塊鏈上。ERC-721代幣還可以用于認(rèn)證場景。個人的身份信息、證書、檔案等都是獨一無二的,并且這些信息可以被數(shù)字化,在特定的場合下需要具備一定的隱私性,這些特征都與非同質(zhì)代幣以及區(qū)塊鏈技術(shù)的屬性天然契合。
名稱:ERC-875
類型:非同質(zhì)代幣
首先,ERC-875也是一種非同質(zhì)代幣,具備不可置換性,可以被應(yīng)用到很多場景。
其次,ERC-875在ERC-721的基礎(chǔ)上,實現(xiàn)了批量交易功能。ERC-721標(biāo)準(zhǔn)雖然支持非同質(zhì)代幣間的交易,但是一筆交易只能實現(xiàn)一對一交換。ERC-875標(biāo)準(zhǔn)可以對代幣進(jìn)行分組批量交易,提升了交易效率,降低了交易成本。
第三,ERC-875標(biāo)準(zhǔn)實現(xiàn)了簡單的原子交易。所謂原子交易,就是指不通過中間方,直接將一種代幣兌換為另一種代幣這樣一種交易方式。ERC-875標(biāo)準(zhǔn)搭建了去中心化交易平臺,買賣雙方可以直接在該平臺上交易,并且由買家支付一次Gas即可,賣家無需持有以太幣。
名稱:ERC-725
類型:非同質(zhì)代幣
提出時間:2017年10月2日
ERC-725與ERC-735標(biāo)準(zhǔn)定位于身份及證書認(rèn)證場景。深度發(fā)展的話,可以實現(xiàn)對所有DApp或者區(qū)塊鏈平臺的索引支持,提供跨項目的分布式、可操作身份認(rèn)證功能。
名稱:ERC-827
類型:標(biāo)準(zhǔn)代幣
首先,ERC-827在ERC-20的基礎(chǔ)上增加了交易數(shù)據(jù)傳輸功能,資產(chǎn)與數(shù)據(jù)的傳輸廣度及速度都得到了提升,使用戶能在幾秒內(nèi)將數(shù)據(jù)轉(zhuǎn)移到全球各地。
其次,ERC-827標(biāo)準(zhǔn)在確保資產(chǎn)及數(shù)據(jù)安全性不變的前提下,允許第三方(比如經(jīng)紀(jì)人、代理人)無需私鑰就可以對交易進(jìn)行驗證。
名稱:ERC-865
類型:標(biāo)準(zhǔn)代幣
ERC-865標(biāo)準(zhǔn)使用戶在使用DApp時能夠使用項目代幣代替以太幣來支付Gas費用。
名稱:ERC-888
類型:多維代幣
首先,ERC-888是一種多維代幣標(biāo)準(zhǔn),可以一次性部署多個資產(chǎn)。其次,ERC-888標(biāo)準(zhǔn)可以計算以及支付代幣持有者股息。第三,ERC-888標(biāo)準(zhǔn)因為與所有web3兼容,所以可以標(biāo)記實際資產(chǎn)。
名稱:ERC-621
類型:標(biāo)準(zhǔn)代幣
ERC-621標(biāo)準(zhǔn)的亮點在于可以增加或者減少流通中的代幣供應(yīng)量。
名稱:ERC-1410
類型:PFT(Partially-FungibleToken)部分同質(zhì)化代幣
ERC-1410標(biāo)準(zhǔn)可以將代幣持有者手中的代幣劃分成不同的部分(tranche)。ERC-20、ERC-721等代幣都是基于整個代幣進(jìn)行操作的,而ERC-1410可以以更細(xì)的粒度對代幣進(jìn)行控制和操作。比如,代幣持有者可以賦予代幣的部分余額授權(quán)邏輯和鎖定邏輯。以股票型代幣為例,持有者可以對該種代幣進(jìn)行股份分類。代幣持有者也可以依據(jù)代幣tranche分類的不同做一些操作上的限制,比如設(shè)置某些操作只作用于指定tranche分類的代幣,某些操作優(yōu)先消耗指定tranche分類的代幣。
名稱:ERC-1400
類型:部分同質(zhì)化代幣
首先,ERC-1400繼承了ERC-1410標(biāo)準(zhǔn),在tranche功能的基礎(chǔ)上,定位了更加細(xì)分并且復(fù)雜的應(yīng)用場景——證券業(yè)務(wù)。ERC-1400將投資期限、風(fēng)險不同的tranche組合成一個整體,達(dá)到降低投資風(fēng)險的效果。比如,ERC-1400標(biāo)準(zhǔn)可以支持投資期在5-30年,投資風(fēng)險不同的證券組合。
其次,ERC-1400標(biāo)準(zhǔn)因為將應(yīng)用場景定位在證券業(yè)務(wù)領(lǐng)域,需要鏈上鏈下參與者進(jìn)行更為復(fù)雜的互動,所以這種標(biāo)準(zhǔn)本身需要具備對證券進(jìn)行強(qiáng)制轉(zhuǎn)移的能力,這樣,證券在法律訴訟等場景下就可以實現(xiàn)追回。
第三,ERC-1400標(biāo)準(zhǔn)還允許用戶對交易是否成功以及失敗的原因發(fā)起詢問。用戶接收到的理由基于ERC-1066協(xié)議。
通過上述描述,我們可以發(fā)現(xiàn),這種代幣標(biāo)準(zhǔn)主打監(jiān)管功能,非常適用于現(xiàn)在比較熱門的STO(security token offering,證券代幣發(fā)行)場景。
名稱:ERC-1404
類型:部分同質(zhì)化代幣
ERC-1404標(biāo)準(zhǔn)也主打監(jiān)管功能。ERC-1404代幣發(fā)行人可以為代幣設(shè)置一定的限制。比如,在什么時候,在何種條件下,轉(zhuǎn)移多少代幣,從而達(dá)到滿足關(guān)鍵監(jiān)管要求的目的。
02
關(guān)于ERC代幣協(xié)議的兩點思考
上面只是列出了一些比較典型的ERC代幣標(biāo)準(zhǔn),以太坊上的代幣標(biāo)準(zhǔn)很多,甚至到了混亂的程度。所以真探想要探討的第一個問題是,為什么與以太坊基礎(chǔ)代幣標(biāo)準(zhǔn)(ERC-20)互異性不高的ERC協(xié)議提案不能直接在已有的標(biāo)準(zhǔn)上進(jìn)行更新,而是需要開發(fā)(復(fù)制)出新的標(biāo)準(zhǔn),在新的標(biāo)準(zhǔn)中對部分代碼進(jìn)行調(diào)整。
關(guān)于這個問題,真探詢問了有關(guān)開發(fā)人員,得到的答復(fù)是“規(guī)范定了后不更新,如果要適配其他不一樣的場景,一般會新增一個規(guī)范”。
同時,真探了解到,以太坊協(xié)議提案的整個流程大概是這樣的:開發(fā)者需要先在Github上創(chuàng)建一個EIP(Ethereum Improvement Proposal,以太坊改進(jìn)提案),在其中描述協(xié)議內(nèi)容。獲得廣泛認(rèn)同的提案會被標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化提案中只有少數(shù)草案能通過審議成為決案。文/幣圈多乾 官微 2353628688
真探理解為,這是一系列規(guī)范化操作,經(jīng)過這些操作成為決案的ERC標(biāo)準(zhǔn)一般情況下不會再進(jìn)行修改,如果要對現(xiàn)有標(biāo)準(zhǔn)進(jìn)行調(diào)整或者要滿足新的應(yīng)用場景,就需要增加新的規(guī)范。
鑒于目前有這么多以太坊代幣標(biāo)準(zhǔn),整個協(xié)議系統(tǒng)比較雜亂,真探認(rèn)為,很多代幣標(biāo)準(zhǔn)其實可以相互整合,整套操作流程也可以進(jìn)行調(diào)整。如果要考慮標(biāo)準(zhǔn)更新對相關(guān)代幣的影響,是否可以對代幣標(biāo)準(zhǔn)增加測試功能,支持在沙盒環(huán)境中測試代碼更新效果,以降低操作風(fēng)險。
其次是新標(biāo)準(zhǔn)冷啟動問題。現(xiàn)在以太坊上的大部分代幣使用的都是ERC-20標(biāo)準(zhǔn)。這種標(biāo)準(zhǔn)存在資金丟失問題。據(jù)悉,2017年,ICO參與者因為ERC-20標(biāo)準(zhǔn)這一“特性”損失了400多萬美元。有一些ERC標(biāo)準(zhǔn),比如ERC-223和ERC-777針對ERC-20這一問題提出了解決方案,但是目前還沒有主要項目代幣采用這兩類標(biāo)準(zhǔn)。可以想象,從一個標(biāo)準(zhǔn)遷移至另一個標(biāo)準(zhǔn)需要解決很多問題,比如舊數(shù)據(jù)的遷移及更新,標(biāo)準(zhǔn)間的兼容性問題等等。這也是開發(fā)人員可以考慮拓展并且解決的領(lǐng)域。
責(zé)任編輯:幣圈多乾