基于对其它加密数字货币项目的观察,近期的争议说明了51%攻击是有可能发生的,至少它会广泛地引发市场上的未知与恐惧。
什么是51%挖矿攻击?
在某个矿工的哈希算力超过其他所有矿工的哈希算力的总和时,51%挖矿攻击就有可能发生。在这种情况下,这位占据主导地位的矿工可以支配和否决其他矿工开挖的区块——他只要忽略其他矿工开挖的区块,并且只在自己的区块上开挖新的区块就可以了。
矿工可以公开地完成上述操作,不过,由此造成的异乎寻常的高孤块率会引发关注。矿工还可以私下完成操作,在这种情况下,矿工不必逐一公告自己开挖的区块,而是在某一时间段(例如几个小时或几天后)再悄悄地公布。如果矿工私下完成操作,那么网络会首先认定一切正常,并在之后突然完成深度的重组。
遵照上述流程,矿工可以通过多种方式攻击网络。他可以在公共区块链上公布交易资讯的同时秘密地开挖新的区块,并将挖矿所得中饱私囊(在共识规则的框架下,这是有效和成立的)。或者,他可以只开挖秘密区块链上的空区块,并且同时恢复公共区块链上的已确认的交易。这些交易很有可能会在稍后(即诚信的矿工开挖新区块的时候)再次得到确认。不过,我们目前还无法真正确保这些区块的再次确认。此外,大家都应当意识到这样一个可能性——即使这些区块得到重新确认,上述攻击仍有可能再次发生,因为居心不良的矿工可能已经准备好在下一个秘密的区块链上作案了。
上述例子只是进行51%挖矿攻击的几个途径。51%攻击还有可能通过更多的方式来发动袭击并造成实质性的伤害。
发生51%挖矿攻击的可能性有多大?
只要工作量证明的基本设定成立,那么51%挖矿攻击就有可能发生。我们常见的一项假设是,诚信经营比恶意攻击更加有利可图。而另一项假设则是,大多数哈希算力是由遵循第一项假设的理性的参与者提供的。即使网络由于某些原因出现了恶意攻击,理性的矿工仍然可以凭借占据相对优势的哈希算力总和压制居心不良的参与者。
然而,在某些情况下,上述假设可能会不成立。举个例子,如果ASIC硬件的进步没有公开,那么某些个体就有可能垄断技术进步,并通过恶意行为牟利或者至少将损失降低到可以接受的水平。
此外,诸如比特币现金等币种的哈希算力不足以维持具体某种哈希算法,因此它们往往承担着被掌握一定哈希算力的实体机构所攻击的风险。举个例子,比特币现金和比特币都使用SHA256D,但比特币现金的算力仅相当于比特币的10%。
上述情况导致人们对工作量证明产生了一定程度的不信任和不确定,这一点在比特币现金社区内部爆发的哈希算力之争中表现得尤为明显。在这次纷争当中,多个团体联合起来在比特币现金网络之外创建了新的分叉,因此对原有网络构成了51%挖矿攻击的威胁。
虽然此类攻击迄今为止还没有成功地袭击各大加密数字货币,但市场已经对此作出了消极的反应,并进而导致市场低迷和多家交易平台终止货币交易。考虑到加密数字货币的长期目标是实现广泛应用,发生51%攻击的可能性也是不可接受的。
达世币如何应对上述难题?
迄今为止,达世币和其它基于工作量证明的币种一样脆弱,因此,很多社区成员已经纷纷向团队咨询要怎样解决上述难题。之前就曾经出现一个题为《抵押挖矿》的提案,致力于在一定程度上防范51%挖矿攻击。不过,由于这个方案要求对挖矿的经济原理进行大规模的改动,因此它的执行本来就很成问题。
长效主节点仲裁链也称LLMQs,它的推出使达世币能够运行防范51%挖矿攻击的新保护机制——ChainLocks。这项机制最早出现在达世币优化提案8中(即DIP8)。这个提案已经执行好几个月了,我们在此决定予以公布,并借此解答社区成员有关如何应对51%挖矿攻击的提问。它不仅能解答疑难,还意味着《抵押挖矿》提案已经过时了。
基于长效主节点仲裁链的ChainLocks
ChainLocks的创想是对“先被发现的”规则进行全网络范围内的评估和投票。在各个区块上,长效主节点仲裁链将在数百个主节点中被挑选而出,而每个以参与者都会对参与活跃区块链的拓展的第一个区块进行签名确认。如果足够数量的参与者(以60%或以上为例)将同一个区块签名确认为第一个区块,那么他们就可以创建一条P2P信息(下文简称CLSIG)并将它公布到网络的所有节点上。这一过程还涉及诸多细节,尤其是在多个矿工同时发现一个区块的情况下。达世币优化提案8对相关细节进行了描述。
只有在足够数量的仲裁链成员同意的前提下,CLSIG信息才得以创建。这是因为长效主节点仲裁链使用的是BLS M-of-N门限签名机制,因此CLSIG需要取得一定数量的有效签名。门限签名和常规的BLS签名相似,可以由所有节点验证且无需知会签名者的身份。BLS M-of-N门限签名机制只要求用到长效主节点仲裁链的公钥,这个公钥可以在区块链数据中检索取得。基于长效主节点仲裁链签名的申请和会话原理,有效的CLSIG信息要么只有一个,要么无法创建。因此,长效主节点仲裁链可以消除因冲突而产生的不确定性。
有效的CLSIG信息的出现说明长效主节点仲裁链的多数成员(例如成员总数的60%)已经将某一个具体的区块确认为第一个区块。由于长效主节点仲裁链是在达世币主节点中(当前共有4900多个)随机抽取的,因此,发现第一个区块的众多节点也是随机分布在整个达世币网络上的,从统计学的角度看,这些节点在长效主节点仲裁链上的分布也是随机的。换句话说,如果有60%的长效主节点仲裁链成员首先发现了第一个区块,那么,整个达世币网络上的60%的成员也会首先发现这第一个区块。
如果节点收到了有效的CLSIG消息,它应当驳回与消息中指定的区块相冲突的所有区块及其以它们为基础创建的所有区块。这不仅使针对活跃区块链的决策变得快速、简单而明确,还消除了在这个区块下进行重组的可能性。
ChainLocks对网络的影响
ChainLocks将对整个网络和经济原理产生重大的影响。对于普通用户和商家而言,它带来的最大的影响就是,当ChainLocks锁定的区块完成初次链上确认后,相关交易就被视作完全确认了。由于无法重组已签名或已锁定的区块,因此,交易不会从区块链上消失。这就意味着,用户和商家不必等待至少六重确认才能确认交易已经安全地完成。
同时,ChainLocks也会对挖矿活动产生影响。它消除了矿工在区块链上进行重组的所有激励。以秘密或私自挖矿为前提的许多攻击将变得不可行,因为这些活动都依赖于矿工长时间隐瞒秘密的区块链。依据当前的共识规则,秘密的区块链可以覆盖公共的区块链,并在公布时触发区块链的重组。然而,在ChainLocks的激励下,哪怕矿工们理论上有足够的算力驳回其他矿工的区块,他们也会立即公布新挖区块。这是因为公布区块时的失败会给心怀恶意的矿工带来了巨大的风险——如果另一位诚信的矿工在他之前就公布了接收到CLSIG消息的有效区块,那么他所公布的任何秘密的区块链及其以此为基础的多达数千个的区块都会立即失效。
最长链规则会受到怎样的影响?
在以工作量证明为基础的共识机制中,最长链规则是最重要的一个方面。它认为,每个节点都应当将累计工作量最多的区块链视作最活跃的链,但前提是这个区块链必须遵守所有的共识规则。它存在的理由是就拓展哪条区块链达成共识。节点需要基于有限的信息达成共识,并且唯一可靠的信息就是从区块链源头取得的。仅参考从区块源头累积的工作确保了每个节点都可以断开连接并重新连接,并且还可以随时达成共识。
在引入ChainLocks之后,最长链规则仍然有效,但它将服从CLSIG消息的约束。实际上,只有长效主节点仲裁链的成员才能完全遵守最长链规则,因为他们可以联合创建CLSIG消息。由于只有在足够数量的仲裁链成员同意的前提下,CLSIG信息才得以创建,因此它的出现就可以证明对应的区块曾是或者仍是最长链上的区块。
这样的机制需要矿工对CLSIG消息和主节点网络倾注信任,但我们认为这是可以接受的。这一机制以主节点网络的大部分成员都是诚信可靠的为前提,正如工作量证明系统以大部分矿工都是诚信可靠的为前提。
ChainLocks的与众不同之处在于,只有各个网络层级中的矿工和主节点中的51%联合起来才能发动攻击。即使攻击成功,攻击者仍然无法进行深度重组,因为攻击者无法令之前的CLSIG消息失效。在最糟糕的情况下,攻击者还可能发布不具备签名确认的区块,并且被所有节点注意到。此外,如果具备多数诚信主节点的长效主节点仲裁链早在攻击发生之时签名确认了一个区块,那么之前所有未经签名的区块都将会被完全确认,从而打消了重组的可能性。
至于其它的共识规则?
其它共识规则不会受到ChainLocks的影响。在一个区块获得认可之前,它必须通过所有节点的验证,其中包括双花支付验证、签名验证和工作量证明(哈希《难度目标)。
有效的CLSIG消息不能强制矿工接受其他无效的区块。
其它币种为什么没有ChainLocks?
确保ChainLocks的安全的主要先决条件之一就是由半托管状态下的节点构成的可防范Sybil攻击的网络。不具备这类节点的加密数字货币将无法以安全的方式实现ChainLocks的功能。以比特币为例,任何依托单个节点的投票而进行的活动都有可能因为攻击者可以轻松地创建数千个不良节点而受到干扰。在这种情况下,唯一的可行方案就是在人为选取的节点中创建信任机制,但这需要大规模的集中化管理。
对于达世币来说,它可以通过要求主节点持有人存入1000达世币作为保证金来防范Sybil攻击。具体来说,由于主节点持有人必须存入这笔保证金,因此持有足够数量的主节点就意味着攻击者需要投入大量的资金,这样一来,发动Sybil攻击将会变得风险巨大且弊大于利。以长效主节点仲裁链为前提和当前的参数为依据,攻击者需要购置主节点总数的60%才有可能成功地发动攻击。
在我看来,上述特点正是达世币主节点网络最被低估的属性之一。防范Sybil攻击的实用功能正是ChainLocks和其它基于仲裁链的决策得以存在的主要先决条件。
未来,这一独特而强大的网络基础设施将帮助达世币在长效主节点仲裁链的基础上稳妥地引入各项新功能,从而将达世币打造成更安全、便捷且用户友好的加密数字货币。
评论
查看更多