对于以太坊来说,我们脑海中的第一个关键词也许就是“汽油费”。如今,各大区块链项目的主网络都是在线的,宣传的方向往往离不开“气”字。
高昂的GAS FEE一直是区块链交易的痛点,尤其是对于币圈各个领域的投资者而言。
随着区块链项目的增加和市场规模的扩大,区块链上的交易量和交易的平均耗气量也随之增加。
gasnow天然气价格历史数据
近期,随着市场大起大落、主网升级、二层解决方案等因素的影响,以太坊为首的区块链网络的GAS FEE持续下降。
除上述因素外,我们能否从代码或智能合约设计的角度减少完成特定功能所需的交易数量,从而优化项目乃至整个区块链的交易成本和交易环境?
今天,本文将向您介绍这个主题:比较几种与最常见的代币协议ERC20兼容的协议,包括ERC777、ERC1363和ERC2612。
本文将通过分析几种协议中代币传输所需的事务数,帮助您找到**选择!
ERC20 当前完成ERC20协议代币的转账操作需要分两步:
Approve()和transfer()/transferfrom()。
因此,有必要分成两个交易,支付两种气体:第一个交易完成授权,第二个交易完成转让;
为了解决“两步走”问题,目前主要的方案有ERC777、ERC1363和ERC2612,其中前两个方案已经改进,ERC2612目前仍处于优化阶段。
ERC20的主要参与者是代币发送者和代币接收者。
下面,我们将以Alice作为代币发送方,Bob作为代币接收方为例,直观地展示操作流程图。
ERC20代币转移操作简要流程图
ERC777 ERC777尝试引入operator的概念来规避掉“两步走”的问题。
在发送方授权操作员后,在ERC777代币合约中,发送方可以通过操作员将代币发送给接收方。
在发送代币的交易中,发送方不需要支付gas,发送代币交易的gas将由运营商支付。
ERC777代币转移操作简要流程图
ERC1363 ERC1363引入启发自ERC20中approve(), transfer()和tranferFrom()的**函数:approveAndCall(),transferAndCall()和 transferFromAndCall()。
在approval()、transfer()或transferfrom()之后,这些函数可以帮助ERC1363协议contract在spender address继续执行智能合约的approvalReceived()方法,在receiver address继续执行智能合约的ontransferreceived()方法。
通过这种方式,我们可以将approve和transfer或任何其他花费者或接收者希望执行的代码链接到事务中。
ERC1363代币转移操作简要流程图
ERC2612 ERC2612采用了用户签名的方式进行approve,签名中包含了approve的地址以及额度。
用户将签名提交给ERC2162标准合同,然后ERC2162标准合同对签名进行验证,从签名中获取审批的地址和额度,并用验证后获得的信息直接触发transferfrom操作,最终解决“两步走”问题。
ERC2612代币转移操作简要流程图
写在** 这几类协议对比后,我们发现:
从完成代币发送所需的事务数来看,ERC1363和ERC2612是比较合适的选择,其中ERC2612比ERC1363更灵活。同时,ERC777、ERC1363、ERC2612与ERC20合同兼容,不存在兼容性问题。
随着区块链智能合约项目的增加,单个区块内生成的等待交易总量也随之增加。
如果我们能够通过协议代码级别减少需要打包成块来完成功能的等待事务总数,将对区块链上的平均事务速度和平均气体成本有很大的帮助。
交易成本和交易环境的优化不仅会促进区块链网络的繁荣,而且会改善区块链的生态和基础设施。
文章标题:兼容最常见的代币协议:哪个才是交易成本和环境的最佳选择?
文章链接:https://www.btchangqing.cn/303360.html
更新时间:2021年07月22日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。