ERC 20 优缺点,以及 eth 3 种转账方式

ERC20协议在区块链应用中广泛使用,但其存在无法记录转账来源、缺乏转账通知和无法携带额外信息等问题。ERC777通过引入send函数和ERC1820接口注册表来解决这些问题,允许监听和自定义转账行为,同时ERC20 Permit允许线下签名授权。然而,直接解决ERC20误转入合约问题需要重载_afterTokenTransfer方法或引入类似ERC721的安全转账机制。

ERC 20 协议的产生(优点):

  • 定义统一的函数名:名称、发行量、转账函数、转账事件等
  • 以便交易所、钱包进行集成
  • 所有实现了这些函数的合约都是 ERC20Token
  • ERC20 可以表示任何同质的可以交易的内容: 货币、股票、积分、债券、利息...
  • 可以用数量来表示的内容 基本上可以ERC20 表示

ERC 20 的缺点

以下是一个遇到很多次的场景:有一天老板过来找你(开发者),最近存币生息很火,我们也做一个合约吧, 用户打币过来给他计算利息, 看起来是一个很简单的需求,你满口答应说好,结果自己一研究发现,使用 ERC20 标准没办法在合约里记录是谁发过来多少币,从而没法计算利息(因为接收者合约并不知道自己接收到ERC20代币)。

ERC20 标准下,可以通过一个变通的办法,采用两个交易组合完成,方法是:第1步:先让用户把要转移的金额用 ERC20 的approve 授权的存币生息合约(这步通常称为解锁),第2步:再次让用户调用存币生息合约的计息函数,计息函数中通过 transferFrom 把代币从用户手里转移的合约内,并开始计息。

同样由于ERC20 标准没有一个转账通知机制,很多ERC20代币误转到合约之后,再也没有办法把币转移出来,已经有大量的ERC20 因为这个原因被锁死。

另外一个问题是ERC20 转账时,无法携带额外的信息,例如:我们有一些客户希望让用户使用 ERC20 代币购买商品,因为转账没法携带额外的信息, 用户的代币转移过来,不知道用户具体要购买哪件商品,从而展加了线下额外的沟通成本。

如何解决 ERC 20 中存在的问题

使用这个ERC777:send(dest, value, data) 解决。

ERC777 使用 send转账时会分别在持有者和接收者地址上使用ERC1820 的getInterfaceImpleme

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值