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

的第一部分

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

在 Verge 中挖掘:当 5 种算法过大时

传统上,在基于工作量证明协议的加密货币中,区块是使用单一算法挖掘的,最常见的是 SHA-256。 在 Verge 中,可以使用 5 种不同的算法(对于好奇的人 - Scrypt、X17、Lyra2rev2、myr-groestl 和 blake2s。)。 使用多种算法的原因如下所述。

比特币的一些批评者认为,随着时间的推移 比特币挖矿 已经变得过于专业化和集中化,大多数挖矿是在 ASIC(“专用集成电路”的缩写,特殊用途的集成电路)上完成的——专门为货币挖矿而创建的设备,大多数比特币挖矿是在几个矿池中按组完成的矿工集中他们的资源并在他们之间分享他们的收入。 他们说,这些走向不同类型“中心化”的趋势与加密货币的基本原则背道而驰。 使用具有多种挖掘算法的硬币可以抵消这种趋势。 言下之意是,从硬件、生产、资源管理等方面管理五种不同的算法,必然会比控制单一算法更加困难,让Verge能够实现更加去中心化和分布式的挖矿。

情况如下:实现正确操作的唯一途径——在这种情况下,“正确操作”的概念包括保持区块之间30秒的间隔,保持所有五种算法对矿工的经济可行性以及防止垄断一种算法(这将使整个实验毫无意义)- 使每个算法都有自己的难度参数,该参数将独立于其他四个进行调整。 换句话说,Scrypt算法中的挖矿难度被调整为符合每个区块30秒的间隔,就像在X17和其他算法中一样。

这意味着我们的黑客并没有真正降低全网的挖矿难度; 他只为那些使用五种算法之一 - Scrypt 进行挖掘的人降级了它。 尽管 Scrypt 矿工享受了极其轻松的挖矿,但对于其他从事其他算法的矿工来说,任务的复杂性并没有降低,这意味着他们所有的联合力量都无助于确保网络的安全。 这意味着攻击者只能使用 Scrypt 算法,并且必须与其他使用相同算法的用户竞争; 因此,我们的攻击者所需的算力不超过 50%(对整个网络的支配地位),但仅超过 10%(对其他 Scrypt 矿工的支配地位)。

我们现在将进入投机领域,但看起来情况更糟。 我们假设了 10% 的数字,基于这样一个事实,即每个算法应该分配大约相同数量的资源(这是挖矿难度设置机制的本质)。 然而,在现实中,自由市场经济的公理并不总是被遵守。 社区认为,各种因素——例如,Scrypt 未激活的 ASIC 的存在,以及通过 Nicehash 提供的免费资源出租等——导致攻击期间 Scrypt 挖矿的主导地位是比四种算法中的任何其他算法便宜得多。 可以安全地假设所需的哈希率最终远低于 10%——根据 Reddit 上给出的一些初步估计,哈希率可能低至 0,4%。

总结:伪造的时间戳大大降低了挖矿的复杂性; 五种算法的使用意味着可以只降低其中一种算法的复杂度,大大简化了整个网络的捕获; 这种特定挖掘算法的经济和生产状况使捕获变得更加容易; 最后,由于挖矿复杂度降低,出块时间大幅减少,使得攻击收益提高了 30 倍左右。

得到教训

从这种情况可以得出什么结论? 可以预见,黑客攻击的短期后果是混乱和难以理解的。 几天后,主要开发人员在实用程序的帮助下修复了几个错误,其中错误也可能蔓延,最终在网络上进行了硬分叉,这最初可能是偶然发生的(或不是偶然发生的) . 就全球反应而言,在黑客攻击后的一周内,Verge 的价格上涨了 30%,并在接下来的一周内宣布,pornhub.com 将接受 Verge 货币作为订阅费。 协议级别最大的加密货币黑客如何导致这种货币价值的增长,以及后来与访问量最大的色情网站建立合作伙伴关系 - 我将这个问题保持开放。 我个人认为只是世界上没有意义,人们完全疯了。

但我离题了。 在全球范围内,我们可以从这种情况中吸取一些教训:

首先,利用时间戳来人为降低复杂性的技术其实早已为人所知,甚至还得名——“时间扭曲”漏洞。 几年前,在比特币论坛上讨论了一种攻击向量。 在某种程度上,使用较新的难度调整算法 Dark Gravity Well,其中每个新块都调整难度,有助于实现对 Verge 的攻击。 在比特币中,难度每 2016 个区块才会改变。 尽管这样一个时间延长和间歇性的难度设置似乎是一个奇怪的决定,但 Verge hack 明确表示这实际上是一种安全措施:如果比特币有某种方法可以降低挖矿的复杂性,那么攻击者可以做到,每 2 周一次,这使得攻击结果与 Verge 相比微不足道,黑客可以每 30 秒降低一次挖矿难度。

有趣的是,Dark Gravity Wave 据称的优势之一是它必须不受时间扭曲漏洞的影响。 鉴于这一假设被驳斥的力度有多大,使用这种算法的其他货币至少应该会感到紧张。

至于五种算法的使用:虽然乍一看似乎是在经济刺激的分散环境中进行的一项有价值的实验,但它引入了新的复杂性,不可避免地增加了发生不可预见漏洞的可能性。

在这两种情况下,这种黑客行为都构成了支持经过验证的机制的有力论据,并呼吁在复杂化和引入与人们的金融资产相关的不必要风险时要谨慎。 在这些问题上,比特币团队已经证明自己处于最佳状态。

这个问题有点广泛:软件开发人员虽然不愿意承认,但最终也只是人类。 即使基本的安全原则看起来非常合理,也总是存在出错的空间。 有意想不到的攻击,妥协并不总是有回报,当然,没有人消除了良好的旧错误的可能性。 软件并不总是按照我们希望的方式工作,2018 年没有人会惊讶于这样的错误会导致资金损失。 但是当软件 本身 这是 钱,我们需要格外小心。

考虑到我们大多数人没有空闲时间对我们投资的每个项目进行彻底的代码审查,最好的防灾保护是信任具有积极工作经验和保守的开发方法的经过验证的系统。

而且,如果您想在与汇款相关的试点项目中押注一些资金,那么您至少应该意识到风险。 最终,最好的防御是当社区要求采取足够的措施来预防未来的灾难时。 如果我没记错的话,George Santayana 说,“那些不能从过去的安全漏洞中吸取教训的人,未来注定会一遍遍地重复。” 这些话一定要记住,这样我们自己就不会再重复过去的错误了。

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