erc777代幣介紹
與以太坊生態系統中廣泛採用的erc20標準不同,erc777標準通常被稱為城裡的新生兒。一個潛力巨大的孩子。有些人甚至聲稱erc777標準是erc20標準的有效繼承者。erc777標準規範在eip777(以太坊改進提案檔案中有詳盡描述。
在這篇博文中,我們將探討這些大膽的主張是否合理,並與erc20標準相比,對erc777的優勢(以及一些缺點)進行深入概述。
erc777解決了哪些erc20的問題?
假設您希望允許第三方帳戶(或合約)使用您的代幣。最常見的需求是在使用去中心化交易所智慧合約交一鍵發幣時。
此過程中的第一步是你需要透過呼叫erc20智慧合約上的approve
方法函式來批准轉賬賬戶並設定他們有權獲得的資金限額。除了用你的資金信任第三方之外,你還需要確保支出限額始終足以滿足所需的交易。
erc777運營商
erc777標準透過引入運營商的概念來解決上述問題。像往常一樣,運營商是某些具有執行特定任務許可權的帳戶。在erc777標準下,有兩類運營商:
- 預設運營商
- 指定運營商
一個指定運營商是允許代表另一個地址傳送和銷燬代幣的地址。 一個預設運營商是允許代表所有代幣持有者傳送和銷燬代幣的地址。
任意erc777代幣持有者地址可以透過呼叫authorizeoperator
方法函式授權給一個指定運營商獲得許可權。與此類似,任意erc777代幣持有者都可以透過呼叫revokeoperator
方法函式撤運營商地址的授權(包括預設運算子)。
在一鍵發幣的erc777實現中, 預設運營商是用於部署代幣的地址。
利用運營商功能的另一個小的(並且不太明顯的)好處是使用者不再需要擔心交易費gas價格。現在可以將其委託給運營商。
erc777掛鉤 - 一個額外的安全機制
erc777掛鉤是與轉賬方和接收方帳戶繫結(掛鉤)的程式碼段。實質上,它們是智慧合約例項:
- ierc777sender介面有一個函式
tokenstosend
- ierc777recipient介面有一個函式
tokensreceived
這兩個介面的智慧合約的地址例項儲存在erc1820登錄檔中,與它們“掛鉤”的地址配對。
如果轉賬地址在登錄檔中具有匹配的ierc777sender
例項,則在執行交易之前將呼叫其tokenstosend
函式。如果未找到匹配的例項,則轉移交易將照常進行。
如果接收地址在登錄檔中具有匹配的ierc777recipient
例項,則在執行交易後將呼叫其tokensreceived
函式。如果接收地址是普通地址且未找到匹配的例項,則轉賬將照常進行。但是,如果收件人地址是合約地址,並且未找到匹配的例項,則將取消轉賬交易。
在下圖中,你可以看到“掛鉤”轉賬呼叫的流程。
因此,掛鉤的引入使我們能夠增強erc777代幣的轉賬功能,即使在部署代幣之後也是如此。它還提供了取消交易的可能性,如果此交易未滿足某些條件。
erc777的缺點
erc777的新功能確實帶來一些小缺點:
- 由於它使用掛鉤,轉賬交易費用略高
- 持有代幣需更謹慎的審查,因為你必須信任你選擇的運營商
使用一鍵發幣建立你自己的erc777代幣!