比特币攻击策略剖析:双花与分区攻击的研究
立即解锁
发布时间: 2025-08-31 01:45:01 阅读量: 13 订阅数: 19 AIGC 


金融密码学前沿研究
# 比特币攻击策略剖析:双花与分区攻击的研究
## 1. 双花攻击策略:DPC 攻击介绍
在比特币系统中,存在一种利用验证者困境进行双花的策略,即双私有链(DPC)攻击。当 2 类矿工找到一个区块时,会出现三种情况:
- 若两条私有链长度相等且长于公共链,双花链将得到扩展。
- 若公共链和第一条私有链长度相等,它们将得到扩展。
- 其他情况下,新发现的区块将被放弃,这会浪费 2 类诚实矿工的哈希算力。
### 1.1 DPC 攻击的马尔可夫决策过程
DPC 攻击的马尔可夫决策过程(MDP),通过同时考虑两条私有链来建立。每个状态是一个 5 元组 (lpub, l1, l2, s(pub,1), s(1,2)) :
- lpub、l1 和 l2 分别是公共链 chainpub、第一条私有链 chain1 和第二条私有链 chain2 的长度。
- s(pub,1) 和 s(1,2) 取值为 {t(rue), f(alse)},分别表示 chainpub 是否等于 chain1,以及 chain1 是否等于 chain2。
根据三条链之间的关系(是否同步),在乐观的 2 类矿工存在时,确定了 10 种状态类型;在悲观的 2 类矿工存在时,确定了 9 种状态类型。
| 矿工类型 | 状态类型数量 |
| --- | --- |
| 乐观 2 类矿工 | 10 种 |
| 悲观 2 类矿工 | 9 种 |
Case 0 是攻击的初始状态,Case 4 表示攻击成功,即公共链和双花链包含超过 6 个区块,且双花链长于公共链。而 Cases 1.x、2.x、3.x 是可能的中间状态,考虑了基于链长度和是否相等的不同场景,这在攻击者重新初始化其一条或两条私有链时会出现。
攻击者执行 DPC 攻击时,只有当双花链成功时才能获得挖矿奖励。此时,攻击者将获得对应于其挖到并最终进入公共链的私有区块的挖矿奖励,以及成功双花的交易价值。用 vb 表示区块价值,vt 表示双花交易的价值。
### 1.2 蒙特卡罗模拟分析
#### 1.2.1 方法和设置
使用蒙特卡罗模拟基于区块发现事件对消失挖矿策略和 DPC 攻击进行评估。评估基于 Python 脚本,在每个场景中,模拟创建 2016 个区块,每个配置重复 10000 次,并报告感兴趣指标的平均值。模拟创建 2016 个区块可在实验期间保持挖矿难度恒定,因为比特币的挖矿难度每 2016 个区块调整一次。
评估的参数范围为:α, μ ∈[0, 0.1, 0.2, 0.3, 0.4, 0.5] 和 β ∈[0, 1](步长为 0.01)。同时,还会分析攻击者的预期收入。
#### 1.2.2 消失挖矿对链增长的影响
在 DPC 攻击中,攻击者利用消失挖矿策略抑制公共链的增长。通过比较消失挖矿和自私挖矿,改变 2 类矿工的全局哈希算力 μ(从 0 到 0.5),发现当攻击者的算力增加以及 2 类矿工的全局算力增加时,公共链的扩展速度会降低。而且,消失挖矿对乐观 2 类矿工的影响比对悲观 2 类矿工的影响更大。
```mermaid
graph LR
A[攻击者算力增加] --> B[公共链扩展速度降低]
C[2 类矿工全局算力增加] --> B
D[乐观 2 类矿工] --> E[消失挖矿影响更大]
F[悲观 2 类矿工] --> G[消失挖矿影响较小]
```
#### 1.2.3 双花成功率
不
0
0
复制全文