Page 321 - 《软件学报》2025年第9期
P. 321

4232                                                       软件学报  2025  年第  36  卷第  9  期



                 21.   if  r ⩾ τ then
                 22.     r = 0
                 23.    使用不可随机源置换共识序列得            L = PermutationWithCoinTossing([n])

                 4.2.3    循环等待断言和  Super-Dumbo
                    Super-Dumbo  即用以上的  k-RBC  算法和  Opti-MVBA  算法, 替换  Dumbo2  中的广播阶段算法和共识阶段算法.
                                 Q 进行优化, 优化前需要重述        Dumbo2                                     P i  完成
                 同时将外部验证断言                                     中外部验证断言的原理: 此处验证是证明节点
                 了对其交易的广播, 即至少有          n−2 f  个诚实节点收到了来自       P i  的广播. 为了对这件事进行证明, 在广播阶段,
                 PRBC  使用   (n−2 f,n) -门限签名算法, 当节点  P j  在收到  READY  消息后, 使用私钥分片   SK j  对消息进行签名生成签
                 名分片   ss j , 并返回给节点  . 这也就意味着当且仅当        P i  收到了至少  n−2 f  个来自其他节点的签名分片, 才能生成
                                     P i
                                            P i  提交的交易进行验证时, 则提交对应的消息签名进行验证, 即外部验证的本
                 对于消息的签名. 当在共识阶段对
                 质是门限签名算法中的签名验证算法.
                                                                                       P i  的广播, 所以优化后
                    签名验证算法依旧是一个          O(n) 复杂度的算法, 而验证的本质是有足够多的节点收到了
                              Q 采取直接用本地收到的消息的          Merkle 树的根哈希值进行验证. 对于没有收到消息的节点, 可以
                 的外部验证断言
                 进行循环等待, 等到消息后完成验证. 对于没有等到消息的节点, 将处于循环等待状态, 并在本轮共识结束后杀死
                 循环等待进程.
                                                    2
                    共识阶段的循环等待验证总共减少了              O(n ) 的外部验证的时间复杂度, 同时由于验证不需要门限签名, 使得广
                 播阶段也省去了门限签名的签名算法和签名分片聚合算法.
                    其结构示意图如图       5  所示, 具体算法如算法     3  所示.

                                     RBC
                                       …
                               P 1            P 1   CBC 1  Q 1                           P 1
                                     RBC
                                     RBC
                               P 2     …      P 2   CBC 2  Q 2                           P 2
                                     RBC
                                                                      Opti-MVBA
                                     RBC
                               P 3     …      P 3   CBC 3  Q 3                           P 3
                                     RBC
                                …             …      …                                    …
                                     RBC
                                       …
                               P n            P n   CBC n  Q n                           P n
                                     RBC
                                                       循环等待断言
                                     k-RBC
                                        广播阶段                        共识阶段
                                                图 5 Super-Dumbo  结构示意图

                    a) 广播阶段: 节点通过     k-RBC  对提交的交易信息进行广播.
                    b) 共识阶段: 在完成广播阶段, 即接收到         n− f  个  k-RBC  的  Finish  消息后, 将交易加入  Opti-MVBA  中.
                    c) 输出阶段: 当   Opti-MVBA  返回交易后, 输出该交易, 完成本轮共识.

                           P l  上第   轮的  Super-Dumbo  算法.
                                r
                 算法 3. 节点
                 1. 外部断言  Q(v) ≡ if   v 在本地交易集合  V  中 return   True else 等待并循环断言  Q
                             v l  加入共识 do
                 2. upon 将交易
   316   317   318   319   320   321   322   323   324   325   326