27、防止数字货币矿工对矿池发动攻击

防止数字货币矿工对矿池发动攻击

1. 数字货币挖矿基础

随着硬件系统的发展,节点在矿池管理者的监督下形成矿池来完成挖矿任务。比特币(甚至其他数字货币)的挖矿过程在一些技术文章中被比作矿工的数学谜题。

首个完成工作量证明的矿池会获得一定数量新挖出的比特币,以此激励矿工工作,这也是该过程被称为“挖矿”的原因。一旦一个区块被验证,它就会被添加到已验证区块列表(即区块链)中。之后,所有矿工停止对已验证区块的挖矿,开始处理下一个区块。

每个区块包含区块编号、随机数(nonce)值、交易列表、前一个区块的哈希值(前一个区块的地址)以及下一个区块的哈希值(下一个区块的地址)。在挖矿过程中,矿工试图生成一个小于某个阈值的有效哈希值,即哈希值以一定数量的零开头。他们通过尝试不同的随机数值来完成这一过程。显然,生成以五个零开头的哈希值比以四个零开头的更难,这就是所谓的挖矿难度系数。

哈希率(hr),也称为挖矿能力,是矿工在特定时间间隔内能够计算的哈希总数。因此,找到有效哈希值(即完整工作量证明)的平均时间与矿工的哈希率相关。实际上,矿池管理者会向矿工发送当前区块的不同模板,让他们通过更改随机数值来找到有效哈希值。如果矿工完成了完整的工作量证明,就会将其发送给矿池管理者。然后,矿池管理者代表整个矿池发布合法区块,并根据矿工的挖矿能力分配收益。需要注意的是,创建区块的矿工将新币明确放入该区块。

为了估算每个矿工的能力,矿池管理者为每个矿工设定一个部分目标,这个目标比系统的实际目标容易得多。例如,计算以一个零开头的哈希值就足够了,而不是以五个零开头。每个矿工被要求根据部分目标发送有效哈希值。这样定义部分目标是为了能够频繁计算出部分解决方案,以便管理者能够公平地估算矿工的能力,因为收益是根据矿工的能力分配的。

2. 博弈论基础概念与定义

2.1 博弈的组成

博弈由一组参与者、一组行动和策略(策略是每个参与者选择行动的方式)以及一个效用函数组成,每个参与者使用该效用函数来计算选择某个行动所获得的收益。

2.2 合作博弈与非合作博弈

在合作博弈中,参与者合作并分配总效用,合作通过协议得到激励。而在非合作博弈中,参与者无法达成协调行为的协议,任何合作都必须是自我执行的。

2.3 相关定义

  • 定义 1 :设 (A = A_1 × A_2 × … × A_n) 是 (n) 个参与者的行动配置文件,其中 (A_i) 表示参与者 (P_i) 的可能行动集合。博弈 (\Gamma = (A_i, u_i))((1 ≤ i ≤ n))由 (A_i) 和每个参与者 (P_i) 的效用函数 (u_i : A → R) 组成。我们将行动向量 (\vec{a} = (a_1, …, a_n) ∈ A) 称为博弈的结果。
  • 定义 2 :效用函数 (u_i) 说明了参与者 (P_i) 对不同结果的偏好。如果 (u_i(\vec{a}) > u_i(\vec{a}’)),则称 (P_i) 更喜欢结果 (\vec{a}) 而不是 (\vec{a}’);如果 (u_i(\vec{a}) ≥ u_i(\vec{a}’)),则称 (P_i) 弱偏好结果 (\vec{a}) 而不是 (\vec{a}’)。
  • 定义 3 :策略向量 (\vec{\sigma}) 处于纳什均衡状态,如果对于所有的 (i) 和任何 (\sigma’ i ≠ \sigma_i),都有 (u_i(\sigma’_i, \vec{\sigma} {-i}) ≤ u_i(\vec{\sigma}))。这意味着只要其他参与者遵循协议,任何参与者偏离协议都不会获得任何优势。
  • 定义 4 :设 (S_{-i} = S_1 × … × S_{i - 1} × S_{i + 1} × … × S_n)。如果对于所有的 (\vec{\sigma} {-i} ∈ S {-i}),都有 (u_i(\sigma_i, \vec{\sigma} {-i}) ≤ u_i(\sigma’_i, \vec{\sigma} {-i})),并且存在一个 (\vec{\sigma} {-i} ∈ S {-i}) 使得 (u_i(\sigma_i, \vec{\sigma} {-i}) < u_i(\sigma’_i, \vec{\sigma} {-i})),则称策略 (\sigma_i ∈ S_i)(或行动)相对于 (S_{-i}) 被 (\sigma’_i ∈ S_i)(或另一个行动)弱占优。如果参与者 (P_i) 不采用 (\sigma_i) 总能提高其效用,则称策略 (\sigma_i ∈ S_i) 被严格占优。

