以太坊是项目代币发行及运行的主要平台。根据ICOWatchlist 10月17日的数据,通过以太坊平台进行ICO的项目市值占到所有ICO项目市值的82.66%。以太坊平台上有很多ERC代币。根据Etherscan 10月17日的数据,以太坊上ERC-20代币数量达到130058种,ERC-721代币数量为276种。除了ERC-20、ERC-721之外,以太坊平台上还有很多其他类型的ERC代币。
这些代币有不同的使用场景,不同的使用场景因为要满足不同的需求,对代币的属性、功能、操作都提出了不同的要求。这就是为什么现在市场上会有这么多形形色色ERC代币标准的原因。
所谓ERC,就是Ethereum Request for Comment,以太坊代币协议。不同的协议对各自代币的属性、功能会有不同的设置。今天,区块真探梳理了十几种比较典型的ERC代币协议供小伙伴们参考。此外,真探还针对ERC代币协议提出了两点思考,感兴趣的小伙伴欢迎一起互动呀。
01
以太坊上有哪些ERC代币协议
先介绍一下ERC-20代币协议,这是第一代数字代币标准,同时也是以太坊网络中最主要的代币标准,大部分1C0项目的代币使用的都是这种协议。
一般情况下,开发人员在创建DApp(去中心化应用)时会开发出对应的内生代币。如果不对这些代币设置一个统一的标准,那么钱包、交易所,以及需要与多种DApp进行交互的智能合约等每与一种新的代币进行交互就需要更新系统代码,会非常麻烦。
为了解决这个问题,以太坊系统在2015年提出了ERC-20代币协议。简单来说,ERC-20代币标准就是DApp开发人员在项目代币中采用的一套标准,以确保自己的代币能兼容ERC-20协议,从而兼容上述的钱包、交易所、智能合约等平台,并且提高操作效率。
ERC-20协议为以太坊网络做出了巨大贡献,但是也存在一个比较严重的问题。如果用户将ERC-20代币发送到代币自身(代币本质上是一种智能合约)或者不兼容智能合约时,会导致资金丢失,因为此类智能合约无法做出响应。为了解决这个问题,同时满足其他应用场景需求,市场上逐渐出现了其他ERC代币标准。
名称:ERC-223
提出时间:2017年5月3日
类型:标准代币
首先,ERC-223在ERC-20的基础上引入了一个新功能,通过回退函数来防止代币被发送到不兼容合约中,从而避免代币丢失。
其次,ERC-223代币在转移的过程中只需触发1个交易步骤(ERC-20使用的是transfer函数,代币在转移的过程中需要触发2个交易步骤,第一步用于请求交易,第二步才是通过合约执行交易),所以,基于ERC-223的代币转移效率更高,花费的Gas更少。
第三,ERC-223代币向后兼容ERC-20代币。也就是说,ERC-223在解决ERC-20缺陷或者优化ERC-20的同时,继续保有ERC-20的其他功能。
名称:ERC-777
提出时间:2017年11月20日
类型:标准代币
详情:首先,如上所述,ERC-20代币在转移的过程中需要触发2个交易步骤,而ERC-777采用send函数,代币在转移的过程中只要触发1个交易步骤。和ERC-223一样,代币交易效率更高,Gas费用更低。
其次,ERC-777可以通过send函数来调用ERC-820合约,ERC-820本质上是一个信息记录表,通过ERC-820合约,ERC-777可以判断与其交互的合约是否兼容,如果不兼容,就会取消交易,从而避免代币丢失。
第三,ERC-777在ERC-20的基础上增加了hook函数。通过这个函数,ERC-777合约能控制代币在特定交易环境中的行为,也允许交易双方干预交易过程。举个例子。ERC-777可以在交易发送前向代币发送方发出提醒,允许发送方取消交易。
ERC-777还能基于hook函数屏蔽特定地址或代币类型的交易。在实现这一功能时,ERC-777也会调用ERC-820协议。比如,代币持有者可以将某些不可信地址列入黑名单,屏蔽与这些地址间的交易,从而提升资金的安全性。
第四,ERC-777添加了operator。一个operator就是一个地址,可以代表另一个地址发送并且销毁代币。代币持有者可以指定operator或者default operator,也可以随时撤销operator。
通过operator操作,代币持有者可以实现一系列不同的功能。比如,将代币自动支付到某合约或者可信地址,或者根据一定的规则帮助分配代币持有者的数字资产。比如,设定一定的条件,当条件满足时将代币从热钱包转移至冷钱包;进行代币捐赠或者再投资等等。
第五,在实现以上功能的同时,ERC-777也实现了对ERC-20的向后兼容。
名称:ERC-1155
类型:标准代币
首先,ERC-1155通过整合智能合约在很大程度上节约了资源及成本。ERC-1155的创造者是Enjin Coin平台(用于开发区块链游戏及加密货币)的CTO。
他在开发的过程中发现,当时的代币标准无法满足区块链游戏的需求,因为每个代币都需要一个独立合约来对其进行定义。可以想象,一个大型的区块链游戏里面有几万种游戏资产,每种游戏资产对应一个智能合约,那么一个游戏就需要用到几万个智能合约。这就好比我们每使用一个APP都要特意买一台电脑来运行这个APP一样,完全没有必要,而且是对资源的极度浪费。
其实大部分以太坊合约都是比较相似的,不同的合约间存在很多相同的代码。开发人员在开发项目或者新代币的时候只是对合约做了细微的调整。
通过ERC-1155代币标准,开发人员只需定义那些与其他代币互异的数据就可以了,不需要再重复过一遍与其他合约相同的代码,节约了存储成本及开发时间。
其次,ERC-1155标准提升了代币交易效率,降低了交易费用。ERC-20代币间交易过程是这样的。
而ERC-1155可以把同一种代币打包到一起,将ERC-20交易过程中的三个授权步骤压缩到一步,能够做到将单个或者多个代币发送给单个或者多个地址,从而大大提升了交易效率,同时也降低了交易Gas费用。
从上面这张图中,我们可以看到ERC-1155标准的最大优势在于,可以连接不同的代币(比如同质代币和非同质代币【后文会提到】),既支持通货(可以理解为同质代币)的定价换物,也支持物物相换(可以理解为非同质代币间交易),未来的应用场景非常广阔。
名称:ERC-721
类型:NFT(Non-FungibleToken)非同质代币
提出时间:2017年9月
ERC-721是除了ERC-20之外大家听得比较多的一种ERC代币。这种代币或者代币标准最大的亮点就是不可置换性。ERC-20代币是可置换的,最小可细分到十的十八次方分之一份,而ERC-721代币的最小单位是1,无法再分割。每个ERC-721代币都对应唯一的ID,是独一无二的。以加密猫为例,每一只猫都被赋予独特的属性,猫与猫之间是不能进行置换的。这种独特性使某些稀有猫咪具备收藏价值,受到很多人的追捧。
ERC-721代币可以有非常广泛的应用场景。现实生活中的很多物品都具备独特性,ERC-721代币的应用场景之一就是将现实生活中的实物资产映射到区块链上。ERC-721代币还可以用于认证场景。个人的身份信息、证书、档案等都是独一无二的,并且这些信息可以被数字化,在特定的场合下需要具备一定的隐私性,这些特征都与非同质代币以及区块链技术的属性天然契合。
名称:ERC-875
类型:非同质代币
首先,ERC-875也是一种非同质代币,具备不可置换性,可以被应用到很多场景。
其次,ERC-875在ERC-721的基础上,实现了批量交易功能。ERC-721标准虽然支持非同质代币间的交易,但是一笔交易只能实现一对一交换。ERC-875标准可以对代币进行分组批量交易,提升了交易效率,降低了交易成本。
第三,ERC-875标准实现了简单的原子交易。所谓原子交易,就是指不通过中间方,直接将一种代币兑换为另一种代币这样一种交易方式。ERC-875标准搭建了去中心化交易平台,买卖双方可以直接在该平台上交易,并且由买家支付一次Gas即可,卖家无需持有以太币。
名称:ERC-725
类型:非同质代币
提出时间:2017年10月2日
ERC-725与ERC-735标准定位于身份及证书认证场景。深度发展的话,可以实现对所有DApp或者区块链平台的索引支持,提供跨项目的分布式、可操作身份认证功能。
名称:ERC-827
类型:标准代币
首先,ERC-827在ERC-20的基础上增加了交易数据传输功能,资产与数据的传输广度及速度都得到了提升,使用户能在几秒内将数据转移到全球各地。
其次,ERC-827标准在确保资产及数据安全性不变的前提下,允许第三方(比如经纪人、代理人)无需私钥就可以对交易进行验证。
名称:ERC-865
类型:标准代币
ERC-865标准使用户在使用DApp时能够使用项目代币代替以太币来支付Gas费用。
名称:ERC-888
类型:多维代币
首先,ERC-888是一种多维代币标准,可以一次性部署多个资产。其次,ERC-888标准可以计算以及支付代币持有者股息。第三,ERC-888标准因为与所有web3兼容,所以可以标记实际资产。
名称:ERC-621
类型:标准代币
ERC-621标准的亮点在于可以增加或者减少流通中的代币供应量。
名称:ERC-1410
类型:PFT(Partially-FungibleToken)部分同质化代币
ERC-1410标准可以将代币持有者手中的代币划分成不同的部分(tranche)。ERC-20、ERC-721等代币都是基于整个代币进行操作的,而ERC-1410可以以更细的粒度对代币进行控制和操作。比如,代币持有者可以赋予代币的部分余额授权逻辑和锁定逻辑。以股票型代币为例,持有者可以对该种代币进行股份分类。代币持有者也可以依据代币tranche分类的不同做一些操作上的限制,比如设置某些操作只作用于指定tranche分类的代币,某些操作优先消耗指定tranche分类的代币。
名称:ERC-1400
类型:部分同质化代币
首先,ERC-1400继承了ERC-1410标准,在tranche功能的基础上,定位了更加细分并且复杂的应用场景——证券业务。ERC-1400将投资期限、风险不同的tranche组合成一个整体,达到降低投资风险的效果。比如,ERC-1400标准可以支持投资期在5-30年,投资风险不同的证券组合。
其次,ERC-1400标准因为将应用场景定位在证券业务领域,需要链上链下参与者进行更为复杂的互动,所以这种标准本身需要具备对证券进行强制转移的能力,这样,证券在法律诉讼等场景下就可以实现追回。
第三,ERC-1400标准还允许用户对交易是否成功以及失败的原因发起询问。用户接收到的理由基于ERC-1066协议。
通过上述描述,我们可以发现,这种代币标准主打监管功能,非常适用于现在比较热门的STO(security token offering,证券代币发行)场景。
名称:ERC-1404
类型:部分同质化代币
ERC-1404标准也主打监管功能。ERC-1404代币发行人可以为代币设置一定的限制。比如,在什么时候,在何种条件下,转移多少代币,从而达到满足关键监管要求的目的。
02
关于ERC代币协议的两点思考
上面只是列出了一些比较典型的ERC代币标准,以太坊上的代币标准很多,甚至到了混乱的程度。所以真探想要探讨的第一个问题是,为什么与以太坊基础代币标准(ERC-20)互异性不高的ERC协议提案不能直接在已有的标准上进行更新,而是需要开发(复制)出新的标准,在新的标准中对部分代码进行调整。
关于这个问题,真探询问了有关开发人员,得到的答复是“规范定了后不更新,如果要适配其他不一样的场景,一般会新增一个规范”。
同时,真探了解到,以太坊协议提案的整个流程大概是这样的:开发者需要先在Github上创建一个EIP(Ethereum Improvement Proposal,以太坊改进提案),在其中描述协议内容。获得广泛认同的提案会被标准化,标准化提案中只有少数草案能通过审议成为决案。文/币圈多乾 官微 2353628688
真探理解为,这是一系列规范化操作,经过这些操作成为决案的ERC标准一般情况下不会再进行修改,如果要对现有标准进行调整或者要满足新的应用场景,就需要增加新的规范。
鉴于目前有这么多以太坊代币标准,整个协议系统比较杂乱,真探认为,很多代币标准其实可以相互整合,整套操作流程也可以进行调整。如果要考虑标准更新对相关代币的影响,是否可以对代币标准增加测试功能,支持在沙盒环境中测试代码更新效果,以降低操作风险。
其次是新标准冷启动问题。现在以太坊上的大部分代币使用的都是ERC-20标准。这种标准存在资金丢失问题。据悉,2017年,ICO参与者因为ERC-20标准这一“特性”损失了400多万美元。有一些ERC标准,比如ERC-223和ERC-777针对ERC-20这一问题提出了解决方案,但是目前还没有主要项目代币采用这两类标准。可以想象,从一个标准迁移至另一个标准需要解决很多问题,比如旧数据的迁移及更新,标准间的兼容性问题等等。这也是开发人员可以考虑拓展并且解决的领域。
责任编辑:币圈多乾