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, 相对周
   111   112   113   114   115   116   117   118   119   120   121