权益证明验证者狙击研究

  • SCBuergel
  • 发布于 2023-06-30 19:36
  • 阅读 82

本文讨论了以太坊合并后,验证者面临的隐私风险,特别是验证者可能遭受狙击攻击以窃取区块奖励。攻击者通过监控网络将验证者的公钥与其IP地址关联,然后发起拒绝服务攻击,使目标验证者无法完成其职责,从而使下一个验证者能够获取MEV机会和交易费用。研究表明,这种攻击的动机被低估,识别验证者IP地址相对容易,且攻击更易实施和难以缓解。

The Merge 正在快速逼近。在几个月内,以太坊链将从工作量证明(PoW)切换到权益证明(PoS)。这是一个令人兴奋的进展,但我们需要强调 Merge 后的链的一个重要的隐私问题。HOPR 团队一直与帝国理工学院的去中心化系统与安全小组合作,对功能相同的 Gnosis Beacon Chain(GBC)进行研究。我们发现,验证者之间存在巨大的不正当激励,他们会互相进行狙击攻击,试图窃取彼此的区块奖励。

之所以会发生这种情况,是因为 PoS 验证方案要求信标链上的验证者公钥必须提前为所有人所知,因此每个人都知道一个 epoch 内的 slot 的验证者排序。这种预先知情,再加上关于验证者 IP 地址的信息,使得一种特别恶劣的攻击成为可能,即有人可以故意关闭验证者的节点——例如,通过拒绝服务(DoS)攻击——而下一个验证者可以窃取被狙击的验证者所能获得的奖励。

这种可能性已经存在一段时间了——事实上,在 2020 年的几份以太坊安全审计报告中都有提到(这是 Least Authority 的一份报告Quantstamp 的另一份报告)。但它通常被认为是不太严重的。

然而,HOPR 在过去几个月进行的研究,以及我们在伦敦帝国理工学院的去中心化系统与安全小组的合作者的并行研究,使我们得出结论,风险要高得多,原因有三:

  1. 进行这种攻击的动机比之前认为的要高得多
  2. 识别验证者 IP 比之前认为的要容易
  3. 攻击本身比之前认为的更容易实施,也更难缓解

让我们概述一下攻击的步骤,然后更详细地了解这三个要点。

验证者狙击——基础知识

攻击的基本轮廓很简单:监视信标链网络足够长的时间,以形成验证者的公钥及其 IP 地址之间的链接,然后当该验证者成为区块提议者时,使用 DoS 攻击使其机器离线。他们将无法完成其区块提议者的职责,并且其 slot 将过期。该角色将传递给下一个验证者,该验证者将能够获得被狙击的验证者可以访问的所有 MEV 机会和交易费用。

但是,如何获得进行攻击所需的公钥和 IP 地址信息呢?为了理解这一点,我们需要更深入地研究 ETH2 和等效设置中权益证明的工作方式。

每个 epoch,都会随机选择一组验证者来提议区块,并且每个验证者都可以在 epoch 内验证一个区块。此验证过程在这些小组内进行,但是每个步骤的确认(称为证明 attestation)都会在整个网络中广播。所有这些都是公开进行的,并且运行验证者节点的唯一要求是投入必要的 stake。因此,任何人都可以付费访问所有这些数据。

当你运行验证者节点时,你将获得有关其他节点运行者的 IP 地址和公钥的信息。这种联系并不简单——证明通常会为了效率而捆绑在一起,并且节点不会连接到网络中的所有其他对等点,从而导致数据不完整和很多噪声。但是我们将在下面展示如何消除这些噪声,并以非常高的确定性将 IP 地址链接到公钥。

一旦建立了这种联系,剩下的就是等待合适的攻击机会。然后,你可以对目标验证者发起极具针对性的拒绝服务攻击(DoS)。这不像我们更熟悉的分布式拒绝服务攻击(DDoS),后者会使主要服务瘫痪数小时。它不需要那么强烈或持久:它只需要使目标机器停止运行足够长的时间,以至于它们无法履行其 slot 职责。但是,在这里可以获得什么,以及这些攻击机会多久发生一次?

