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

韩将 等: 面向跨信任域互联网场景的拜占庭容错访问控制架构                                                   4231



                 出  v.
                    c) 在  ABA  共识阶段中, 先以固定值     (如共识的   Session ID) 的哈希值为随机种子, 进行置换后, 进入        ABA  共识.
                 若  ABA  共识轮数超过阈值     τ, 则使用公共掷币生成随机种子, 再进行置换后, 进入               ABA  共识. 当  ABA  共识输出
                 1  后, 返回对应交易.

                                验证 (VCBC)                             验证 (VCBC)

                                  置换 π      公共掷币                        置换 π        哈希


                                                                        ABA       循环 τ 轮
                                  ABA       循环 O(1) 轮
                                                                    Y          N
                                                                        共识?
                                             共识模块
                                 完成共识                          完成共识                  共识模块

                                       (a) MVBA                        (b) Opti-MVBA
                                            图 4 MVBA   和  Opti-MVBA  的流程示意图


                 算法 2. 节点  P l  上的  Opti-MVBA  算法.
                             Q; ABA        τ
                 Input: 外部断言        轮数阈值
                 ## CBC  阶段
                 1. if   P l == P sender  且收到输入交易  v then
                 2.  多播消息   SEND(v) := {SEND,v}
                 3.  upon 第  1  次收到来自  P j  的  ECHO( j) 消息 do
                 4.     DS = DS ∪{ j}
                 5.  upon  |DS | == 2 f +1 do
                 6.   多播消息    Finish(v) := {Finish,v}
                 7. upon 第  1  次收到来自  P sender  的  ECHO( j) 消息 do
                 8.  发送消息   ECHO( j)
                 9. upon 第  1  次收到来自  P sender  的  Finish(v) 消息 do
                 10.  if  Q(v) == True then

                 11.   输出  v
                 ## ABA  阶段
                 12. 构造共识序列    [n] = {1,2,...,n}
                 13. 使用可预测随机源置换共识序列得           L = PermutationWithoutCoinTossing([n])
                 14.  r = 0
                 15. while  l ← L[r] do
                 16.    P l  将交易   v 加入  ABA r  中
                 17.  if  ABA r  的输出为  1 then
                 18.   return  v
                 19.  else
                 20.    r ← r +1
   315   316   317   318   319   320   321   322   323   324   325