关于“假充值”问题的详细技术解读区块链

火球财经 2018-07-10 16:36
分享到:
导读

7月9日,慢雾区发布以太坊代币“假充值”漏洞攻击预警。

7月9日,慢雾区发布以太坊代币“假充值”漏洞攻击预警。PeckShield第一时间针对此问题进行深入排查和分析,确认这是由于某些交易所确认机制不完善以及相关合约代码未能严格遵循标准而引发的问题。目前已发现并确认有十数家交易所存在该问题,在此呼吁受影响的交易所及时排查问题,避免更大的损失。

交易所确认机制漏洞

以ERC-20 Token为例,某些交易所可能仅依赖交易状态(TxReceipt Status)和链上确认次数(Block Confirmation Number)对交易结果作判断,忽略了对Token balance的检查。以下列代码为例:

如果发起者账户为0且_value为大于0的某个值,那么调用后函数会返回false,但该笔交易的交易状态是Success:

有问题的交易所在确认转账状态时,如前所述只读取交易状态和链上确认次数,就会承认该笔转账,导致虚假转账问题的产生。

对合约开发者的建议:严格遵循标准

合约代码也存在一定问题,以上述代码为例,按照ERC-20的标准[1],transfer函数在Token账户转账额度不足的条件下应该抛出异常:

image.png

这样交易状态自然会变为Fail。换言之,即便交易所依赖交易状态做最终确认,也可确保自身安然无虞。

参考文献:

[1] https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

涉及到的未严格遵循的合约有547个。

确认 问题 交易 交易所 状态
分享到:

1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。


专题报道