3. 相关研究综述

区块链的概念相对较新,于 2008 年由未知作者提出,但由于其在去中心化数字货币交易验证方面的独特方法以及这种去中心化性质带来的内在安全性,受到了计算机科学和经济学界的广泛关注。然而,通过博弈论方法研究区块链的工作相对较少。以下是一些相关研究:
|研究人员|研究内容|研究结论|
| ---- | ---- | ---- |
|Johnson 等人|研究矿池对另一个矿池发动分布式拒绝服务(DDoS)攻击的动机|有更大的动机攻击大型矿池而非小型矿池;减轻 DDoS 攻击的能力将提高矿池易受攻击的市场规模阈值;攻击成本会使小型矿池远离 DDoS 市场|
|Babaioff 等人|关注比特币协议中存在的一个问题,即挖矿奖励结束后,节点验证交易的激励问题|当挖矿奖励结束,交易费用成为唯一激励时,矿工有动机隐瞒交易信息,这可能会使比特币系统陷入困境|
|Kroll 等人|将比特币视为共识博弈,从挖矿角度考虑比特币的经济学问题|存在所有参与者与比特币参考实现合作的纳什均衡结果,但也存在无数其他均衡,有动机的对手可能会使货币崩溃,因此需要治理结构|
|Barber 等人|详细介绍了区块链协议中几个可能的漏洞|这些漏洞是博弈论研究的良好候选对象,如通缩螺旋、历史修订攻击和延迟交易确认|
|Carlsten 等人|研究比特币和区块链在最后一个区块奖励被收集后的问题|一旦挖矿奖励从协议中移除,仅留下交易费用,叛逃的动机就会增加|
|Luu 等人|仔细研究矿池的区块扣留攻击|从长期运营来看,这种攻击总是有动机的,但短期运营可能不盈利|
|Eyal|研究相同主题|两个矿池相互攻击会导致一种类似囚徒困境的情况,称为矿工困境|
|Lewenberg 等人|对区块链协议进行修改,以允许包含分叉区块|提供了新协议下节点之间费用竞争的博弈论模型|

4. 基于声誉的挖矿模型与设置

4.1 模型组成

该模型由一组矿池管理者 (M(i, p_i)) 和一组矿工/盟友矿工 (m(jk, rk)) 组成。其中,(0 ≤ p_i) 表示矿池管理者到目前为止积累的利润;(-1 ≤ rk ≤ +1) 表示矿工/盟友矿工的声誉值。

4.2 矿工的行动选择

在该模型中,矿工/盟友矿工可能通过直接攻击(如 DDoS 攻击)或勾结攻击(如区块扣留)等恶意活动来破坏某些矿池的工作量证明计算。因此,矿工的行动配置文件中有两个行动:进行恶意活动以破坏矿池计算(记为 D:不诚实挖矿)或诚实地进行工作量证明(记为 H:诚实挖矿)。

4.3 声誉值的更新

在当前数字货币设置中,每个矿工由唯一身份 (j) 定义。而在该框架中,每个矿工还被分配了一个公共声誉值 (rk),该值反映了矿工在系统中的挖矿表现以及诚实或恶意活动的历史。这个公共声誉值会在特定时间段后根据不同标准进行更新,例如完整工作量证明与部分工作量证明的比率、检测到的任何恶意活动(如与其他矿工勾结、自私挖矿或参与 DDoS 攻击)。

4.4 矿池管理者的参数

每个矿池管理者 (i) 还被分配了一个参数 (p_i),该参数定义了他/她通过矿池积累的利润。由于 (p_i) 反映了管理者的表现,因此可以将其解释为管理者的声誉。

