原來很多人都不知道,ERC-223、ERC-621、ERC-721這些到底是啥

ERC是以太坊的意見徵求稿(RFC)版本,由互聯網工程任務組設計。

安全應該是區塊鏈現在最棘手的問題,而安全問題中,尤其是智能合約漏洞氾濫成災,如何避免這些漏洞?或許我們應該瞭解一下智能合約所遵循的ERC標準。

本文作者 Lauren Stephanian 來自美國紐約,全球知名區塊鏈投資基金 Pantera Capital 投資副總、作家,她以專業投資人的視角對區塊鏈前沿技術有自己獨到的理解。

這篇文章中,她介紹到ERC標準是由以太坊開發人員編寫,開發人員在基於這些標準構建智能合約。其中,她詳細介紹了加密社區中最為流行的ERC-20標準,此外,還介紹了ERC-223、ERC-621、ERC-721、ERC-827這幾個ERC標準。

讓我們跟隨 Lauren Stephanian 瞭解一下這些ERC標準。

什麼是ERC?

ERC(Ethereum Request for Comment)是以太坊的意見徵求稿(RFC)版本,由互聯網工程任務組設計。RFC中包含了以太坊的技術和組織說明,ERC則包含一些以太坊網絡構建技術指南。

ERC是誰編寫的?

ERC標準是由以太坊開發人員為以太坊社區編寫的。他們為了給以太坊平臺創建標準,提交了以太坊改進建議( EIP )——包括協議規範和合同標準。如果EIP被委員會批准並最終確定,它就成為了一個ERC。

EIP的完整列表請參閱:

https://github.com/ethereum/EIPs

ERC有什麼作用?

這些被委員會批准確定的EIP,為以太坊開發人員提供了一套可行的ERC標準。由於EIP的接口是開放的,所以開發人員可以基於這些標準之上構建智能合約。其中ERC-20是整個加密社區中最流行的標準,以太坊平臺上的所有通證都使用這一標準。下面我們就來了解什麼是ERC-20標準,以及其他的一些ERC標準。

ERC-20

ERC-20標準包括以下方法:

totalSupply():返回通證的總供應量。

balanceOf(address _owner):_owner賬戶的賬戶餘額。

transfer(address _to, uint256 _value):發送數量為_value的通證到地址_to,觸發Transfer事件。

transferFrom(address _from, address _to, uint256 _value):從地址_from發送數量為_value的通證到地址_to,觸發Transfer事件。

approve(address _spender, uint256 _value):允許_spender提取一定數量的金額。

allowance(address _owner, address _spender):返回允許_spender從_owner提取的金額。

以上這些方法將會觸發以下事件:

transfer(address indexed _from, address indexed _to, uint256 _value):當token被轉移時則會觸發。

approval(address indexed _owner, addressindexed _spender, uint256 _value):成功調用approve方法後則會觸發。

ERC-20標準於2015年被提出,並於2017年9月正式確定,這是通證標準化的一個很好的開始。但是,社區中的一些開發人員指出,這個標準存在缺陷和漏洞。另外,有些用例的確需要使用不同的標準,下面介紹一些其他的ERC標準。

ERC-223

狀態:打開

提出日期:2017年5月3日

開發人員Dexaran詳細描述了ERC-223標準適用的兩種場景:

在ERC20通證標準中執行交易有兩種方式:

1.transfer方法。

2.approve + transferFrom 機制。

通證餘額只是通證合約中的一個變量。

通證的交易在合同中的表現是變量的變化:轉出賬戶的餘額將減少,接收賬戶的餘額將增多。

交易發生時, transfer方法不會通知接收賬戶,接受賬戶也將無法識別傳入交易!下面是我寫的一個例子,來展示導致交易未處理和資金損失的過程 。

如果接收賬戶接受到的是合約,用戶必須使用approve +transferFrom 機制來轉移通證;如果接收賬戶是外部帳戶地址,用戶必須通過 transfer方法轉移通證;如果選擇了錯誤的方法,通證將被卡在合約中(合約將不會識別交易),那麼,我們將無法提取這些被卡住的通證。

