Page 116 - 《软件学报》2025年第10期
P. 116
王御天 等: 基于多父链辅助工作量证明共识机制的后量子区块链系统 4513
[ ( ) ]
φ·α φ·α α
响稳定性, 设定边界 , max min ,µ ,ξ , 但是可以发现 最小不会超过 , 因此可以简
[µ ξ], 即
x n (α+1) x n (α+1) (α+1)
( ) [ ( ) ]
φ·α φ
化为 min ,µ . 对于父链 B, 同理即为 max min ,µ ,ξ ×γ. 在算法中两种方式结合, 并为之设定了
x n (α+1) y n (α+1)
加权系数 β、 γ, 且 β+γ = 1.
AT
φ 个区块出块的实际出块时间 AT 与目标出块时间 ET . 此
最后类似比特币难度调整方式计算 的比值, 即
ET
AT AT
时还需要根据结果进行判断, 当 > 1.05 和 < 0.95 时, 可以认为出块时间波动较大, 此时稳定出块时间更为
ET ET
AT
重要, 需要使新增因子的乘积与 1 对比, 使难度调整的方向不发生变化. 当 0.95 < < 1.05 时, 可以认为出块时间
ET
比较稳定, 此时不需要控制新增因子的结果.
综上, 具体难度调整公式如下.
AT
如果 > 1.05:
ET
{{ [ ( ) ] ( ) } }
AT y n φ×α
· ·max max min α· ,µ ,ξ ×β+min ,1 ,
H A n+1 = H A n ,µ ×γ ×T A n
ET x n (α+1)
x n
{{ [ ( ) ] [ ( ) ] } }
AT x n φ
· ·max max min ,µ ,ξ ×β+max min ,1 .
H B n+1 = H B n ,µ ,ξ ×γ ×T B n
ET α·y n y n (α+1)
AT
0.95 < < 1.05:
如果
ET
{ [ ( ) ] ( ) }
AT y n φ×α
· · max min α· ,µ ,ξ ×β+min ,
H A n+1 = H A n ,µ ×γ ×T A n
ET x n x n (α+1)
{ [ ( ) ] [ ( ) ] }
AT x n φ
· · max min ,µ ,ξ ×β+max min .
H B n+1 = H B n ,µ ,ξ ×γ ×T B n
ET α·y n y n (α+1)
AT
如果 < 0.95:
ET
{{ [ ( ) ] ( ) } }
AT y n φ×α
· ·min max min α· ,µ ,ξ ×β+min ,1 ,
H A n+1 = H A n ,µ ×γ ×T A n
ET x n (α+1)
x n
{{ [ ( ) ] [ ( ) ] } }
AT x n φ
· ·min max min ,µ ,ξ ×β+max min ,1 .
H B n+1 = H B n ,µ ,ξ ×γ ×T B n
ET α·y n y n (α+1)
在上面算法基础上, 还需要保证 H A n+1 与 H A n 、 H B n+1 与 H B n 的比例在 [1/5, 5] 之间, 为难度调整增加上下边界.
的次数计数
为了防止 A, B 类链算力突增突减攻击与组合攻击, 根据最近 ω 周期, 各链出块数少于 B low limit ,A low limit
c less ,c more , 设定一些特殊情况.
(1) 如果 y n ⩽ B low limit , 此时说明小算力父链 B 辅助出块数量较少, 原因可能是父链 B 的算力明显减少或者父链
AT
A 的算力明显增加. 此时如果 ⩾ 1 可以认为整体算力在减少, 说明是父链 B 在减少算力. 如果连续多个周期都
ET
出现这样的情况, 可以认为父链 B 在进行算力攻击, 此时对父链 B 的难度调整设置更加平滑, 取消新增因子更强
烈的影响, 以此可以减少在该特殊情况下发动算力攻击的收益. 除了此种攻击外, 为了防止新增因子对难度调整的
影响过强, 减少难度调整的幅度. 因此, 需要对 H B n+1 进行调整, 公式如下.
AT ( AT )
如果 ⩾ 1 且 c less B ⩾ ω−1, 则: H B n+1 = H B n ·log δ+ .
δ
ET ET
( { [ ( ) ] [ ( ) ] } )
AT x n φ
否则: H B n+1 = H B n ·log δ+ · max min ,ν ,σ ×β+max min ,µ ,ξ ×γ ×T B n .
δ
ET α·y n y n (α+1)
(2) 如果 y n ⩾ A low limit , 与上同理, 说明父链 A 的算力明显减少或者父链 B 的算力明显增加, 为了防止算力攻击,
因此对 进行调整, 公式如下.
H A n+1
AT ( AT )
如果 ⩾ 1 且 c more B ⩾ ω−1, 则: H A n+1 = H A n ·log δ+ .
δ
ET ET
( { [ ( ) ] ( ) } )
AT y n φ×α
否则: H A n+1 = H A n ·log δ+ · max min α× ,µ ,ξ ×β+min ,µ ×γ ×T A n .
δ
ET x n x n (α+1)
此外, 提供两组参数, 如表 1 所示. 其中第 1 组参数周期出块数为 720, 每个块的目标出块时间 2 min, 相对周

