Hacking Verge:过去如何(第 1 部分)

时间扭曲、挖掘漏洞、DOS 攻击等等。

加密爱好者喜欢告诉普通人运行他们最喜欢的硬币的区块链协议的可靠性和安全性。 事实上,比特币或以太坊等最大的加密货币提供了相当程度的安全性,并且可能比历史上任何其他数字资产或支付系统都做得更好。 考虑到这些加密货币不受任何支持且不受任何人控制,这是一项相当大的成就。

然而,许多人敢于争辩说,上述加密货币原则上不能被黑客入侵。 这至少是一种战术上的误判,因为在某些情况下,这样的陈述会使人处于尴尬的境地。 例如,如果货币仍然被黑客入侵。

在这种情况下,如果没有其他问题,也许您至少需要解释一下自己。

上个月,一名身份不明的黑客入侵了 Verge,这是一种相对较小的加密货币,专注于用户匿名。 在 4 月 6 日至 1 月 560 日期间,一名身份不明的黑客在数小时内三度控制了 Verge 网络,在此期间其他用户无法付款。 更糟糕的是,在这些时间间隔内,黑客以每秒 80 个硬币(约合 1 美元)的速度发行假 Verge 硬币。 结果,黑客铸造了价值超过 XNUMX 万美元的加密货币。

这种情况可以毫不夸张地说是灾难性的。 Verge 遭到了重大攻击。

但是谁的错呢? 是 Verge 开发人员的错误、加密协议的基本漏洞还是其他原因? 较大的加密货币是否会发生这种情况,如果是,如何避免?

通过这种hack,很多细节总是不清楚。 但是,在这种情况下,可以确定主要漏洞:

时间戳欺骗:无意的错误还是危险的谎言?

乍一看,这个漏洞可能看起来像一个bug,但实际上它是一个特殊的功能,用于创建“不准确”的时间戳。 在区块链协议中,单个交易(通常是网络参与者之间的传输)被分组到一个块中,然后进行验证。 每个区块在其形成日期上都有一个时间戳。 即使区块链协议工作正常,这些戳记的顺序也可能被打乱——例如,区块 100 可能有一个时间戳 后 块101。这是因为在拒绝向第三方授予权限的去中心化网络中,建立正确的时间同步一点也不容易。

鉴于数据通过点对点网络传播所需的时间不可预测,即使所有各方都善意地进行交易,区块也很可能出现“乱序”。 换句话说,在这方面至少需要允许一点灵活性; 在 Verge 的情况下(至少在黑客攻击之前),该协议允许节点“不同意”区块中指示的当前时间,并且去同步可能需要长达两个小时。

黑客通过伪造时间戳开始攻击。 他像过去一样发送块,但没有超过允许的 2 小时,这意味着这些块仍然可以被其他网络节点接受。

这最终会影响网络安全的原因在于工作量证明网络挖矿的性质。

采矿难度:墙壁只有在高时才能保护

要分散 Verge 网络,您需要确保小型设备(例如 MacBooks)可以运行网络软件。 反过来,这会导致限制网络中的支付量,即为块设置目标时间(因此,限制每秒的交易数量)。 Verge 网络每 1 秒运行 30 个区块。 鉴于网络是去中心化的,可以提出一个合理的问题:是什么阻止了参与者以更高的速度发送区块? 这是一个不平凡的问题:如果每个确认的区块都给形成它的人带来奖励,那么矿工确认尽可能多的区块是有益的。

简而言之,这个问题的解决方案就是工作量证明协议的解决方案。 为了让网络验证一个块,它必须包含一个直接来自块本身数据的密码复杂计算问题的解决方案。 这个问题的性质使得它的复杂性可以很容易地改变。 Verge的目标是在1秒内形成30个区块,并根据当前区块确认率不断调整挖矿难度; 如果用户决定将更多的权力分配给挖矿和生成 Verge 区块,并且这些区块的生成速度更快,那么协议会增加挖矿难度,并且区块确认速度会变慢。 相反,随着功率降低和生成块的时间增加, 矿业 变得更容易了。 因此,当正常工作时,即使在现实世界中,外部因素也会发生变化——经济波动、加密货币的市场价格、能源市场、帝国的兴衰等等——Verge 网络会不断对变化做出反应并寻求将块的形成带入目标的时间单位。

Verge 用来计算问题当前难度的算法称为 Dark Gravity Wave; 它计算 2 小时内区块确认率的加权平均值。 这是一个复杂的算法,细节在这里并不重要。 重要的是,挖矿的复杂度取决于最后一个区块的形成速度,而这个速度的计算当然与时间戳相关。

这就是问题所在:如果你创建了足够多的错误时间戳,平衡就会被打破。 这正是黑客所做的——来自区块链的数据显示,在整个 hack (s) 时间内,每隔一个区块都在当前时间前大约一个小时发送一个时间戳,这极大地混淆了设置算法挖矿难度。 如果协议有智能并且可以说话,它会说:“哦,不! 最近没有形成足够的块! 大概是挖矿的复杂度太高了——我们需要降低它!”

随着时间戳不断被篡改,该协议不断降低任务的复杂性,直到挖掘变得非常简单。 通俗的理解为:平均任务难度小时为1393093,39131小时,在攻击期间下降到0,00024414,即挖矿难度下降了99.999999%。 任务的复杂度越低,可以形成并发送到区块链的区块就越多; 作为攻击的结果,一个区块在短短 1 秒内被发送。

该攻击的独创性在于黑客绕过了挖矿难度限制,而不是突破了它。 想象一下,安全系统是一堵围网的墙,这堵墙太高太坚固了,它不能被打破也不能攀爬。 黑客找到了一种降低它的方法 - 并简单地跨过它。

这个漏洞并不明显令人震惊。 这种对协议的公开攻击将导致网络声誉的恶化。 此外,增加的区块创建速度允许创建比协议预想的更多的 Verge 硬币。 如果您是一位提倡存量和流量比率可预测的可靠货币的经济学家,那么这种情况应该会让您感到担忧。

然而,降低复杂性只是问题的一半; 就其本身而言,这实际上不会给攻击者带来任何优势。 随着复杂性的降低,区块形成对黑客来说确实变得更容易了,但对其他人来说也变得更容易了——矿工们一如既往地继续相互竞争。 在这种情况下,我们假设虽然区块生成速度更快,但成功的矿工应该像以前一样保持分布式和民主。 换句话说,无论挖矿的复杂程度如何,为了接管网络,攻击者仍然需要控制至少 51% 的系统算力。

然而,这个黑客确实接管了整个网络,并设法以比总算力的 51% 少得多的资源做到了。 他通过利用漏洞的第二个组件来实现这一点,该组件涉及 Verge 的多种挖掘算法。

待续...

评价这篇文章
区块链媒体
添加评论