Dexaran提出的ERC-223標準就解決了這一問題,而且,它與ERC-20標準非常相似。當通證轉移到智能合約時,該合約的一個特殊方法tokenFallback將允許接收合約、拒絕通證或觸發進一步的操作。在大多數情況下,tokenFallback方法可以用來代替approve方法。

ERC-621

狀態:打開

提出日期:2017年5月1日

ERC-621標準是ERC-20通證標準的擴展。該標準增加了兩個額外的方法:increaseSupply 和decreaseSupply,能夠增加和降低流通中的代幣供應量。而ERC-20標準僅允許單個通證發放事件,這就限制了一個固定的不可更改的供應量。而ERC-621標準則建議totalSupply是可以修改的。

ERC-721

狀態:打開

提出日期: 2017年9月22日

ERC-721標準與ERC-20標準、ERC-23標準非常不同,它描述了一種不可互換的通證。這就意味著每個通證各不相同,並且每個通證對不同的用戶具有不同的值。比如以太貓(CryptoKittes):每個數字貓都是一個獨立存在的商品,其價值取決於該種類的稀有性和用戶的喜好。

ERC-721通證標準可以在任何一個交易中使用,但通證的價值則是“與每個通證相關聯的唯一性和稀缺性的結果”。該標準的函數包括name, symbol, totalSupply, balanceOf, ownerOf ,approve , takeOwnership , transfer , tokenOfOwnerByIndex, tokenMetadata。

ERC-721標準還定義了兩個事件:Transfer和Approval。Gerald Nash(傑拉爾德·納什)的文章就很好地解釋了可互換性這一概念。

GeraldNash文章:剖析ERC721

鏈接:https://medium.com/crypto-currently/the-anatomy-of-erc721-e9db77abfc24

ERC-827

狀態:打開

提出日期:2018年12月1日

ERC-20標準的另一個擴展是ERC-827標準,它允許用戶轉移通證,持有者也能允許第三方使用通證。以太坊上的通證可以被其他應用程序重用,這其中也包括錢包和交換機。在需要支持第三方動態消費限額調整時,這一點非常有用。另外,最重要的一點是,由於它是ERC-20標準的擴展,所以它也跟ERC-20標準兼容。

該標準中的一些方法如下所示:

transferFrom(address_from, address _to, uint256 _value, bytes _data) returns (bool success)

function approve(address_spender, uint256 _value, bytes _data) returns (bool success)

以上便是幾個比較知名ERC標準的介紹。

原文鏈接:

https://medium.freecodecamp.org/lets-talk-about-the-ethereum-token-standards-you-need-to-know-8af9fcb7e54b

資源

Gerald Nash(傑拉爾德·納什)所著的《對ERC721的解剖》

文章鏈接:

https://medium.com/crypto-currently/the-anatomy-of-erc721-e9db77abfc24

Leonid Beder(列昂尼德·比德爾)所著的《新ERC223令牌》

文章鏈接:

https://medium.com/kinfoundation/the-new-erc223-token-standard-8dddbf1a5909

Lucas K(盧卡斯·奇)所著的《ERC標準能否推動以太坊向前發展?ERC-20,ERC-223,ERC-721》

文章鏈接:

https://medium.com/wepower/erc-standards-to-move-ethereum-forward-erc-20-erc-223-erc-721-e1712456449d

Jim McDonald(吉姆·麥克唐納)所著的《解讀ERC-20令牌合同》

文章鏈接:

https://medium.com/@jgm.orinoco/understanding-erc-20-token-contracts-a809a7310aa5

Dexaran所著的《通證開發人員的魅力》

文章鏈接:

https://www.reddit.com/r/Ubiq/comments/6uhl19/an_appeal_to_token_developers_erc20_token/

Github平臺上的ERC827

鏈接:

https://github.com/ethereum/EIPs/issues/827

原來很多人都不知道,ERC-223、ERC-621、ERC-721這些到底是啥

免責聲明:轉載此文為傳遞更多市場信息,不代表幣圈世界的觀點和立場,請自行參考。


分享到:


相關文章: