加密领域最让人害怕的攻击之一可能有了不错的解决方案。
至少这是数字货币项目Horizen(其数字货币名为zencash)团队的说法,他们在今年初这样一次51%攻击时损失超过50万美元。
在一名有恶意的矿工控制了超过51%的区块链网络计算能力时,他能向系统注入错误交易,导致攻击的产生。
Horizen团队在今天发布的论文中声称已经发现了一项创新解决方案——通过“延时函数”升级他们的工作量验证共识算法,来处罚蓄谋这种攻击的矿工。Horizen是以私密为导向的数字货币zcash的分叉,而后者本身是比特币的一个分叉。
Horizen的联合创始人Rob Viglione表示,51%攻击需要一名矿工在上传至区块链之前秘密生产这些区块,延时函数会使得这些攻击代价变得极为高昂。
他告诉CoinDesk:“因此从本质上来说,是在尝试推出这些攻击时,它产生了巨大的成本,10倍的成本。”
继今年6月5种主要数字货币因51%攻击遭受损失后,许多加密爱好者意识到了这一问题。
这种攻击从更广泛的意义上来说损害了人们对数字货币安全性的信心,Viglione称其为“整个行业的消极外部表现”。
而直接观察可知,Horizen中发生的51%攻击导致区块链中产生了36了虚假区块——Viglione称:“在攻击(发生)后我们的工程师立即开始了头脑风暴,我们认为我们有一种非常简单的解决方案,可确保这不会再次发生。”
他表示:“从技术上来说,在(这种攻击)再次发生时让其成本变高。”
处罚
为了实现这一点,Horizen的新算法引入了对延时区块的处罚——延时区块是在最新的区块链产生很长时间后向网络广播的区块。
实际上,新的代码通过延迟函数修改了底层共识算法的一种特性,即所谓的“最长链规则”。
Viglione举了一个例子,如果被提议的一次区块是比最新的多5个以上,就会带来处罚。矿工为了让交易被链接受,需要生产一倍的区块数量。
这样51%攻击(发生的)机会就降低了。
而由于Horizen的结构特性,这样的处罚只有在矿工怀有恶意的情况下才会发生。
Viglione解释称:“我们的平均块查找时间是2.5分钟,广播到世界任何地方的最大延迟是1-2秒,因此不可能出现合法落后5个区块的情况。”
Viglione指出,由于多个块链都力争成为诚实的那个,这会导致区块链上出现网络分区。在这种情况下,由矿工投票决定哪条链是合法的。
“他们实际上是在选择合法的那条链,然后他们开始挖掘最长的规则链。”
此外,为了防止网络被永久分裂,Viglione表示已接受链的处罚会减少。
他告诉CoinDesk:“添加了区块后,此前评估的处罚会相应减少,这种一直存在的收敛会防止网络被永久分裂。”
一个古老的问题
此次发布的白皮书指出,如果一条区块链由于太过落后于最新的区块而被拒绝,交易所可冻结可以存款直至问题解决。
此外,Viglione表示处罚的具体细节会根据网络情况进行调整。
他说:“如果我们认为相对于全网算力hashrates等标准来说处罚不够充足,我们可以调整成本。”
不过值得注意的是,这种变动一直是研究的主题,另外有一些人对Horizen是否能实现这些还持怀疑态度。
共识研究员Emin Gur Sirer对CoinDesk表达了他的怀疑态度:“这些协议非常精细,很难做到。”
不过在为期数月的测试之后,Viglione相信这项新算法会在实际应用中表现良好,并期望它为更广泛的数字货币行业起到良好范例作用。
Viglione称:“我们已经内部测试了几个月的时间,所以我们对代码充满信心。”
“我认为其他项目也应该,且非常应该升级他们的代码。”