矿视界译文:由于 Chia矿池协议漏洞,第一家Chia新协议矿池关闭
2021年8月8日 , Chia新协议矿池Maxiopool正式宣布关闭 。 据 该矿池 的官方公告 , Maxiopool矿池 关闭 原因是 Chia 官方池协议代码中有重大缺陷 , 导致矿池无法继续运营。 据知情用户反馈, Maxiopool矿池关闭的原因 一是采用的 C hia官方池协议 存在漏洞 , 二是 服务器成本过高 导致的 财务危机。
以下是云基础设施架构师 Chris Dupres针对协议漏洞的分析:
8月8日,Chia新协议矿池 Maxiopool 宣布永久关闭。这是一个不幸的消息,不过我们更应该关注的是他们关闭的原因: MaxioPool在链 上 池协议中发现了一个漏洞。他们发现、测试 并 证明, 作恶矿工可以提交不完整的绘图到矿池,这也能向矿池证明网络空间,但却无法出块。以下我们将把这种攻 击 方式命名为 懒惰 矿工 攻击 ( Lazy Farmer Attack. ) 。
首先,我想祝 Maxiopool 团队 一切顺利。我 曾与该团队一起合作测试官方矿池 协议 , 那段并肩作战的时光十分愉快,因此 ,我 也 不认为他们的团队会轻率地做出 永久关闭的 决定。在我采访过的所有 矿池 运营商中,他们是投资最多的运营商之一 , 他们 开发了定制软件和一系列实用工具,助推 Chia网络的长期发展 。
他们发现的漏洞,相当容易实现, 如果 矿工 在 new_proof_of_space中 标注出了 /chia/ farmer /farmer_api.py, 就 可以让 Chia客户端 不为区块签名 ,但仍可以继续 将这个未完成的区块 正确提交到 矿 池中。 不过这种攻击的动机似乎有些奇怪 , 毕竟 为什么有人 会 想提交 未签名的区块 , 然后让自己一个块都出不了呢 ?
攻击者的动机是这样的 : 假设 我是一个恶意的 矿 池运营商,我想尽可能扩大我的网络空间。
一种方式是我可以把尽可能多的矿场接入到我的矿池,就 像 所有 理智的 参与者 一样, 用 诚实的方式 来挖矿 。 而另一种方式是 ,我可以稍微修改我的 Chia客户 端 , 接 入我的主要竞争对手 的矿池,用这个无法出块的客户端来降低他们的出块几率 。 如果我接入竞争对手矿池的恶意客户端数量够多,将能对手矿池产生实质性影响,减少接入对手矿池的矿工收益 , 使对手矿池的收益比自己矿池的低。
在这之后,再到 ChiaForum或者Reddit发布竞对矿池和自己矿池的收益对比,这样一来,对手矿池的矿工就会纷纷开始退出。
所以利用这个漏洞的动机就是,矿池运营商之间为抢占市场份额的恶意竞争,一个矿池运营商利用这个漏洞去恶意打压其他的矿池运营商,从而使自己成为市面上 最好的 矿 池。 同时,这种 攻击的成本非常低,只需要简单的 修改 客户端,并将客户端加入竞争对手池, 并不需要什么额外的成本 。
当 MaxioPool 联系到 Chia 官方团队,并 提供 了关于该漏洞 的详细信息 后 ,他们被解雇了,因为 官方团队 无法理解 为什么会有 恶意 矿 池 要这么做 。 但是这样的系统漏洞被利用的风险还是很高的,毕竟每天都有攻击成本更高、收益更少的漏洞被用于牟利,即使现在还没有人利用这个漏洞作恶,未来也很可能会有。
那 MaxioPool有 没有 可能 是 因为其他原因而关闭, 只是拿这个系统漏洞作 借口 的呢 ?答案是 有这种可能 。 不过, 我过去曾与 MaxioPool 合作过,并与他们 的团队在很多场合交流过 , 他们对Chia生态的发展十分关心和支持,并一直在努力为生态做贡献,我自己也是使用 MaxioPool 来挖矿,所有我还是选择相信他们。
这是一个可行的漏洞 ,恶意 的矿 池运营商绝对有动机 利用它 。 与此同时,要监测出这个漏洞利用又是 非常困难的,如果没有 大量 的数据, 很难判断出是系统漏洞被利用还是简单的运气不好 。
这种漏洞的根本原因, 注意我把这称为 漏洞 (Exploit) 而不是错误 (Bug) ,是 Chia区块链架构是围绕 矿工签署区块 设计的。 因此只要矿工还有权控制出块的过程 , 他们就有机会做出不符合 自身利益 的破坏行为 。 如果一旦有外部利益激励,例如矿池运营商之间的恶意竞争,矿工就很有可能会参与作恶。我希望 Chia官方可以认真对待这一漏洞,否则这个标榜“官方”的矿池协议有可能会被抛弃。
作者 | Chris Dupres
翻译 &校对 | 林芒果
本文由矿视界(奇迹摩尔)翻译整理编辑,如需转载,请标明出处