使用基于LLMQ的ChainLocks来减少51%的攻击

前言:51%算力攻击频发,什么是51%算力攻击?各大主流币又是使用什么技术手段,免于攻击?本文作者Alexander Block,本文来源于medium.com,由头等仓“Winny”翻译。
头等仓APP下载

前言:51%算力攻击频发,什么是51%算力攻击?各大主流币又是使用什么技术手段,免于攻击?本文作者Alexander Block,本文来源于medium.com,由头等仓“Winny”翻译。

最近加密项目的争议表明,51%的挖矿攻击的威胁是真实存在的,至少在某种程度上它们可能在市场上产生大量不确定性和恐慌。

什么是51%的挖矿攻击?

当单个实体/矿工的算力高于其他所有矿工的总算力时,51%的挖矿攻击可能发生。在这种情况下,矿工只需通过忽视其他矿工打包的区块,在自己的区块上挖取新区块,来否决其他矿工的所有区块。

这样的矿工可以公开做这件事,这会通过异常高的孤块率注意到。矿工也可以私下执行此操作,不必逐个发布区块,而是在一段时间(例如几小时或几天)之后立即发布自己的私链。然后,在网络一切正常的情况下,突然执行深度重组。

通过这个过程,矿工能够以多种方式攻击网络。他可以向公链发布交易,在私链上偷偷挖取有争议的交易,将获得的代币发送给自己(这通过共识规则是完全可行的)。他可以只挖取私链中的空块,同时在公链上恢复所有已被确认的交易。这些交易很可能会在以后的新区块(由遵守规则的矿工挖取)中重新被确认,但这一切的发生没有保证。此外,即使重新确认之后,攻击也可能会重复,因为作恶矿工可能已经在下一个私链上又开始工作。

这些只是具有51%算力的矿工可能做的事的几个例子。可能有更多可能的攻击/场景,都会造成一些真正的危害。

可能性有多大?

只要工作量证明的基本假设成立,通常51%的算力攻击就不会发生。其中一个假设是,诚实通常比作恶更有利可图。另一个假设是大多数算力是由遵循第一个假设的理性参与者提供的。即使部分人由于部分原因在网络上作恶,理性参与者也会超过恶意参与者,因为他们合计拥有更多算力。

然而,有些情况下这些假设可能完全无效。例如,如果ASIC硬件私有化,则算力的分布可以一种方式进行转移,这种方式可以使作恶行为为单个实体带来利润,或者至少将损失降低到可接受的水平。

此外,对于特定哈希算法中没有大多数可用算力的代币(例如比特现金),始终面临在被多数代币中具有中等算力实体攻击的风险(比特现金使用SHA256D,比特币也使用它,但比特现金的算力还不到比特币的10%)。

这导致了一定程度的不确定性和对工作量证明的信任缺失,最近在比特现金社区发生的“算力战争”已经清楚地表明了这一点。多个实体联合在一起,从比特现金网络创建一个分支,并威胁要对原始网络执行51%的攻击。

虽然到目前为止这些攻击还没有成功在任何主要代币上进行,但市场反应非常消极,导致市场低迷,多个交易所关闭。大规模采用是长期目标,那么这种情况的可能性也是不可接受的。

Dash如何解决这个问题?

截至目前,Dash与任何其他工作量证明的代币一样脆弱,许多社区成员都问我们如何解决这个问题。有一个较早的称为“抵押挖矿”的提案可以在一定程度上解决51%的挖矿攻击,但这需要挖矿经济学(本身就是一个问题)的大规模改变。

长效主节点群Long Living Masternode Quorums(LLMQs)的推出使我们能够实施针对51%挖矿攻击的新保护机制。这种保护机制称为ChainLocks,在DIP8中提出。这个DIP已经进行了几个月,我们现在决定发布它,将其作为回答社区问题的答案:Dash如何解决51%攻击的威胁。它是抵押挖矿的改革版本。

基于LLMQ的ChainLocks

ChainLocks是按照“优先看到”规则进行可验证的网络范围内的测量/投票。每个区块都会选择几百个主节点组成的LLMQ,每个参与成员都会选择当前高度处扩展活跃的链,对第一个区块进行签名。如果足够多的成员(例如> = 60%)看到的第一个区块是相同的,他们就可以创建P2P消息(CLSIG),将其向网络中的所有节点传播。这个过程还有一些细节,特别是当多个矿工大约在同一时间找到一个区块时。这些细节在DIP8中描述。

只有足够的法定人数同意,才能创建CLSIG消息。因为LLMQ使用BLS M-of-N门限数字签名,CLSIG消息需要包含有效的门限数字签名。此门限数字签名在内部就像普通的BLS签名一样,由所有节点验证,而无需知道是谁进行了签名。此验证仅需要LLMQ的quorum(指一群成员)公钥,该公钥可以从链上数据中检索。由于LLMQ签名请求/会话的工作性质,只能有一个或零个有效的CLSIG消息,所以不会因冲突而产生的不确定性。

