Page 112 - 《软件学报》2025年第10期
P. 112

王御天 等: 基于多父链辅助工作量证明共识机制的后量子区块链系统                                                4509


                 率分析. 第  4  节对系统进行仿真实验和评估. 第         5  节总结全文.

                  1   相关工作

                  1.1   后量子签名算法在区块链中应用
                    1994  年, Shor 算法  [3] 提出, 可以在多项式时间解决离散对数问题和大整数分解问题, 而这对应的是, 对于量子
                 计算机, 目前的密码算法将受到安全性挑战. 2016              年, 美国国家标准研究院        (National Institute of Standards and
                               [4]
                 Technology, NIST) 进行后量子密码征集项目. 其中密码方案包含基于格、基于编码、基于哈希等方案. 其中基于
                                                       [5]
                                                               [6]
                 格的后量子密码算法, 包含        CRYSTALS-Dilithium 、Falcon 等数字签名算法.
                    与其他类型相比, 基于格的后量子数字签名, 例如               CRYSTALS-Dilithium, 速度一般强于其他类型后量子数字
                 签名, 但是空间开销有所增大. 董怡帆等人             [2] 改进  Dilithium  方案, 提出了基于素阶数域的数字签名方案, 记为
                 Dilithium-Prime. 与  Dilithium  相比, Dilithium-Prime 具有更小的内存开销, 更强的签名效率, 同时安全性也有所提高.
                    对于后量子签名算法在区块链中的应用也有一些探索. 例如, 对于基于格的后量子签名算法, Torres 等人                            [7] 设
                 计了一种基于格的环签名并应用到门罗币中; Arielcoin             在基于   PoW  的公链系统中应用了       CRYSTALS-Dilithium
                 签名算法   [8] , 主要使用了  Dilithium3  参数; Hcash  采用  DAG (有向无环图) 的分布式结构  [9] , PoW  和  PoS  混合, 使用
                 基于环   LWE  的公钥加密方案.
                    在基于其他后量子签名的算法中, 也有一些尝试应用在共识机制中. 例如                       ABC  链应用  Rainbow  签名算法  [10] ,
                 使用  PoW  共识机制, 但是基于多变量的        NP-hard  问题; QRL  使用基于散列的前向安全签名方案          [11] , 使用 WOTS+
                 作为主要构建块; Mochimo     同样使用   XMSS+ [12] , 又提出并验证一次性签名的      WOTS+变体.
                  1.2   工作量证明共识机制
                    区块链中的共识机制用于参与节点以何种方式对区块数据达成一致                         [13] , 即选举出块者、生成区块、同步区
                 块的流程. 在公链系统中, 比特币         (BTC)、莱特币   (LTC) 等使用工作量证明       (PoW) 共识机制, PoW  共识机制利用
                 单向哈希函数计算, 当节点计算满足一定难度的哈希值就获得出块权. 其中, nounce                       是遍历用来满足公式的值,
                 hashBlockHeader 是区块头的哈希值, Target 是目标值, 与难度成反比.

                                             Hash(nounce+hashBlockHeader) < Target.
                    随着区块链的发展, PoW       共识机制因为具有去中心化强、安全程度高等优点, 被广泛应用. BTC                    和  BCH  等在
                 共识机制中使用      Sha256  哈希函数, 算力自   2012  年  10 TH/s 增加到如今  500 EH/s 左右, 占据着目前绝大多数的算
                 力. LTC  和  Dogecoin  等在共识机制中使用   Scrypt 哈希函数, 算力目前达到      1 PH/s, 此外, 为了增加算力的应用率,
                 2014  年  LTC  进行硬分叉, 支持辅助工作量证明共识机制          (auxiliary proof of work, AuxPoW).
                    辅助工作量证明共识机制          [14] 在  PoW  的基础上进行改进, 达到同时进行两条区块链共同共识的效果, 其中需
                 要进行辅助工作量共识的区块链称为子链, 帮助子链进行共识的区块链称为父链. 但是目前的辅助工作量证明共
                 识机制只支持相同的哈希函数, 例如           LTC  和  Dogecoin  都使用  Scrypt 哈希函数.
                  1.3   难度调整算法
                    在工作量证明共识机制中, 由于算力随时发生变化, 为了维持出块时间保持稳定, 需要在一定周期内调整难
                 度, 一般认为   Target 越大, 计算出结果更容易, 难度更小; 反之, Target 越小, 难度更大. 在比特币中, 采用以下公式
                 调整难度   [15] , 其中, actualTimespan  表示一定出块数的实际出块时间, PoWTargetTimespan  表示一定出块数的目标
                 出块时间.

                                                                actualTimespan
                                           newTarget = prevTarget ×          ,
                                                              powTargetTimespan
                 同时, 限制每次难度调整值倍数范围在            4  以内, 也就是新的难度值满足以下不等式:

                                           0.25×prevTarget ⩽ newTarget ⩽ 4×prevTarget.
                    难度调整算法往往具有滞后性, 需要在一定时间周期内进行调整, 而算力变化非常快, 常见的有跳矿攻击                               (pool-
   107   108   109   110   111   112   113   114   115   116   117