正是在这里,之前的研究似乎误解了风险。

不匹配的激励

我们的评估是,当之前的研究人员和审计人员考虑此攻击时,他们主要考虑的是造成混乱的动机:不加选择地中断链,或者通过阻止验证者履行其验证职责而导致其被罚没 slashing。

被忽略的是,MEV 的巨大增长为验证者创造了直接的激励,使他们可以互相攻击,无论是单独工作还是与专门的验证者狙击手合作,后者会寻找机会来关停特定的机器,就像 MEV 搜索者与矿工/验证者协同工作一样。

为了使攻击可行,必须同时发生三件事:

  • 知道即将到来的区块提议者的 IP 地址
  • 控制下一个 slot(要么因为你是该 slot 中的验证者,要么你能够与他们合作)
  • mempool 中有足够的 MEV 机会值得窃取

我们的评估是,这不是万中无一的情况。 实际上,我们希望看到这种情况经常发生。 这是因为:

  • 事实证明,以高置信度查找验证者 IP 地址非常简单
  • MEV 搜索者和矿工之间合作的频率表明,机会非常广泛,并且这些互动在 DeFi 领域中几乎没有摩擦地出现。 尽管由 DoS 促成的 MEV 攻击会比存在于道德灰色地带的 vanilla MEV 更不受欢迎,但我们仍然希望类似的合作和服务会迅速出现。
  • 目前以太坊中经常出现 MEV 机会,并且没有理由认为切换到 ETH2 会显着改变这一点

将 IP 地址链接到公钥

长期以来,人们都知道可能会监视网络并在验证者的公钥和 IP 地址之间建立链接。 但是据我们所知,HOPR 是第一个真正尝试它的项目。 下面的各节详细介绍了我们所做的事情以及它的容易程度。

我们的设置

自 2022 年 4 月 21 日以来,全球 11 名 HOPR 团队成员一直在 Gnosis Beacon Chain 上运行验证者节点,使用了我们伟大的合作伙伴 AVADO 提供的硬件节点。 他们自愿与我们的分析团队共享了他们的 IP 地址和公钥,以便可以确认结果。 请注意,除了验证结果外,IP 地址未用于分析过程中。

另外,我们运行了另一个节点,该节点经过少量修改以收集所有连接的对等方的 IP 地址,并在它们广播证明时将这些 IP 地址转储到使用 Elastic Stack 的 IP 和公钥数据库中。 节点修改非常简单,因为 Lighthouse 客户端 标准地促进了验证者监视。 (当我们讨论如何改善此数据收集时,此功能稍后也很重要。)

这产生了大量数据。 例如,在 6 月 1 日至 7 月 1 日之间,我们存储了 2,285,214,572 个 IP /公钥对,这些对可能与 1,253 个唯一的 IP 地址相关联。

将公钥链接到 IP 地址

那么,我们如何将这些海量数据转换为 IP 地址和公钥之间的可信链接呢?请记住,仅仅因为我们的节点收到了来自特定 IP 地址的与公钥相关的证明信息,这并不意味着该 IP 地址是具有该公钥的验证者节点的 IP 地址。这是因为某些节点会聚合证明,以便在整个网络中更快地传播。事实上,我们的节点甚至没有注册这些是聚合证明,而是以与单个证明相同的方式记录它们。

因此,任务是筛选所有这些噪声。

在你的收件箱中获取 Dr. Sebastian Bürgel 的故事

免费加入 Medium,即可获取这位作者的更新。

