假如你不能审查别人的区块,那么你就不能阻止它们被纳入区块链。因此,只要鼓励法子的处罚是有效节制的,那么恶意粉碎(Griefing)也不会是什么大问题。
二、现实中产生过的51%进攻,以及最糟糕的51%进攻场景
51%进攻是可以完成的,譬喻ETC、Bitcoin Gold等都遭遇过51%进攻,我必定我漏说了1-2个,这些进攻都是已经产生的。
一、其他范例的51%进攻 实际上,生意业务审查也是另一种51%进攻!鉴于layer 2协议和DeFi都是最近的大趋势,生意业务审查变得尤其危险。在许多 layer 2协议的情况中(包罗plasma、通道、通用状态通道、闪电网络、Optimistic Rollup、交互计较、TruBit等),审查就意味着偷窃!
那如何证明一个根(root)是此擦除编码的根呢?你如何证明本身没有把垃圾数据卡在内里?你可以利用欺诈证明,譬喻这个2D的,假如你编码错误,然后有人可以做一个简短的欺诈证明,你可以将它广播到网络,然后网络就可以拒绝该区块。这个2D方案是在2017年开始研究的。最近则有一些关于编码merkle树的对象,你在merkle树中编码每一个level ,这有很好的特性。也有一些要领不依赖于欺诈证明,好比利用STARK或SNARK来证明merkle根的计较是正确的,而另一种大概则涉及多项式理睬 —— 你会获得你的数据,你会把它表明为多项式的求值,你管帐算出多项式,然后你在一大堆点上做一大堆多项式理睬的opening(开口),你的数据可用性查抄将是要求80个位置而不是80个opening(开口),可能假如你利用智慧的代数获得某种多开口(multi-opening),你就可以得到更高的效率。所以,这就要求我们有更好的实时性检测器(TD)
分片:越过委员会
问题是,任何一种基于委员会的方案,都将受到高出某个阈值不良行为者的审查。假如我们要谈论抵挡51%进攻,那么我们就要谈论一个系统,在这个系统中,纵然大大都人开始进攻,那么少数人应该可以或许继承操纵系统自己。
假如你能审查每一笔打仗Uniswap的以太坊区块链生意业务,然后期待一天,那么以太币的价值大概会有点颠簸,我就能从这次进攻中提取出大量的套利代价。
我们回到拜占庭将军问题,回到1982年由莱斯利·兰伯特(Leslie Lamport)撰写的论文。事实证明,这篇论文包括了一个算法,而人们并没有真正去谈论这个算法,但他们大概应该多谈一些。它把这句话用不行伪造的书面信息(指数字签名)抽象地埋没起来。兰伯特声称,他有一个共鸣算法,可以容忍高达99%的错误进攻者(即99%容错共鸣)。我将描写单个证明者的版本。在这里,假设一个证明者是厚道的,然后一共有n个证明者,我们就只需要1/n的证明者是厚道的。
四、总结
一般来说,假如进攻者宣布了一条不行用的链,那么数据可用性查抄将捕捉它,假如其宣布了无效区块,那么欺诈证明可以捕捉它,假如你对区块举办长时间的审查,那么这条链将自动被网络忽略。假如你审查了一其中等时间的区块,那么你可以利用实时性检测器来清洁地处理惩罚它,假如进攻者试图不参加或粉碎委员会,则相应就不利用委员会。
1、2 轻客户端进攻
1、3 数据不行用进攻
1、4 劝阻进攻
1、5 关于区块链的不行改动性
谁还记得这个?一家生意业务所被盗走了一堆钱,他们思量敦促比特币区块链为期一天的逆转,以便拿回这些钱。假如这样的工作是大概的,那么区块链内部的对象就大概被还原,区块链就失去了其成为区块链的要害属性,这是可骇的。
擦除编码(Erasure coding)
这是第一部门。这包罗数据可用性进攻,它是以太坊2.0分片办理方案的一部门,这至少答允我们赋予分片区块链同样的可用性担保。
在第二天的集会会议上,以太坊连系首创人Vitalik Buterin颁发了题为《越过51%进攻》的演讲,在集会会议中,他首先提到了51%进攻的差异范例,譬喻最常见的回滚生意业务进攻,另外尚有审查进攻、轻客户端进攻、劝阻进攻,以及最严重的覆巢式进攻(Spawn camp attack),他认为事情量证明(PoW)加密钱币很容易受到这些进攻的影响,而权益证明(PoS)加密钱币,可以通过99%容错共鸣、实时性检测器(TD)等技能来检测进攻链以及审查进攻,从而消除51%进攻带来的威胁。
51%进攻能做什么?51%进攻有差异的种类,它们可以对差异的应用执行差异的操纵,并发生差异的功效和效果。你大概熟悉的一种51%进攻是回滚区块。你举办了一笔生意业务,把钱发送到了一家生意业务所,然后用这些币调换了另一个币,你提走这些换得的币,然后举办一次51%进攻,规复你的存款生意业务……
这是我们今朝能做的最根基的工作:纳入叔块。这里的想法是,在以太坊1.0 中,不属于区块链的区块可以稍后被包括进来,而新的方案则是,我们添加了协议法则,该法则暗示叔块中的生意业务也会被处理惩罚。数据无效和数据不行用
这个方案的简朴稻草人版本是这样的:查抄一个区块是否可用最愚蠢的要领就是下载完整的对象。但在这里,我们假设一个可扩展的、大概是分片的区块链,个中有高出2 MB/秒的数据会被上传到链上,而客户端将无法下载所有的内容。对付一个想要查抄数据可用性的客户端,我们要做的就是随机抽样测试。它会随机选择一些数据片断,好比30个片断、40个片断、80个片断……它会随机选择位置,要求提供这些位置的merkle证明,只要你收到你接管的所有位置的有效回覆,那你就会接管该区块,将其视为有效的。
假如你有这种实时性检测器,你会凭据自声明的时间顺序处理惩罚所有实时区块,就是这样。独一的问题是,它需要很长的区块时间,假如你想处理惩罚验证者的存款、取款和罚没,那这大概是一个有趣的协议,但它不是运行区块链的最佳协议。 假如你生成一个区块,无论该区块的界说是什么,它都能准时达到,一些节点将看到它在差异的时间达到。因此,节点大概差异意一个区块“是否被审查太久”,以及一个区块“是否认时宣布”,,它们大概差异意这些时间参数。 实际是,我们今朝所看到的51%进攻,并不是最糟糕的。对付这类进攻来说,覆巢式进攻(Spawn camp attack)是最糟糕的恶梦场景。根基上,你需要得到足够的硬件来进攻一条链,等它规复之后,然后再次举办进攻,因为你仍然持有这些硬件。最后,社区会受够了这种熬煎,他们会改换事情量证明(PoW)算法,由于在短时间内他们没有步伐构建ASIC,所以你只需要租用大量的CPU和GPU算力继承进攻, 然后,这条链就死了,除非他们切换到权益证明(PoS)可能完全酿成中心化的对象。(图:Vitalik在2020斯坦福区块链大会演讲)
将其扩展到多个证明者的要领是简朴的,你有许多证明者,客户端将是t+δ*k。我在eth.research上有一篇文章是专门讲这方面的研究的,所以假如你想相识更多的细节,请随时查察。讲讲或许的想法,你有一组进攻者,每个进攻者都可以将截至日期延迟一点,因此假如一个进攻者吸收到一个区块,那么只要网络延迟低于你的δ参数,它就会将一个区块的实时性流传到网络的其余部门。
Vitalik最新演讲透露PoS或是独一出路:覆巢式51%进攻成PoW区块链致命威胁
其它范例的进攻呢?
其它范例的进攻呢?数据无效、数据不行用、审查以及恶意粉碎?
关于审查
这里的进攻是相当鄙俚的,进攻者进攻一些验证者,并使它们为另一个区块投票,利用其他验证者为本身的区块投票,该区块实际上包括了要审查的内容...但他们本身的选票不敷以高出51%,所以他们试图审查的内容,实际上永远不会被包括在内。这是多条理的间接浸染。在以太坊1.0和以太坊2.0中,一个举办51%进攻的恶意方可以举办审查,而当审查力度足够大时,就很难确定是否需要对此采纳法子。
想法:实时性检测器(TD)
假如它们看到某个区块是定时达到的,而且它们看到该区块在很长一段时间内没有被某条链接管,那么该区块将自动被打消资格。假如一个区块没有准时达到,那么你可以用它来举办51% 回滚进攻。
不是每个节点都能遵循协议的,因为离线节点也会存在。除非51%进攻正在举办中,不然假如没有进攻产生,那么得胜的区块链将是一条好的链,假如进攻正在产生,而你又处于离线状态,那么你险些必需查抄社交层,看看产生了什么,但只有少数参加者会这样做,其他人会有一个相当明晰的共鸣。
通过这种方案,进攻者就可以或许欺骗少数特定的客户端。可是,假如进攻者欺骗了足够多的客户端,以至于它们下载的子叶数据占到了总数据的一半,那么这些客户端就可以继承从哪里重建数据。
这是我在2016年写的一篇博文,我试图描写什么是权益证明(PoS)背后的哲学,以及为什么这是我们应该等候存在的,它为什么是一件有意义的工作。权益证明(PoS)中存在一种差池称性,它与事情量证明(PoW)是差异的,在事情量证明(PoW)中,你只有嘉奖,因此你对参加进攻可能不参加进攻的处罚,只有区块嘉奖这部门。而在权益证明(PoS)系统中,你的进攻是可以被检测到的,你失去的存款远远大于你可以被罚没的质押金。郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。