ERC223协议与ERC20不为人知的关系
说到ERC20很多人知道,但讲起ERC223很少有人知道,那么这些智能合约为什么叫ERC20或者233呢?
ERC的全称是 Ethereum Request for Comment, 就是对某一个修改建议,社区征求意见的意思。因类似的建议有很多,所以每一个ERC都有一个独立的编号,编号20的就叫做ERC20,223的就叫做ERC223,所以这个数字并没有特别的意思,就是一个编号而已,包括后来的ERC721,本文主要对ERC20及ERC223进行对比分析,ERC721暂不说明。
前面文章《快速了解ERC20协议》已经讲了ERC20协议的相关优缺点,而ERC223又是怎么一回事呢?针对ERC20缺点,ERC223希望解决的有两个问题:
1. ERC20 的转账机制是没有考虑到 “把ERC20 Token 转到ERC20合约地址”这种情况的。一旦出现这种情况,转账是可以成功的,但是转入的这些 Token 会处于一个永远无法被操作的状态,也就相当与永远消失了。
2. ERC223 提供了一个统一的 transfer 接口,可以有效地降低调用产生的gas fee.
ERC223将向现有的ERC20协议引入一个新功能,会主动判断接收方是否为一个智能合约。如果是普通的地址,则使用原逻辑进行正常转账,否则则需要接收方实现一个特定的接口进行接收,以防止意外转移的发生。ERC223可以防止token在以太坊网络上丢失。
虽然看上去ERC223很美好,但是要推广还是有很大阻力的。第一个原因就是目前所有
的社区工具都是基于 ERC20 的标准的,比如 EtherScan,而标准版的 ERC223 是不主动兼容 ERC20 的,所以ERC223的 Token 在 EtherScan 上查看会有各种各样的问题。另外ERC20的token都需要在ERC223标准下重新部署。这也意味着任何交易平台的上市都需要更新他们的信息和地址。这是一个艰苦的过程,这也就意味着,在未来很少有现有的令牌被有效地转换为ERC223。
每一个标准协议都是需要推动的,如果不是原协议发生致命性的问题,新的协议标准仅仅靠解决了原协议的几个缺点就被大众认可,显然是很难的,特别是以太坊热度很高的ERC20协议,更是几乎不可能的。
小技巧:
怎么查询哪些由于转错账而丢失的代币?
只需要去某个Token的EtherScan页面,查看“Token Balances”,这里的数字就是由于转错造成损失掉Token的价值。目前能查到的比较大额的损失,比如 EOS (194万美元), GNT(166万美元)。
本文同发于公众号:区块1号(firstblock001),关注公众号,了解更多。