首先,我们选择一些公钥来尝试链接。对于此实验,我们使用了已经从测试人员那里知道的公钥。至关重要的是要理解,此步骤是有效的,因为我们从未在任何时候使用我们预先知道的 IP 地址来建立链接。提前选择这些公钥的唯一原因是,我们知道可以验证这些结果。我们同样可以只挑选随机的公钥,然后一个一个地进行处理,最终找到由 HOPR 团队控制的公钥。

即使缩小到这 11 个公钥,仍然有很多数据。从 4 月 21 日到 7 月 1 日,我们的节点收集了 431,639 个与 11 个 HOPR 公钥相关的 IP 地址对。在此时间范围内,有 1613 个唯一的 IP 地址与 11 个 HOPR 公钥相关联。但是哪些是真实的呢?

首先要做的是将数据划分为离散的时间块。时间范围的选择是任意的,但是我们选择了一天,因为这似乎可以提供可管理的数据量。例如,如果你只查看过去 15 分钟的证明,我们可能没有连接到给定的 HOPR 节点。因此,你将没有任何信息可以将公钥与正确的 IP 地址匹配。

下图显示了整个 6 月份 HOPR 团队 GBC 节点的 IP 和公钥的证明计数,其中证明按天分隔。

正如我们所看到的,我们的收集节点并没有平等地连接到所有 HOPR 节点。 实际上,有些日子几乎没有连接到任何 HOPR 节点。 这是有道理的,因为一个节点不能始终连接到网络中的所有 1600 个节点,并且节点并不总是始终处于启动状态并可访问。

尽管如此,这足以提供一个强有力的链接。 对于给定的日期和公钥,我们仅查看哪个 IP 地址与该公钥的证明关联最频繁。 这实际上是可能的最基本方法,但是即使这样,我们也发现在 62% 的情况下产生了正确的配对。

但是我们可以很容易地做得更好。 此方法没有考虑到这样一个事实,即在某些日子里,我们的收集节点将不会直接连接到我们试图识别的节点。 换句话说,当给定的 HOPR 公钥在给定日期与正确的 HOPR IP 相关联时,它没有充分利用这样一个事实,即 HOPR IP 在与该特定 HOPR 公钥关联的所有其他 IP 中产生最高的证明计数,在所有情况下占 99%。

为了改善这一点,我们使用了一种重新加权方法,在该方法中,我们使用所有日期的相关证明总数来重新加权来自第一种方法的给定 IP 的百分比份额。

本质上,该加权会降低给定 HOPR 节点未连接的天数,并将该权重转移到给定 HOPR 节点已连接的天数。

这种方法将识别正确 IP 地址的概率从 62% 提高到 89%。 它还将与每个节点关联的可能 IP 地址集减少到 1-3 个。

因此,从公钥建立可靠的链接到 IP 地址需要收集相当长一段时间的数据。 但是需要多长时间? 该图显示,我们需要收集大约三周的原始 attestation 才能链接所有 11 个节点。 但是这是因为我们已经有了一组我们感兴趣的公钥来证明我们的概念证明。 如果我们只是想找到要狙击的任何公钥,并且我们准备接受较低的确定性阈值,那么可能需要花费更少的时间。

还有各种其他技术可以大大缩短时间,例如:

  • 运行多个验证者节点
  • 切断与已建立链接的节点的连接,以专注于未链接的节点

最后一个使我们回到了上面提到的 Lighthouse 修改。 你可以选择要连接或忽略的特定验证者,而不是不加选择地连接到节点。 通常将其用于诊断目的,以测试你控制的节点的运行状况,但是可以颠覆它以促进攻击。

一个限制是数据集存在大量冗余。 由于我们只对接构建 IP 地址数据库感兴趣,而不对接促进网络上的验证感兴趣,因此没有必要从我们已经知道 IP / pubkey 链接的节点收集数据。 因此,如果我们设置了一个置信度阈值,超过该阈值我们感到满意地建立了链接,那么我们可以故意断开与这些验证者的连接,而将重点放在当前未链接的节点上。 这样,我们可以更有效地构建整个网络的图片,从而更快地填充 IP 地址数据库。

