原标题:以太坊经典在一周内遭受第二次51%攻击 攻击者是如何得逞的?
在8月1日遭受51攻击之后,8月6日有媒体爆料,ETC再次遭受51攻击,这几次频繁的51攻击对于ETC来说,是一个比较沉重的打击。
目前区块链项目上,算下来遭受51攻击最多而且还存活的就属于ETC了,对于同源的ETH来说,却没有发生这样的事情,而且51攻击基本上也属于少见的,其实早在19年的时候,就有团队提示ETC有遭受51攻击的风险,接着几天后ETC就遇到了51攻击,而这次接二连三的遇到,也算是罕见了。
对于51攻击,很多币圈老韭菜们应该都是比较清楚的,主要是通过控制全网大量的算力,然后分叉出另一条链,从而使得这条链成为最长链,那么链发生了改变,就会使得某些大额交易失效,因此攻击者通过这种方式获取巨额利益。最简单的就是将自己的币冲到交易所,然后卖掉提币,接着开始在充币之前的区块不断挖矿,使得原先的链失效,新链里去除掉了自己冲到交易所的那笔币,这样自己的币就又回到自己的钱包里。
51攻击其实和数字货币的分叉比较像,只不过最大的区别是分叉之后,原链和新链都正常运行,并且至少有一个链做了防重放攻击措施,这样就能将两个链来分来,防止矿工挖矿之后,区块出现混淆。比如刚分叉完成之后如果没有防止重放攻击措施,那么BCH矿工挖出的块可能在BTC链上生效,这就造成一些不便。
51攻击则是出现分叉之后,原链和新链必然会在一定时间内一个链比较长,一个链比较短,那么这就使得矿工只认最长链,而不去挖短的链,这就默认了短的链无效死亡,接着长链就是 的有效链。
当然这是我们一般理解的51攻击和分叉,这也是基于比特币链上的理论,比较适合BTC、BCH等链,对于ETH和ETC来说,可能51攻击我们的理解可能会复杂一点。
ETH/ETC的出块时间一般比较短,不像比特币那样需要大量的计算,因此这种情况下,其实ETH/ETC很容易出现分叉,因此就有了GHOST协议,简单说,就是允许分叉区块的存在,我们称为叔块。
叔块的产生使得即使矿工不小心挖到了区块,那么后面的矿工也能将分叉区块整合在一起,这就避免了矿工争夺链的长度了。
下一个区块一般都在叔块还没有大幅延长的时候,就将其打包,这样大大减少了区块分叉的可能,因此也在一定程度上防范了51攻击。
因此只要是ETH/ETC的矿工公平竞争,基本上不太可能出现51攻击,而ETC这次遭受了51攻击,其实主要是攻击者在偷偷挖矿,秘而不宣,等到大幅超过主链的时候,再公开区块,从而巩固自己的竞争优势。
这种偷偷挖矿,之后择时公布的行为,有的人也称为藏块攻击或匿块攻击(藏匿自己的区块,择时公布。还有一种是矿池挖矿的那种,藏匿挖到的区块不公布,简单说就是损人不利己的行为)。
这里有一个需要注意的条件就是,攻击者所得的利润一般需要大于自己租用算力进行偷偷挖矿所需的成本。
这个时候,我们就应该想到,为什么攻击者喜欢在ETC上进行51攻击,主要原因是ETC进行这种攻击的时候,全网算力其实可以进行隐匿,而不被人发现端倪。
简单说就是我们都知道ETC和ETH采用的是同一种挖矿算法,根据目前的情况来看,ETH的全网算力比ETC高很多,攻击者需要攻击ETC的时候,那么就要提前租用或者购买大量的算力,这部分算力需要提前从全网算力中减去,如果是其他币种的话,大量算力消失,这是很容易被发现的端倪的,而ETC则不会,因为直接可以从ETH算力上减去,而且几乎也没什么人发现,这和早期BCH被攻击的策略是非常像的。
攻击者租用算力之后,隐藏起来然后挖矿,相对于ETH其实是不容易被人发现的,这样也就好实行偷偷挖矿的策略,加上ETC上其实各个矿工还要进行竞争,其实理论上,只要算力占有绝大多数的优势,其实这里不需要51%的算力都是可以的。
当然类似ETC的这种被51攻击的方法,BCH最终采用干预的方式,使得攻击者的链失效,现在BCH上也有防止51攻击的策略,并且实现了0确认这样的功能,因此可以避免这种方式的攻击,而ETC如果不能有效的采取某些方式避免进行不可逆确认区块的话,那么即使币冲进交易所,确认几百甚至近千个区块,那么也是有可能被攻击者得逞的。