4.5 盟友矿工的联盟

一部分彼此高度信任的矿工(由于合作关系、个人关系、共同国籍甚至地理位置接近)可以组成联盟,称为盟友矿工,并请求一个单一的声誉值 (rk),尽管他们各自有独立的身份 (j)。这意味着联盟成员可以通过合作共同建立声誉,但他们都要对联盟中任何一个成员触发的恶意活动负责。这就形成了一种邻里监督机制,每个联盟成员都有动力监督其盟友。例如,成员可以同意执行随机算法,通过各种方法(如网络安全检测技术或透明度政策)相互监督,以确保没有人因任何勾结攻击而从其他矿池收取贿赂。

4.6 矿池的重组

矿池管理者偶尔会重新安排他们的团队,形成新的联盟进行工作量证明。他们根据声誉值 (rk) 定义的非均匀概率分布向矿工/盟友矿工发送邀请。也就是说,声誉较高的矿工/盟友矿工有更高的机会被邀请到矿池中,而不可信的矿工获得邀请的机会较低。如果矿工/盟友矿工收到多个邀请,他们也可以选择加入哪个矿池,这是一种基于双方优点的设置。

4.7 声誉系统的优势

这个公共声誉系统随着时间的推移得以维持,因此矿工/盟友矿工有动力成为声誉良好的人(或维持高声誉)以最大化他们的长期效用。这将激励他们避免任何不诚实的行为,即使这种行为有短期效用。同时,该声誉系统必须对重新进入攻击(即作弊后以新身份返回系统)具有免疫力。我们使用理性信任建模的思想来确保该挖矿范式不会受到针对声誉系统的此类攻击。

此外,在该模型中,盟友矿工有动力形成更大的联盟以维持高声誉值并获得更多收入,但除非他们完全信任新成员,否则不会轻易接纳新矿工。因为单个矿工的恶意行为可能会损害整个联盟。而且,尽管盟友矿工只有一个声誉身份 (rk),但矿工不能在一个联盟中进行恶意活动后简单地加入另一个联盟,因为每个矿工仍然有唯一的标识符 (j)。

该模型可以看作是一个全球社区,每个矿池代表一个联邦权威,每个联盟代表一个州权威。因此,每个联盟负责在较小范围内检测联盟内的恶意活动。此外,联盟的规模可以改变,并在重组时转移到新的矿池。这种方法不仅减少了矿池管理者的管理负担,还为实施预防和检测协议创造了一个可行的框架。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(矿池管理者):::process -->|发送邀请| B(矿工/盟友矿工):::process
    B -->|选择加入| A
    B -->|更新声誉值| C(声誉系统):::process
    C -->|影响邀请概率| A

5. 基于声誉模型的挖矿

5.1 防止重新进入攻击

为了应对基于声誉方案中的重新进入攻击,采用了理性信任建模的方法。该方法涉及两个信任函数:
- 第一个函数 (f_1(\mathcal{T}_{i}^{p - 1}, \alpha_i)) :有两个输入,即参与者 (P_i) 在第 (p - 1) 期的信任值 (\mathcal{T} {i}^{p - 1}) 和参与者 (P_i) 在第 (p - 1) 期选择的行动 (\alpha_i)(合作或背叛)。此函数根据这两个输入计算参与者 (P_i) 在下一轮 (p) 的更新信任值 (\mathcal{T} {i}^{p})。
- 第二个函数 (f_2(\mathcal{T}_{i}^{p - 1}, \alpha_i, \ell_i)) :除了上述两个输入外,还有一个额外的输入值 (\ell_i),它定义了参与者的生命周期。这个额外输入决定了在基于声誉的方案中,一个有合理交互次数的参与者存在的时间长度。

使用第二个函数时,基于声誉的方案会设计成:在其他两个输入(当前信任值和行动)相同的情况下,生命周期较长的参与者比生命周期较短的参与者获得更多的奖励(或更少的惩罚)。例如,两个参与者 (P_i) 和 (P_j) 都选择合作((\alpha_i = \alpha_j = C)),且当前信任值相等((\mathcal{T} {i}^{p - 1} = \mathcal{T} {j}^{p - 1})),但生命周期参数不同((\ell_i > \ell_j)),那么生命周期参数较高的参与者 (P_i) 在下一轮会获得更高的信任值((\mathcal{T} {i}^{p} > \mathcal{T} {j}^{p})),这有助于 (P_i) 在目标声誉框架中积累更多的效用/收入。

