Filecoin不存在“双花”问题|回顾Filecoin“双花”事件始末
从3月18日晚间至3月19日,社区对Filecoin“双花”事件进行了诸多讨论,经过与Filecoin官方等多方平台确认: Filecoin不存在“双花”问题,Filecoin链是安全的”。
什么是“双花”?
“双花"对于大部分人而言,其实是一个比较陌生的词语。
“双花”又名双重支付,也就是双重花费的意思。指的是在数字货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。
这是什么意思呢?
首先,双花是在数字货币交易系统中才会有发生的可能,我们用现金交易时,不存在双重支付的问题。
因为你在微信给我转账了5000元,我收了之后,你的账户里会少5000元,我的账户里会多5000元,也就是说,在现金交易时,资产的成功交易意味着实实在在地完成了资产的转移。
但是,在区块链的世界里就不一样了,由于交易的是数字资产,这些资产其实是一些虚拟信息之间的传递,而由于一条交易记录从产生到链接到区块链上,有一个时间窗口,我们所说的“双花”其实就是利用了“时间差”。
如果实现了“双花”,攻击者就可以让花出去的数字资产重新回到自己的账户上。
这就好比有些人使用投币电话,在硬币上狡猾地穿了一根细绳,尽管投掷了硬币,但实际的交易并没有完成,他可以在打完电话后利用细绳再将硬币取出,如法炮制,便能用这枚硬币打无数次电话。
冲突交易流程图
虽然“双花”可以让人获得double的收入,但是,整个区块链历史上成功发生过的“双花”事件,寥寥无几。
在Filecoin网络中,并未发生过!
Filecoin双花事件始末
3月18日晚,某用户在某数字资产平台内充入FIL,双花操作后再提现,依然可以再收到一笔同样数量的FIL,也就是说,用户某数字资产平台充值了61000个FIL,结果得到了120000个FIL。
这时,有用户认为是Filecoin网络发生了双花事件而导致的,但实际情况是,该数字资产平台自己记账记错了,也就是说,这并不是Filecoin链的问题!
不过,针对该事件,Lotus团队也进行了彻底调查,确定没有发现任何Filecoin网络和RPC API代码的相关问题,即链本身不存在双花问题,API代码也没有错误。
至于数字资产平台的交易记录,也已经在修正了,同时Filecoin官方团队也正在审查相关平台记账系统中的充值处理逻辑,以改正他们的API使用。
为什么会存在对“Filecoin 双花”的误解?
所谓的Filecoin“双花”事件,本就是一场闹剧。但是,为什么依旧有社区会对该事件产生误解,既然Filecoin链没有问题,API代码也没有错误,那么,问题又在哪里呢?
该问题的核心在于部分数字资产平台以及部分Filecoin区块链浏览器对于Lotus的链状态检查API使用不当,在处理多个类似消息时,其处理方式与所期待的不同。
而误解Lotus API的输出,就会导致记账系统将原始消息和替换消息都算作相同的发送者和接收者。
简单来说,就是人们对链的检查方式,这会呈现出消息被处理了两次的样子,进而产生了误解。
具体来说,就是部分数字资产平台使用了一种错误的处理链状态的方式——在tipset的每个块上调用ChainGetBlockMessages,然后在这些消息上调用StateGetReceipt。
而当StateGetReceipt被调用在两个相似的消息上(其中一个被执行,另一个被跳过),它将提供相同的结果给人,这就会导致给人一种两种消息都被执行的错觉。
社区,让Filecoin越来越好
从3月18日晚间到3月19日凌晨,自收到该事件的反馈,Filecoin相关团队就立马进行了相关信息的核实,并及时在推特、slack以及官网博客等渠道进行了最新信息的分享和更新。