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