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