多层共识系统是否能够为多达90%的51%攻击提供网络弹性?
HodlX访客留言 提交您的帖子
最近,我们看到越来越多的区块链网络成为51%的受害者 攻击. 这种攻击之所以可能是因为阈值可能很低,仅占哈希率的50%以上。当攻击者接管网络时,有很多种方法可以滥用它。例如,攻击者可以执行两次消费。但是,更重要的是,尽管网络是由恶意用户控制的,但不能将其操作视为正常操作。本质上,此类攻击使区块链无法工作.
这解释了为什么要建立具有高抵御能力的新共识以应对51%的攻击是一项非常及时的任务。在他最近的文章中, 99%容错共识指南, Vitalik Buterin提出了一种方法,可以将51%攻击的阈值从51%的股份或哈希率提高到99%。关键是引入不参与块生成的其他验证器(称为观察器)。观察者执行区块链的后验证,并可以在发现受到破坏的区块时向网络发出警报。对于后期验证,Vitalik建议通过依赖于等待时间的算法,每4,096秒随机选择512个节点.
尽管此方法确实可以改善网络保护,但是它具有严重的缺陷。最关键的弱点是对共识所需时间的依赖,对网络吞吐量的依赖以及观察者之间的时间同步.
在此,D的最小时间间隔是一个经验值,观察者可以通过该经验值正确交换数据。 D的计算考虑到互联网连接状况不佳以及观察者的处理能力。仅当确认时间间隔除以D且不小于签署此块的观察者的数量时,该块才被视为有效.
由于D值是所有可能值中的最小值,因此在D间隔内只有一个观察者确认一个块时,存在潜在的情况。因此,达成共识所需的时间与观察者的数量成线性关系。这严重限制了网络的可扩展性和分散性.
在观察者数量有限的情况下(Buterin建议仅使用512个观察者),验证仅是伪分散的。观察者数量的显着或无限增加可能会导致所需的D时间大大增加。在这种情况下,验证将花费更长的时间甚至变得毫无意义。.
现代通信信道的带宽仍然有限,阻碍了大块的后验证。假设交易大小为200字节(实际上很小),并且仅在没有智能合约的金融交易中才有可能,并且一个区块中有50,000个交易(现代区块链正在积极尝试达到该级别),则区块大小为10Mb。一秒钟内传输此数据量需要100Mbps通道。中继通道肯定能够保证此吞吐量水平,但是区域连接会慢很多。由于需要在设定的时间段内获得签名,这将使验证无法进行,或者仅选择具有最佳中继信道的观察者进行伪分散处理.
另一个弱点是观察者之间的强制时间同步,这增加了网络对潜在攻击的脆弱性,因为没有区块链网络使用安全的时间同步协议(例如SNTP)。与不安全的NTP配合使用会为观察者池的不同步创造多个机会,这些机会随后会完全破坏验证.
为了消除上述问题并使网络弹性从51%的攻击提高到90%,利用其他角色的方法可以为网络共识提供解决方案。除了Vitalik Buterin描述的解决方案之外,在这种情况下,网络需要动态分配给节点的五个角色.
由于此设置,要解决在多个层上同时获得67%的股份的拜占庭容错(BFT)问题,需要控制90%以上的股份。此外,弹性是如此之高,以至于恶意交易甚至需要53%以上的股份才能出现.
即使拥有90%的一手拥有的网络的网络出现的可能性很小,客户也将开始追溯拒绝这些区块并停止信任受侵害的网络,从而有效地将网络一分为二。由于使用网络的客户是其最有价值的部分,拥有90%的股份控制权只能控制没有客户的死网络,而其余的10%将成为新网络中100%的硬币持有者.
网络使用异步块验证来消除共识时间对验证器数量的依赖性。生成当前块并完成基本的后验证后,下一个块便立即开始生成。完全验证是在串联的不同层上进行的(按验证者,torrent,对等方和客户端角色)。每当发现恶意块时,区块链都会回滚到最后确认的状态并从原始交易中重建.
通过使用类似BitTorrent的技术,可以缓解潜在的Internet连接问题。数据以碎片形式在网络上传输,从而确保了低带宽区域中更快的交换速率。这样就可以将数据传送到人为隔离的区域.
时间同步挑战的解决方案是双重的:尽可能使用内部处理时间(以滴答为单位),并且通过受保护的专有SNTP协议完成时间同步.
总而言之,如上所述,在共识中扮演不同的角色可能是当今最有远见的方法,并有望大大改善区块链的安全性.
格列布·尼基丁
技术领导兼联合创始人Gleb Nikitin #MetaHash