听说1W个BCH不安全?好像是媒体过度解读了
争吵、分歧、意见不合,
各种偏见交织在人生中的每一丝纤维之中。
——伍尔夫《到灯塔去》
BCH硬分叉引发的种种质疑和争议,不亚于币圈核爆炸。
11月16日凌晨,虽然BCH在第556767个区块高度完成硬分叉,分成了BCH ABC和BCH SV两条链,但这场世纪之战并没有因此落下帷幕,反而愈演愈烈。
今日,有媒体将矛头指向BCH存在重大安全威胁,这对于熊市本就如履薄冰的“观战者”们无异于又一颗深水炸弹。
根据PeckShield态势感知平台数据显示,BCH硬分叉后的当天,共有341068笔重放交易同时存在于ABC和SV两条链上,涉及10080个BCH。
更有国外用户爆料称,在交易过程中遭到了小额重放攻击损失。
BCH开发团队第一时间接受45区采访时否认这样的指控,称设计了input污染法和构造特有操作码交易两种方法来防止重放攻击,钱包和交易所安全交易可以选择input污染法。
这无疑是一场被专业名词占领的争论,令“观战者”更加如堕云雾。
| 被质疑的重放攻击是什么? |
| 澄清中提到的input污染法又是什么? |
| BCH究竟安全吗? |
1
质疑
重放攻击是黑客常用的一种攻击方式,在计算机世界,是指攻击者重复发送一个目的主机已经接受过的信息来达到欺骗目的。
我们可以这样生动理解。
想象一下,某个商店发放了限量的二维码优惠券,只要出示优惠券扫码,即能享受优惠。但这个商店却没有辨别某张券是否被扫过的能力,这时,是不是有人就会利用这个漏洞,重复使用同一张券?
现在,“这家商店”来到了区块链世界。
以BCH为例,即便分叉成两条链,但ABC链和SV链仍然共享着分叉时点以前的相同区块数据,这也是为什么分叉后,用户会凭空拥有了另一条链上的资产。
但同样的原因也会导致资产的凭空流失。质疑者们认为,如果在ABC链上发生了分叉前的老资产的转移,那么,这条交易信息有可能会被攻击者放到SV链上广播。
而分叉后的两条链又是完全独立的,因此SV链并不认为这笔交易已经被记录过,相反会认为完全合法,交易同样会被SV链的矿工打包到区块中,造成SV链上的资产损失。
如果客户端升级时加入了重放攻击保护,就可以避免这类情况发生,但此次BCH客户端升级,双方都没有加入重放攻击保护,这也正是安全漏洞之说的由来。
2
回应
面对这种质疑,今天,BCH社区开发团队对45区(ID:block-45)表示:“交易所和钱包并没有开放充提,所以交易的人是知道的,应该没有问题。大量的交易是因为分叉当晚CSW制造了粉尘交易。”
开发团队还表示:“可以肯定的是,并没有发生大量的重放现象,是极少见的,全世界都知道BCH在算力战,能够有这种行为的用户都可以确定币是安全的。”
而对于这次BCH硬分叉面临的重放攻击,该团队称仍然有防范措施,可以通过input污染法和构造特有操作码交易两种方法来防范。对于钱包和交易所来说,可以选择Input污染法。
一位圈内技术人士对45区(ID:block-45)解读,input污染法中的“input”指的是交易输入。一个BCH的交易结构中,有交易输入和交易输出。
“交易输入就是资金的来源,它引用的是之前已有交易的输出,而交易输出指的是资金的去向,即资金转给了谁。”他这样解释。
“如果矿工在验证交易时,发现交易输入所引用的交易是非法时,那么这条交易自然也会因资金“来路不正”而被认为是非法的。”
据45区(ID:block-45)了解,input污染法正是利用了这一点。
BCH分叉后,ABC和SV两条链新产生的区块数据独立,因此,ABC链上新发行的币,即产生的coinbase交易,在本链上被认为是合法的,但是在SV链上是非法的。
BCH社区开发团队表示,input污染法可以将本链上的coinbase交易划分出大量的小额交易输出,用户通过交易所或者钱包提取ABC链上的资产时,可以构造一笔交易,将新产生的小额输出也作为这笔交易输入,构造在其中。
如此一来,这条交易信息即便在SV链上重新广播时,矿工会因为存在的这笔非法小额输入而认为整笔交易非法,相当于这笔交易被污染了,“污染源”就是这些小额输入。
这样,也就完成了链上资产的永远分离,避免了资产损失。
在回应者眼中,此次安全质疑完全是媒体过度解读的结果。
BCH当下成为万众瞩目的聚焦中心,这场战役造成的波波“余震”恐怕还会继续。