7月20日柏林的DappCon會議上(與以太坊區(qū)塊鏈相關(guān)的重要舉措和更新都是在這里發(fā)布的),Jordi Baylina、Jacques Dafflon和Thomas Shababi承諾將為以太坊引入其創(chuàng)建的ERC-777新代幣標(biāo)準(zhǔn),以取代現(xiàn)在全球最流行的ERC-20代幣標(biāo)準(zhǔn)。開發(fā)人員表示,ERC-777已準(zhǔn)備好發(fā)布,8月份時將完全可用。
然而,現(xiàn)在8月都已經(jīng)過去了,開發(fā)團(tuán)隊(duì)似乎對創(chuàng)建以太坊新標(biāo)準(zhǔn)一事仍保持著沉默,也或許他們正在準(zhǔn)備著驚喜。自7月以來,GitHub上也沒有出現(xiàn)過與ERC-777相關(guān)的更新,但上周他的同伴Jacques Dafflon發(fā)布的Twitter可能會給我們帶來一絲線索,盡管我們對它的確切發(fā)布日期仍然一無所知:
我們有著超預(yù)期的工作量,也收到了更多的反饋,我不得不專注于我的論文,這延誤了新標(biāo)準(zhǔn)推出的工作。我必須澄清新標(biāo)準(zhǔn)中的一些內(nèi)容并更新其參考實(shí)現(xiàn)。我們希望能盡快將ERC777推進(jìn)至最后階段。— Jacques Dafflon (@jacquesdafflon),2018年9月19日
現(xiàn)在,讓我們回過頭來更好地了解下這一新標(biāo)準(zhǔn)提議。
為什么改變世界上最受歡迎的ERC-20代幣標(biāo)準(zhǔn)是有必要的?ERC-20標(biāo)準(zhǔn)已成為60,000多余項(xiàng)目的根基:如EOS,其市值超過了45億美元;及世界上最大的加密貨幣交易所幣安發(fā)行的BNB等。為了回答這個問題,我們有必要比較下現(xiàn)有標(biāo)準(zhǔn)與新標(biāo)準(zhǔn),然后評估它們的應(yīng)用風(fēng)險。
以太坊成功的故事
雖然比特幣被認(rèn)為是世界上最流行的加密貨幣,但以太坊不僅是第二大最流行的加密貨幣,而且還是導(dǎo)致2016-2017年加密貨幣市場繁榮的區(qū)塊鏈。如果沒有以太坊平臺,就永遠(yuǎn)不會有“too the moon”這一短語,以太坊在短短幾個月的時間里將加密貨幣從極客們的玩物變成為古典投資者和數(shù)百萬普通人的新投資工具。
以太坊區(qū)塊鏈的主要優(yōu)點(diǎn),包括其開發(fā)應(yīng)用程序的過程極其簡單,及使用智能合約簽發(fā)代幣的過程不會出現(xiàn)任何障礙。現(xiàn)在,任何人都可以在一分鐘內(nèi)創(chuàng)建一個代幣,也就是發(fā)行一種新的加密貨幣。這樣的便捷性導(dǎo)致了ICO的爆發(fā)。另一個可以進(jìn)一步促進(jìn)ICO市場發(fā)展的工具便是ERC-20代幣標(biāo)準(zhǔn)。
ERC-20標(biāo)準(zhǔn)
在標(biāo)準(zhǔn)化之前,以太坊開發(fā)者必須為每個代幣創(chuàng)建單獨(dú)的Solidity智能合約。事實(shí)上,每次都需要創(chuàng)建一種新的、獨(dú)特的智能合約。交易所或錢包的管理者每次都必須編寫對應(yīng)的獨(dú)特代碼以支持每個新代幣。 出現(xiàn)的代幣越多,這個過程就越難完成。此外,各式智能合約發(fā)行的代幣彼此之間兼容性也很差。
因此以太坊的開發(fā)者們?yōu)樗写鷰艅?chuàng)建了單一的ERC-20標(biāo)準(zhǔn),其中ERC表示“以太坊征求意見”(Ethereum Request for Comment),而數(shù)字“20”則代表分配給該征求意見的編號。
2015年發(fā)布的這一標(biāo)準(zhǔn)徹底改變了加密貨幣行業(yè),它成為了中心指南,規(guī)定了哪些功能和事件必須在智能合約中實(shí)現(xiàn)。新貨幣的發(fā)行、交易和兌現(xiàn)從未如此簡單。
該標(biāo)準(zhǔn)包含智能合約的六個強(qiáng)制參數(shù),主要三種功能:
1. 設(shè)置代幣的初始分發(fā):
totalSupply - 確定代幣的最大數(shù)量,達(dá)到該數(shù)量后,智能合約將停止發(fā)行代幣。
balance0f - 將代幣數(shù)量分配給任一地址的函數(shù)。可以獲取任一地址代幣的余額。
2. 轉(zhuǎn)移代幣:
transfer - 一個根據(jù)ICO結(jié)果將代幣從主地址移動到新所有者地址的函數(shù)。
transferFrom - 一個在用戶之間轉(zhuǎn)移代幣的函數(shù)。
3. 執(zhí)行管理功能:
approve - 為智能合約檢查代幣可用性的函數(shù)。
allowance - 確認(rèn)地址上有足夠的代幣來發(fā)起轉(zhuǎn)移的函數(shù)。
一旦制定了該標(biāo)準(zhǔn),交易所和錢包就能夠統(tǒng)一它們的代碼,以便處理使用ERC-20協(xié)議創(chuàng)建的任何代幣。正如預(yù)期的那樣,之后以太坊平臺的應(yīng)用數(shù)量迅速飆升。
ERC-20標(biāo)準(zhǔn)背后面臨的挑戰(zhàn)
去中心化網(wǎng)絡(luò)的開發(fā)者首先是程序員,接著是商業(yè)經(jīng)營者。因此,在決策過程中,人們幾乎總是遵循著形式邏輯。例如,一些開發(fā)者可能不太關(guān)注 “51%攻擊” ,因?yàn)榇鷰疟旧頃H值,或者因?yàn)槠涔舫杀究赡艹^了黑客所能獲得的收益。但似乎新型攻擊的發(fā)起者有著完全不同的邏輯,2018年大量的新型攻擊證明了這一點(diǎn)。
開發(fā)者們認(rèn)為考慮代幣的功能僅在ICO發(fā)布時是有必要的,而在其它服務(wù)上是無用的。但事實(shí)證明并非如此,一些團(tuán)隊(duì),甚至那些不會編程的團(tuán)隊(duì),也開始探索區(qū)塊鏈的發(fā)展可能。例如,出現(xiàn)了單純?yōu)楹猛娑鴦?chuàng)建的無用代幣。
其他自定義功能甚至可能會危及用戶的賬戶安全。例如,一些開發(fā)者通過同時執(zhí)行approve和transferFrom函數(shù)實(shí)現(xiàn)了對交易所賬戶的充值。這些資金從發(fā)送人的賬戶中消失,但卻未被記入其交易所余額,因?yàn)榻邮辗街悄芎霞s存款的功能并沒有確定。問題是,以太坊的開發(fā)者并沒有提供這種轉(zhuǎn)讓的選擇,但也沒有禁止,區(qū)塊鏈最初并不支持合約的自我確定功能。結(jié)果,加密貨幣的所有者損失了數(shù)百萬美元,這些錢永遠(yuǎn)消失在了網(wǎng)絡(luò)之中,如果未完成的交易沒有被發(fā)送者立即取消,那么這些錢便會消失。
安全審計人員Dexaran注意到了這個漏洞,他隨后開發(fā)了ERC-223標(biāo)準(zhǔn),添加了tokenFallback函數(shù)。如果transferFrom函數(shù)未執(zhí)行,則執(zhí)行該函數(shù)。然而,盡管如此,這個由匿名程序員創(chuàng)建的新函數(shù)也沒有得到廣泛認(rèn)可。
在Solidity更新后,6月份,來自德國的Solidity開發(fā)者Lucas Cremer發(fā)現(xiàn)了另一個漏洞。事實(shí)證明,有相當(dāng)大比例的ERC-20代幣transfer函數(shù)的返回值不同。這些代幣合約的transfer函數(shù)沒有返回任何內(nèi)容。受該影響的代幣有BNB和OmiseGO。Corner指出,人們應(yīng)該關(guān)注的是,這些資產(chǎn)可能會以不可預(yù)測的方式運(yùn)作,他警告說,需要“盡快”修復(fù)該漏洞。
ER-777:給予ERC-20的重?fù)?/p>
由于成千上萬的代幣、交易所和錢包都與ERC-20關(guān)系密切,其漏洞是無法消除的,因此以太坊開發(fā)者們決定發(fā)布ERC-777,一個名字受幸運(yùn)數(shù)字777啟發(fā)的新標(biāo)準(zhǔn)。
ERC-777的EIP(Ethereum Improvement Proposals,以太坊改進(jìn)協(xié)議)于2017年11月20日發(fā)布,并得到了社區(qū)的認(rèn)可。但是,為了充分發(fā)揮其作用,新標(biāo)準(zhǔn)需要一個輔助的ERC-820協(xié)議,該協(xié)議為形成統(tǒng)一智能合約注冊方式確立了規(guī)則。在這個中心化注冊表的幫助下,以太坊區(qū)塊鏈的主要問題——無法確定合約執(zhí)行的函數(shù),得到了解決。
現(xiàn)在它是如何運(yùn)作的?任何具有函數(shù)功能描述的合約都可以一次性注冊; 并且在執(zhí)行代幣轉(zhuǎn)移時,區(qū)塊鏈可以應(yīng)用于注冊表以澄清允許的行為。如果用戶嘗試使用代幣執(zhí)行無效操作,則這些代幣只會保留在帳戶上且不會消失。
在柏林的DappCon會議上,Jodi Baylina和Jacques Dafflon通過使用一個新術(shù)語 - “hook” (鉤子) 來解釋描述新標(biāo)準(zhǔn)的具體細(xì)節(jié),以確定“在代幣轉(zhuǎn)移期間可以調(diào)用的函數(shù)”。這些函數(shù)與ERC-820協(xié)議配合運(yùn)作,可提供ERC-20中缺少的簡單類型的詳細(xì)內(nèi)省。因此,就可以檢代幣是否擁有具體特征以執(zhí)行或拒絕操作,從而使得智能合約變得更加智能。新的ERC-777標(biāo)準(zhǔn)將解決接收方的代幣在發(fā)送到不支持接收或管理此類資產(chǎn)的合約時會丟失的問題。由于這樣的漏洞,以太坊社區(qū)已經(jīng)損失了數(shù)百萬美元。很大一部分資金似乎永遠(yuǎn)地被困在了一些頂級ICO項(xiàng)目的合約之中。以下只是其中的一些:
然而,防止由于不正確的交易而導(dǎo)致代幣丟失的保護(hù)并不是該新標(biāo)準(zhǔn)的唯一創(chuàng)新,該新標(biāo)準(zhǔn)旨在進(jìn)一步發(fā)展區(qū)塊鏈。
例如,ERC-777內(nèi)置了trusted operator函數(shù),可以代表所有者轉(zhuǎn)移和焚燒代幣。這是通過執(zhí)行authorizeOperator函數(shù)實(shí)現(xiàn)的,例如,可用于在ETH中完成即時自動付款。
此外,該標(biāo)準(zhǔn)允許你使用ITokenRecipient函數(shù)來檢查接收人的地址是否支持“白”或“黑”名單。此外,上面提到的“hook”使得可以監(jiān)視代幣的行為,根據(jù)具體情況,允許你屏蔽某些地址并執(zhí)行其他更多操作,包括發(fā)送者和接收者的對交易過程的干預(yù)。
如果你需要更多關(guān)于ERC-777的詳細(xì)信息,可以參考GitHub上以太坊的相關(guān)信息。
再見,ERC-20
ERC-777標(biāo)準(zhǔn)向下兼容ERC-20,任何基于先前標(biāo)準(zhǔn)的項(xiàng)目都可以順利地轉(zhuǎn)移到新標(biāo)準(zhǔn)。假設(shè)使用先前標(biāo)準(zhǔn)的代幣、交易所和錢包對ERC-777的發(fā)布做出了積極的反應(yīng),那么最終以太坊這一傳奇的漏洞將不復(fù)存在。這將意味著,在新標(biāo)準(zhǔn)上發(fā)行代幣的程序又簡化了,這可能又將導(dǎo)致加密貨幣行業(yè)的相關(guān)活動激增,與2016至2017年引發(fā)的熱潮不相上下。
此外,新標(biāo)準(zhǔn)顯著擴(kuò)展了以太坊區(qū)塊鏈系統(tǒng)的功能,這將吸引開發(fā)者們的注意。開發(fā)者們對新標(biāo)準(zhǔn)的激烈討論便是最有力的證據(jù)。
最后,ERC-777標(biāo)準(zhǔn)包含著完全重新設(shè)計的函數(shù)和邏輯,這將避免在執(zhí)行智能合約時與其他代幣標(biāo)準(zhǔn)發(fā)生交叉和產(chǎn)生混淆。
談到ERC-777的缺點(diǎn),是的,它有一個缺點(diǎn):它依賴于智能合約的中心化注冊。在區(qū)塊鏈的去中心化意識形態(tài)中,這不是一個理想的方法。這將需要以太坊開發(fā)者們采取其他額外措施,以確保其注冊表的安全性。
一位著名的加密貨幣YouTube用戶“Ivan on Tech” 確信 ERC-777的成功只是時間問題,盡管以太坊基金會完全注銷ERC-20的進(jìn)展可能會很慢:
“展望未來,以太坊基金會真的需要支持ERC-777,它可以取代ERC-20,因?yàn)樗谩R蕴换饡匀痪哂邢喈?dāng)大的影響力,他們正在推進(jìn)ERC-20。這是他們宣傳最多的。但是在未來,我們可能會轉(zhuǎn)而改用ERC-777。”
或許,一個新的、更有前途的代幣標(biāo)準(zhǔn)將為以太坊網(wǎng)絡(luò)的發(fā)展提供新的動力。在此之前,雖然GitHub上他們?nèi)员3种聊坪鯖]有什么比讓以太坊團(tuán)隊(duì)完成他們的工作更重要了,我們知道他們擅長于此。
評論
查看更多