就在一年前的2018年6月17日,我將ERC-1155代幣標(biāo)準(zhǔn)的第一個(gè)版本發(fā)布到以太坊的Github庫(kù)中,并開(kāi)放了一個(gè)問(wèn)題窗口供評(píng)論和反饋。
從那時(shí)起,該標(biāo)準(zhǔn)得到了令人難以置信的大量支持,擁有了來(lái)自社區(qū)的50多個(gè)修訂版本和400條評(píng)論,并幫助將ERC-1155塑造成有史以來(lái)最強(qiáng)大的以太坊代幣標(biāo)準(zhǔn)。
今天,我很自豪地與大家分享ERC-1155已經(jīng)發(fā)展到最終的狀態(tài),并且已經(jīng)成為以太坊的官方代幣標(biāo)準(zhǔn)。
現(xiàn)在它已經(jīng)被以太坊社區(qū)封為“最終版”,不再需要對(duì)ERC-1155做任何更改。它是可替代資產(chǎn)和不可替代資產(chǎn)的新公認(rèn)標(biāo)準(zhǔn),開(kāi)發(fā)社區(qū)可以滿懷信心地開(kāi)始構(gòu)建集成了ERC-1155資產(chǎn)的應(yīng)用程序,并相信當(dāng)前的標(biāo)準(zhǔn)是經(jīng)得起時(shí)間檢驗(yàn)的。
以太坊的改進(jìn)建議
幾年前,以太坊社區(qū)就向以太坊生態(tài)系統(tǒng)引入新的改進(jìn)建議達(dá)成一致。一個(gè)問(wèn)題由一個(gè)社區(qū)成員在以太坊 GitHub頁(yè)面上提出,并描述了一個(gè)新的特性、流程,該特性、流程將使區(qū)塊鏈及其周邊社區(qū)受益。
在Enjin,自2017年以來(lái),我們一直在內(nèi)部構(gòu)建一種我們稱之為“單一代幣合同”的東西。我們意識(shí)到現(xiàn)有的ERC-20和ERC-721代幣標(biāo)準(zhǔn)對(duì)于我們所設(shè)想的游戲項(xiàng)目類型不夠靈活。
最終,我們意識(shí)到這種結(jié)構(gòu)對(duì)于游戲和其他行業(yè)都有一些不可思議的好處和用例,如果我們想讓這些新的代幣成為現(xiàn)實(shí),我們必須將其標(biāo)準(zhǔn)化。
創(chuàng)建一個(gè)標(biāo)準(zhǔn)意味著更大的以太坊社區(qū)將開(kāi)始支持這種新的代幣,并且它將為更快地在錢包、交換、游戲和使用標(biāo)記的區(qū)塊鏈資產(chǎn)的新項(xiàng)目中采用鋪平道路。
ERC-1155在一個(gè)智能合約中支持無(wú)限數(shù)量的可替換和不可替換代幣。
一個(gè)智能合約可以管理無(wú)限數(shù)量的代幣
雖然ERC-20和ERC-721代幣需要為每個(gè)新的代幣“類”部署一個(gè)新的智能合約,但ERC-1155背后的核心概念是一個(gè)智能合約可以管理無(wú)限數(shù)量的代幣。
把它想象成一個(gè)自動(dòng)售貨機(jī),里面有各種各樣的蘇打水、果汁,甚至零食。客戶使用一個(gè)安全接口與機(jī)器交互(插入硬幣,按下按鈕),機(jī)器就會(huì)分發(fā)他們選擇的商品。同樣的道理,一份ERC-1155游戲合同可以包含多種物品,從武器和盔甲到健康藥水、魔法卷軸等等。
每一項(xiàng)都可以是“可替換的”,有多個(gè)副本可用??商鎿Q代幣用于可分割的貨幣(大多數(shù)ERC-20代幣),對(duì)于不需要區(qū)分的可堆疊項(xiàng)目,它們也非常有用。
一種代幣稱為不可替換代幣(NFT)。這種結(jié)構(gòu)允許每個(gè)代幣都有自己獨(dú)特的參數(shù)。電子游戲中的寵物龍可以是NFT,并且擁有自己獨(dú)特的名稱、權(quán)力級(jí)別和豐富的游戲歷史。
批量傳輸
使用ERC-1155,可以在一個(gè)交易中發(fā)送多個(gè)代幣——這大大節(jié)省了GAS成本,并避免了在單個(gè)傳輸中等待每個(gè)塊的需要。
使用ERC-1155的項(xiàng)目還可以構(gòu)建具有相同基本設(shè)計(jì)的原子交換,允許用戶使用絕對(duì)安全的代幣來(lái)交換另一種代幣,而不涉及任何中間方。
進(jìn)一步優(yōu)化
一些作者進(jìn)一步的實(shí)驗(yàn)已經(jīng)導(dǎo)致了更多的優(yōu)化!
沙箱開(kāi)發(fā)人員羅南·桑福德(Ronan Sandford)能夠在一個(gè)塊中生成超過(guò)1500個(gè)代幣,同時(shí)通過(guò)他們的ERC-1155實(shí)現(xiàn)保留了真正的所有權(quán)。
Horizon Games開(kāi)發(fā)人員Phillippe Castonguay使用了一種名為Balance Packing的技術(shù)(將16個(gè)分辨率較低的代幣存儲(chǔ)在一個(gè)ID中),與常規(guī)轉(zhuǎn)賬相比,節(jié)省了80-90%的GAS費(fèi)用。
Phillippe還能夠通過(guò)ERC-1155令牌實(shí)現(xiàn)超過(guò)每秒155資產(chǎn)轉(zhuǎn)移速度!
經(jīng)濟(jì)數(shù)據(jù)
ERC-1155多代幣標(biāo)準(zhǔn)的主要特征是在一個(gè)智能合約中實(shí)例化多個(gè)代幣。這意味著“創(chuàng)建”一個(gè)新的代幣類型可以像調(diào)用一個(gè)函數(shù)一樣簡(jiǎn)單,該函數(shù)將一個(gè)新ID添加到可用的代幣池中。
相比之下,使用ERC-20和721標(biāo)準(zhǔn)創(chuàng)建一個(gè)新的代幣類型意味著編輯代碼并將一個(gè)全新的合約部署到以太坊區(qū)塊鏈上的一個(gè)地址。部署一份合約需要耗費(fèi)大量的gas(ETH),因?yàn)閿?shù)據(jù)存儲(chǔ)在全球共享的區(qū)塊鏈上的成本自然很高。大多數(shù)ERC-20合約都基于完全相同的代碼,只因此沒(méi)有必要編寫其余的代碼。這意味著以太坊的25,000多個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)都會(huì)被冗余代碼弄得亂七八糟,這些代碼將永遠(yuǎn)留在那里!
每次啟動(dòng)新代幣時(shí),還需要通知每個(gè)新的ERC-20或ERC-721合約地址的操作開(kāi)銷。100個(gè)新的代幣意味著100個(gè)新的合同要看——因?yàn)槊恳粋€(gè)錢包和每一個(gè)軟件都必須知道這個(gè)代幣的存在。
因此,盡管前兩個(gè)標(biāo)準(zhǔn)適用于狹義的用例——不管是單一貨幣還是單一類別的NFT——但絕大多數(shù)創(chuàng)作者都將受益于ERC-1155,因?yàn)樵摌?biāo)準(zhǔn)將能夠動(dòng)態(tài)地創(chuàng)建新代幣,并代表一個(gè)以上的“類型”,而不會(huì)重復(fù)相同的合同。
嚴(yán)格的規(guī)則將使代幣變得更加可靠
ERC-1155代幣標(biāo)準(zhǔn)的一個(gè)令人難以置信的特性是需要遵循一組嚴(yán)格規(guī)則來(lái)實(shí)現(xiàn)。
ERC-1155代幣是第一種代幣類型,它可以通過(guò)簡(jiǎn)單地向地址發(fā)送代幣來(lái)執(zhí)行確定性智能合約功能。
只要向DEX交換地址發(fā)送一個(gè)代幣,交換器就可以立即將另一個(gè)代幣返回到發(fā)送者的地址。類似地,區(qū)塊鏈游戲可以在從用戶接收到ERC-1155代幣后立即執(zhí)行游戲功能。代幣可以被包裝、轉(zhuǎn)換、制作或托管,而不需要訪問(wèn)ABI或直接與智能合約交互。
這種功能最初是在ERC-223中提出的,但是這個(gè)標(biāo)準(zhǔn)沒(méi)有流行起來(lái)。ERC-721也實(shí)現(xiàn)了“safeTransferFrom”,但是有一個(gè)致命的問(wèn)題,那就是對(duì)所有的傳輸都不嚴(yán)格要求,這意味著用戶可能會(huì)永久地丟失他們的代幣,而合約作者在發(fā)送代幣時(shí)不能依賴于有保證的執(zhí)行。
在ERC-1155中嚴(yán)格執(zhí)行此功能的決定意味著智能合約和代幣的可靠網(wǎng)絡(luò)現(xiàn)在可以開(kāi)始構(gòu)建在此強(qiáng)大功能的基礎(chǔ)上。所有用戶需要做的就是將他們的代幣發(fā)送到一個(gè)地址,以觸發(fā)一個(gè)可怕的事件鏈。
元數(shù)據(jù)
去年對(duì)ERC-1155標(biāo)準(zhǔn)的主要更新之一是決定將所有關(guān)于代幣的元數(shù)據(jù)移動(dòng)到外部JSON文件。這在很大程度上受到了ERC-721元數(shù)據(jù)擴(kuò)展的啟發(fā),但是我們進(jìn)行了一些改進(jìn)。
不再有遺留元數(shù)據(jù)
符號(hào): 在ERC-20和ERC-721標(biāo)準(zhǔn)中找,因?yàn)檫@不是虛擬項(xiàng)目/資產(chǎn)的相關(guān)數(shù)據(jù)。這些3個(gè)字母的符號(hào)通常只用于股票交易和貨幣交易,但當(dāng)您標(biāo)記更一般的項(xiàng)目時(shí),它們就沒(méi)有那么有用了。
名稱: 也從核心標(biāo)準(zhǔn)中刪除。為什么?在許多用例中,將名稱存儲(chǔ)在區(qū)塊鏈上是多余的。相反,現(xiàn)在可以在JSON元數(shù)據(jù)標(biāo)準(zhǔn)中定義每個(gè)代幣的名稱。
ID替換
通過(guò)使用替換字符串“_id_”,ERC-1155 協(xié)定現(xiàn)在可以指向無(wú)限數(shù)量的代幣 URI,而無(wú)需在鏈上存儲(chǔ)任何額外的數(shù)據(jù)。這甚至可以用來(lái)指向一個(gè)網(wǎng)頁(yè)服務(wù),該服務(wù)為數(shù)據(jù)庫(kù)中的每個(gè)代幣動(dòng)態(tài)生成代幣JSON。{id}字符串也可以在JSON本身中用于自動(dòng)鏈接到每個(gè)代幣的圖像。這大大減少了開(kāi)發(fā)人員為大量代幣集合顯示元數(shù)據(jù)所需的開(kāi)銷。
本地化
由于代幣信息是以JSON格式定義的,所以現(xiàn)在可以使用{locale}對(duì)多種語(yǔ)言進(jìn)行本地化。錢包和支持多種語(yǔ)言的軟件可以顯示代幣名稱、圖像和任何其他數(shù)據(jù)的替代版本。
定位
隨著以太坊生態(tài)系統(tǒng)的不斷發(fā)展,許多dapps依賴于傳統(tǒng)的數(shù)據(jù)庫(kù)和explorer API服務(wù)來(lái)檢索和分類數(shù)據(jù)。ERC-1155標(biāo)準(zhǔn)保證智能合與發(fā)出的事件日志將提供足夠的數(shù)據(jù)來(lái)創(chuàng)建所有當(dāng)前代幣余額的準(zhǔn)確記錄。數(shù)據(jù)庫(kù)或資源管理器可以偵聽(tīng)事件,并能夠?yàn)楹霞s中的每個(gè)ERC-1155代幣提供索引和分類搜索。
智能合約不再需要維護(hù)每個(gè)代幣ID的索引,而且ID不需要以任何方式連續(xù)。
這與枚舉(瀏覽鏈上所有代幣的能力)截然不同,但它帶來(lái)了顯著的效率優(yōu)勢(shì),甚至允許對(duì)每個(gè)代幣鑄幣、刻錄和傳輸進(jìn)行完整的標(biāo)準(zhǔn)化記錄。直到今天,這還不可能以標(biāo)準(zhǔn)化的方式實(shí)現(xiàn),這將允許對(duì)代幣進(jìn)行深度數(shù)據(jù)分析和豐富的代幣探索者等酷炫的生態(tài)系統(tǒng)好處。
想象一下,無(wú)論分析的是哪個(gè)智能合約,您都能夠倒帶并快速向前穿越時(shí)間,分析完全不同的ERC-1155代幣的使用模式和生命周期。
代幣所有者將能夠了解更多關(guān)于其資產(chǎn)的信息,比如特定的代幣是在什么時(shí)候生成的,在未來(lái),可能會(huì)開(kāi)發(fā)一些工具,為構(gòu)建在此技術(shù)之上的公司提供有用的見(jiàn)解。
結(jié)論
ERC-1155標(biāo)準(zhǔn)是區(qū)塊鏈社區(qū)一年努力工作的成果。如果您計(jì)劃實(shí)現(xiàn)ERC-1155,您可以在這里查看整個(gè)標(biāo)準(zhǔn)以及每個(gè)決策背后的基本原理。
您也可以查看討論歷史訪問(wèn)原始問(wèn)題:
要?jiǎng)?chuàng)建自己的ERC-1155代幣合約,Enjin的官方參考實(shí)現(xiàn)在GitHub上是開(kāi)源的:
ERC-1155:智能合約示例實(shí)現(xiàn)。通過(guò)在github.com上創(chuàng)建一個(gè)帳戶,為enjin/erc-1155的開(kāi)發(fā)做出貢獻(xiàn)
您可以使用此代碼作為您自己的智能合約的起點(diǎn)。您還可以考慮使用Enjin平臺(tái),這是為開(kāi)發(fā)人員和非開(kāi)發(fā)人員提供的功能最豐富的區(qū)塊鏈開(kāi)發(fā)工具集。
創(chuàng)造者:
以下作者使ERC-1155成為了現(xiàn)實(shí):
· Witek Radomski
· Andrew Cooke
· Eric Binet
· James Therien
· Philippe Castonguay
· Ronan Sandford
這些令人驚嘆的人們都為多代幣標(biāo)準(zhǔn)EIP規(guī)范做出了重要的貢獻(xiàn)和改進(jìn),我衷心感謝每一位作者的幫助和奉獻(xiàn),使ERC-1155變得比我們想象的更加強(qiáng)大,更有前途。
最后,我們要感謝令人驚嘆的以太坊社區(qū),并感謝每一個(gè)參與他們的反饋,以最終確定新的ERC-1155多代幣標(biāo)準(zhǔn)的人們!
評(píng)論
查看更多