以基于声誉的电子商务环境为例,如果使用第一个函数 (f_1),卖家可能会为了更高的收入而出售有缺陷的商品,然后以新身份重新进入电子商务框架(即重新进入攻击)。但如果使用第二个信任函数 (f_2),卖家就不会这样做,因为以新身份返回社区时,其生命周期指标变为零,会失去之前积累的所有信用,从而失去因生命周期参数而可能获得的巨大潜在收入,因为买家总是更喜欢生命周期较长(有合理交易次数且存在时间长)的卖家。

5.2 检测机制的技术讨论

在基于声誉的设置中,需要检测机制来奖励或惩罚矿工。以下是对检测矿工非合作行为(如区块扣留、自私挖矿、DDoS 攻击、日食攻击、顽固挖矿等未知攻击)的技术讨论和机制:
- 区块扣留攻击检测
- 计算部分工作量证明比计算完整工作量证明容易得多。因此,矿池可以简单地估算其预期挖矿能力和实际挖矿能力。
- 当预期和实际挖矿能力之间的差异超过某个阈值时,可能表明存在区块扣留攻击。
- 确定实施者的方法:
- 如果矿工/盟友矿工的挖矿能力足够高,完整工作量证明与部分工作量证明的比率可以表明该矿工/联盟是否在进行区块扣留攻击。
- 如果挖矿能力不高,找到完整工作量证明的成功率非常低,从统计学上可能无法确定矿工是否真的在进行区块扣留攻击,但这种情况对挖矿过程的影响可以忽略不计。
- 自私挖矿检测
- 如 Eyal 和 Sirer 所建议,区块链中孤立块数量的增加可能是自私挖矿的迹象。
- 区块链中连续释放区块的时间间隔也可能提供自私挖矿的证据。当矿工诚实挖矿时,连续快速释放两个区块的情况非常罕见,而当矿工/一组矿工自私地快速释放挖矿区块以超越诚实矿工时,这种情况更为常见。因此,不难检测出哪些矿工在进行自私挖矿。
- 日食攻击检测
- 如 Heilman 等人所述,日食攻击有几个可检测的特征和属性,例如来自不同 IP 地址的大量短期 TCP 连接。
- 突然连接大量节点到比特币网络的攻击者也可以被检测到。因此,寻找类似行为的异常检测软件系统有助于检测攻击者。
- 其他攻击检测 :在安全文献中有许多其他技术可用于检测 DDoS 攻击、顽固挖矿等。此外,还可以检测注册矿工之间的贿赂和非法资金交换(除非他们在比特币网络之外进行交换),就像政府机构在传统银行系统中检测洗钱/非法资金交换一样。检测到这些贿赂可能表明存在勾结行为。

5.3 基于声誉模型挖矿的优势总结

  • 激励机制有效 :基于声誉的模型通过声誉值激励矿工诚实挖矿,避免短期的不诚实行为以获取长期的最大效用。盟友矿工为了维持高声誉值和获得更多收入,会谨慎选择联盟成员,形成良性循环。
  • 管理负担减轻 :矿池管理者通过设置部分目标估算矿工能力,根据声誉值邀请矿工,减少了直接管理大量矿工的负担。同时,联盟内部的邻里监督机制进一步降低了管理成本。
  • 安全性增强 :采用理性信任建模防止重新进入攻击,通过多种检测机制及时发现和处理矿工的非合作行为,保障了挖矿过程的公平性和区块链系统的安全性。
graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(矿池):::process -->|估算能力| B(检测区块扣留攻击):::process
    C(区块链):::process -->|分析数据| D(检测自私挖矿):::process
    E(网络):::process -->|监测连接| F(检测日食攻击):::process
    G(矿工交易):::process -->|审查资金| H(检测贿赂和勾结):::process

综上所述,基于声誉的挖矿模型通过合理的激励机制、有效的管理方式和强大的安全保障,为数字货币挖矿提供了一个更加公平、高效和安全的环境。未来,随着区块链技术的不断发展,这种基于声誉的模型有望在更多领域得到应用和优化。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值