【得得白话】51%算力实施的“双花攻击”,会如何毁掉区块链信任原则?

图片来源/视觉中国

以太坊(ETH)君士坦丁堡硬分叉“升级”在即,没想到曾因The DAO事件由以太坊原链分裂出的以太坊经典(ETC)却突遭变故,被安全公司多次预警的ETC网络51%攻击事件变成实锤。多家交易所调整ETC充提币确认要求,有些甚至已经暂停了ETC的存取款。原本需要花费高昂成本的51%攻击再次对“以太坊家族”出手,而这51%攻击究竟是怎么一回事?

在生活中,一件事出现多个人的意见时,我们往往会根据少数服从多数来决定这件事的走向甚至结果。在自治性极高的数字货币世界中,也有着少数服从多数的规则,而这个规则也是破坏数字货币世界的漏洞——51%攻击。

相信很多人都玩过黄金矿工这款小游戏,数字货币世界与这款小游戏的模式可以说有着异曲同工之妙。我们把获取比特币的勘探模式称为挖矿,进行挖矿的工作者也称之为矿工。

在数字货币世界中,这就不仅仅是一款单人或者双人模式的小游戏了。全球数量庞大的矿工们在这款游戏中通过挖矿获得黄金(数字货币),要想获得更多的黄金,就需要更多的生力水(算力)。每块黄金都被追踪,黄金的每笔交易也会自动形成记录,跟随黄金一起记录在一条长长的链上不可更改,并且记录在链上后才被确认为真实的黄金交易。无效的黄金交易则会像树枝般分叉形成另一条链,脆弱短小则被放弃供给营养不再继续壮大。但是这款游戏没有石头,只是黄金会越来越稀少,藏得也越来越深。同时,这款游戏也存在一个漏洞——魔力水(51%攻击)。一旦有人拥有了超过50%的生力水,生力水就变成了魔力水,魔力水能够控制分叉链的存亡,甚至让所有的矿工无法挖到黄金。

矿工们使用矿机来挖矿,生力水越多,增益效果越强,所能得到的黄金速度也就越快。随着不断的挖掘,容易获取的黄金越来越少,然而挖矿的支出却只增不减,于是一部分矿工决定合作共赢,一起挖矿,于是便形成了矿池。大家将生力水聚集在一起,挖矿所得收益根据提供生力水的多少来计算。然而当拥有魔力水矿池的人们或者更强大的邪恶矿工出现决定攻破漏洞时,便可以先使用黄金与他人进行大数额交易,同时也将黄金转移到自己另外的账户中,再控制分叉记录的存亡,使得与他人交易的黄金记录消亡却保留自己的违规交易记录。这种交易了两次同一块黄金后却使真正黄金交易记录消亡的方式也就是所谓的“双花攻击” (double spending),进行了两次花费给他人造成了巨大的损失,而自己因为拥有了魔力水却可以空手套白狼。

看起来攻破了这个漏洞就可以获利颇丰,但拥有魔力水所付出的代价并不小。生力水越多,分布的越广就越难聚集,聚集在一起的费用也就越高昂。作为数字货币的先驱者比特币,要拥有其50%以上算力“魔力水”的代价要比靠“双花攻击”获利多的多。而在这次的ETC51%攻击事件中,据区块链安全公司PeckShield的数据统计,从1月5日至1月8日,ETC共遭受至少15次的疑似双花攻击,损失ETC219,500枚,价值约110万美元。大家所讨论的攻击成本虽然被保守估计在数十万美元,但攻击者仍然有盈利空间。

对数字货币而言,虽然全网算力越大越不值得被攻击,但避免51%攻击不光是靠“做大做强”。当初中本聪创造比特币时便将这种漏洞写进白皮书,也就早已将这种可能性估算在可发生的事件里。比特币的诞生是想通过技术得到广泛的认可和使用,使人类迎来区块链时代。当为了利益而选择成为邪恶矿工之时,损害的就不仅仅是金钱,而是自身的失信于人,更是在阻碍一项技术未来的发展。