有效的CLSIG消息的存在表明LLMQ的大多数成员(例如60%)已将指定的区块视为第一个区块。由于LLMQ是由Dash的主节点集(当前大约4,900个节点)随机组成的,因此首先在网络中看到此区块分布的节点在统计上与LLMQ内部是相同的。这意味着,如果60%的LLMQ成员首先看到该区块,那么网络上大约60%也应该会先看到它。

如果节点收到有效的CLSIG消息,它应该拒绝在CLSIG消息中所有在同一高度没有匹配指定的区块。这使得对活跃链的决策快速、简单且明确。使得在该区块下的分叉变得不可能。

对网络的启示和影响

ChainLocks对整个网络及其经济有一些非常重要的影响。对于普通用户和商家而言,最重要的影响是,受ChainLocks保护的区块进行第一次链上确认后,则视为交易已经确认。由于无法重组已签名/锁定的区块,因此交易无法从链上被抹去。这意味着不再需要等待6次或更多次确认,直到交易被认定是安全的。

对挖矿经济也产生了影响,它消除了矿工进行链分叉的所有诱因。基于私密或个人挖矿的攻击变得不再可能,因为这些依赖于矿工隐瞒长时间的私密链。以当下的共识规则,此类链将覆盖公链,并在发布时导致链分叉。然而,对于ChainLocks,矿工们会被激励及时发布每个区块,即使理论上他们有足够算力来推翻其他矿工。发布失败给作恶矿工带来了巨大的风险,因为如果另一个诚实矿工在秘密链被揭示之前发布了一个CLSIG有效区块,那么任何秘密链(即使是更长的数千区块)都会立即失效。

最长链的规则是什么?

最长链的规则是基于工作量证明共识机制中最重要的部分之一。其观点在于,每个节点都应该将具有最多累积工作的链视为本地活跃链(前提是所有其他共识规则都有效)。这条规则的原因在于,如果不这么做,就无法就扩展哪条链达成共识。节点需要基于有限的信息找到共识,唯一可信赖的可行信息是从链中找到。只使用累积工作(从链首计算)就可以确保每个节点断开后重新连接,仍然可以随时找到共识。

使用ChainLocks,此规则仍然有效,但可以通过有效的CLSIG消息推翻这条规则。实际上,只有负责任的LLMQ成员才能完全遵循最长链规则,因为他们是协作创建CLSIG消息的人员。由于只有足够的LLMQ成员同意时才能创建CLSIG消息,CLSIG消息的存在可证明,引用的区块是属于(或仍然是)最长链。

这需对CLSIG消息和主节点网络有相当大的信任,但我们认为这是一个可接受的权衡。假设大多数主节点网络是诚实的,这与普通工作证明系统中的矿工基本相同。

与ChainLocks不同之处在于,代表每个层51%的矿工和主节点必须串通才能执行工作攻击。即使攻击成功,攻击者仍然无法进行深度重组,因为攻击者无法使之前CLSIG消息无效。最糟糕的是不对区块进行签名,这将被所有节点注意到。此外,如果任何一个LLMQ在攻击之间签署了一个区块(其中大部分是可信的主节点),那么以前所有未签署的区块也将完全确认,从而也不可能对这些区块进行重组。

其他共识规则?

其他共识规则不会受到影响。在接受之前,所有节点仍必须验证区块。这包括双花检查、签名检查和工作量证明(哈希值<难度目标)。

有效的CLSIG不能强制接受其他无效区块。

为什么其他代币无法使用ChainLocks?

保证ChainLocks安全的主要先决条件之一是Sybil保护网络的半可信任节点。不提供这类节点的代币无法安全实现ChainLocks之类的东西。例如比特币,任何依赖于单个节点的“投票”都可启动数千个作恶节点来进行捣乱。唯一可能的解决方案是在人们选择的节点中建立明确的信任,但这是一个大规模中心化的解决方案。

达世通过要求每个主节点抵押1,000个DASH,来保护主节点网络免受Sybil攻击。这使得执行Sybil攻击在经济上要花费的代价非常高,仅仅购买足够主节点就需要大量的资金,这在执行任何攻击时都具有极高的风险。根据LLMQ当前参数,攻击者必须购买至少60%的主节点来实现其目的。

我认为这是Dash主节点被低估的性能之一。对Sybil攻击的实际保护是由使用ChainLocks和其他功能的quorum数量决定。

在未来,这种独特而强大的网络基础设施将能在LLMQ上安全地实施更多创新功能,使达世更加安全、快速和易用。

本文由 区块链资讯平台头等仓 作者:Winny 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
头等仓APP下载

发表评论