攻击可行性

当然,一旦有了 IP / pubkey 链接,仍然需要进行攻击。 这有多可行? 这正是我们来自伦敦帝国理工学院 Arthur Gervaise 小组的研究合作伙伴目前试图确定的。 我们希望他们的研究将在未来几个月内发表,但是我们已经可以进行一些评估。

首先,这不需要大规模的攻击。 目标机器只需要关闭一分钟左右,足以使 slot 过期。

其次,客户端级别的解决方案似乎对此没有多大帮助。 在 2020 年 Teku 审计报告 中有一些建议的解决方案,但是只有在攻击者试图使节点(而不是整个机器)过载时,这些解决方案才起作用。

第三,近几个月来,我们已经看到更大规模的 DoS 攻击被应用到加密货币上,以获取可能较小的回报。 人们似乎不可能不抓住机会进行更简单,更不易察觉的攻击以获得更高的回报。

接下来怎么办

那么可以做些什么呢?

最明显的短期解决方案是手动保护你的 IP 地址。 当然,良好的 VPN 卫生很重要,但是请注意,这可能不足以保护你。 除了许多 VPN 商业模式使你面临其他隐私问题外,VPN 根本无法提供足够的 IP 地址保护。 举例来说,让我们回到之前的地理位置图:

我们不想泄露我们自己团队成员的信息,但我们可以说,该地图准确地定位了节点的 IP 地址,而不是它们的物理位置……

因此,你需要相当快地循环使用你的 IP 地址。 多快? 这取决于 IP 链接建立的速度。 使用我们幼稚的方法,我们需要数周的时间,但是我们只是在运行一个几乎没有优化的收集节点。 来自合作者的估计表明,可以相当容易地将时间缩短到 15 分钟(尤其是在你乐于接受对置信度阈值的适度影响的情况下)。

显然,作为传输层隐私项目,我们将支持传输层隐私解决方案。 通过像 HOPR 这样的 mixnet 发送的证明基本上每次都会显示不同的 IP 地址(中继链中倒数第二个跃点的 IP 地址)。 证明也足够小,只需要一个 HOPR 消息,因此不应有任何明显的延迟或数据包丢失。

该解决方案还将使验证成为家庭验证者的可行选择,我们认为这是去中心化未来的重要组成部分。 我们很高兴看到 Gnosis Chain 的朋友们也有同样的感觉,他们经常拒绝复杂或资源密集型的解决方案,这些解决方案会为成为验证者设置更多障碍。

但是,当然,现实情况是,应该在每一层采用各种解决方案。 区块链是我们构建在其之上的所有内容的基础真理——为确保其完整性和安全性而做的任何努力都不算小。

负责任地披露

最后,关于负责任地披露的说明。 对我们在 Twitter 上最初的帖子的最大批评之一是,我们应该通过用于严重错误和其他威胁的私人披露渠道,以较少的公开方式发布此信息。

尽管我们同意我们帖子的最初语气并不理想,但我们不同意这是一个需要私下解决的问题。 这件事已经有几年的历史了,但没有任何迹象表明它受到了非常重视。 目前没有资金处于风险之中,因此没有立即放大此信息的危险。

这关系到每个人,尤其是验证者,我们认为将每个人都纳入对话至关重要。 我们期待在未来几个月内与尽可能多的人就此问题进行合作。 如果你想与我们联系,请使用以下链接之一。

Sebastian Bürgel,

HOPR 创始人

网站:https://www.hoprnet.org Twitter:https://twitter.com/hoprnet Telegram:https://t.me/hoprnet Discord:https://discord.gg/dEAWC4G

论坛:https://forum.hoprnet.org Staking:https://stake.hoprnet.org Bounties:https://bounties.hoprnet.org

  • 原文链接: medium.com/hoprnet/proof...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
SCBuergel
SCBuergel
江湖只有他的大名,没有他的介绍。