BCH分叉时提到无数次的“粉尘攻击”究竟是啥?如何防护?
11月 16 日凌晨一点五十二分, BCH 正式分叉为 BCH ABC 链和 BSV 链。有人说这是区块链的世界杯,从分叉开始, ABC 链与 BSV 链的算力战、出块进展、价格变动一直为业内人士所关注。当晚有很多人都是守着观战,其中莱比特矿池的江卓尔从当晚就开始进行着 BCH 分叉的直播。
江卓尔一直是比较支持与BCH这边,在其微博中,江卓尔提出 ABC 链遭受粉尘交易攻击,还冷嘲 CSW 党为了赶出块速度,还将粉尘攻击交易硬归为正常交易。
粉尘攻击是什么呢?
粉尘攻击,即粉尘交易攻击,是指低额的交易大量出现(又称垃圾交易),网络会出现大量待确认的交易,区块空间被占满,导致了区块链网络堵塞。在这种情况下,正常有价值的交易无法被即使处理,影响了整个区块链生态的运转。类似于有1000个人排队在银行窗口取钱,然后每个人还是只取一元钱,从而影响到了真的需要办理业务的人。
比特币由于其本身设置的一些漏洞,2016年就遭遇了几波粉尘攻击。按照比特币的设置,比特币转账是需要支付一定的手续费,这个手续费是多少则会根据交易的字节数、数量与币龄(越早被挖出的币,币龄越高)来决定,交易数越大、币龄越高,则手续费就可能越低,甚至免费。因此,如果攻击者用极少的比特币( 0.00001 个比特币即可)加上币龄比较高的一个比特币进行转账,需要付的手续费就很低甚至免费,这样攻击者可以频繁进行这类转账,从而达到粉尘攻击了。
粉尘攻击得目的就是这样通过频繁的垃圾交易,在低成本的情况下造成区块链网络的拥堵。在网络阻塞的情况下,很多正常有价值的交易就无法及时被处理,很大程度影响了网络的正常运转。再者,抓住大量交易待确认这个痛点,市场会抬高确认交易的手续费,使得基于区块链的落地应用成本也上升,不利于应用地进一步发展。故此,粉尘攻击经常被用于利益性目的,如干扰竞争对手的网络。
粉尘攻击如何防护?
扩容。对于粉尘攻击而导致的网络拥堵现状,比特币社区曾提出的观点则是扩容,将比特币区块链由1M进行扩容。扩容即扩大区块的容量,一定程度上的确可以提升交易处理能力。就如同,前面提及的银行例子,银行扩大几个处理业务的窗口,这样就可以提升交易的确认效率,一定程度上缓解了拥堵的情况。
矿工共识。通过大规模的计算与考量,在合理的范围内,设定转账交易的最低底限。并且在矿工中传播,是矿工达成共识,同意在交易满足最低底限后才进行交易的打包,这样一来,从成本的角度分析,粉尘攻击的发起成本就上涨了,攻击者发起攻击也会受到一定的阻碍。另一方面,这个底限的设定也要一定合理,以保证真的需要交易的用户也承担得起这个成本,确保区块链网络上正常交易的进行。
从ABC与CSW两派对BCH升级方案产生异议开始,这两派早已在推特上展开口水之战,一直到分叉起的两派也开展算力之争,分叉刚开始ABC率先挖出两个块,一直到16号当天下午,据coin.dance上的数据,BCH ABC以比BCH SV领先16个区块。然而经过两天,现在coin.dance的数据来了个大逆转,截止目前,已经反倒SV派领先三个区块。亦或是粉尘攻击造成的网络拥堵,导致了大量交易确认迟缓,从而影响了BCH ABC出块效率。
△16日coin.dance
△今日coin.dance
从区块链浏览器的数据可以看出,在16号的时候, BCH ACB 链上的小额交易数量的确很多,其中以 556846 和 556843 块的数据最为明显。这样看来,粉尘攻击确实大量存在。