Page 323 - 《软件学报》2025年第9期
P. 323
4234 软件学报 2025 年第 36 卷第 9 期
假设节点 P i 输出结果 , 根据外部有效性, 输出结果 v i 满足断言 Q, 即 Q(v i ) = True. 根据终止性, 只有当值 v i
v i
通过了验证, 所有诚实节点才能输出该值, 则可推出 v i 是某个 (些) 诚实节点的输入, 证明满足总体性. 证毕.
定理 1. 当 k-RBC 和 Opti-MVBA 均安全时, 那么 Super-Dumbo 满足一致性、有效性和总体性.
证明:
V
a) 一致性: 证明一致性, 即证明当一个诚实节点输出集合 V = {v i } 时, 所有诚实节点均输出集合 .
假设节点 P i 输出了集合 V = {v i }, 根据 Opti-MVBA 的外部有效性, 这意味着集合 V 中的所有值均通过了
n−2 f 个诚实节点的本地断言. 同时根据 k-RBC 的总体性, 所有诚实节点均在广播阶段输出 v i , 并且根据 Opti-MVBA
的一致性, 所有的诚实节点的输出均一致, 则所有诚实节点将输出 V. 从而证明一致性.
b) 有效性: 证明有效性, 即证明每个诚实节点的输出集合 V 满足 |V| ⩾ n− f 且至少包含 n−2 f 个诚实节点的
输入.
假设节点 P i 输出了集合 V = {v i }, 根据 Opti-MVBA 的验证断言可知: 1) 对于每一笔交易 v i , 均通过了至少
n−2 f 个节点的本地验证断言; 2) 集合 V 的大小至少为 n− f . 同时根据 k-RBC 的总体性, 节点 P i 输出的集合 V 的
大小至少为 n− f .
同时由于在设定中, f 为最大的可能出现拜占庭错误的节点 (腐化节点) 数量, 所以满足输出集合 V 至少来自
n−2 f 个诚实节点的输入. 从而证明有效性.
c) 总体性: 证明总体性, 即证明当 n− f 个诚实节点具有输入, 则所有的诚实节点都会产生输出.
根据 k-RBC 的有效性: 诚实节点 P i 发送的交易 v i 会被所有诚实节点接收. 现在有 n− f 个诚实节点具有输入,
n− f 个不同诚实节点的 Finish v i 作为 Opti-MVBA 阶段的输
因此每个诚实节点会至少收到来自 消息, 从而将交易
入. 根据 Opti-MVBA 的一致性和终止性, 所有诚实节点将收到 Opti-MVBA 的相同输出.
同时, 所有的 Opti-MVBA 的输出均满足其外部验证断言. 同时根据 k-RBC 的总体性, 将保证所有诚实节点将
接收到 V = {v i }. 从而证明总体性. 证毕.
最后, 回归到安全目标, 即系统的即时性、统一性和正确性.
定理 2. 当 Super-Dumbo 满足一致性、有效性和总体性时, CBAC 系统满足即时性、统一性和正确性.
证明:
a) 即时性: 由于 Super-Dumbo 中, k-RBC 的执行轮次为常数, Opti-MVBA 的执行轮数亦为常数, 所以 Super-
Dumbo 的执行轮数为常数轮. 故 PDP 节点能够在常数轮次达成共识, 并由于 Super-Dumbo 的有效性, 使得诚实节
点都能在期望常数轮交互后对该请求授予访问权限.
b) 统一性: 根据 Super-Dumbo 的一致性, 即所有诚实节点的输出相同, 故根据 Super-Dumbo 的有效性, 那么所
有诚实 PDP 节点最终授予的访问权限都是相同的.
c) 正确性: 根据 Super-Dumbo 的有效性, 即输出包含至少 n−2 f 个诚实节点的输入, 故诚实 PDP 节点最终一
致授予的访问权限一定来自至少 n−2 f 个诚实 PDP 节点本地独立决策的授予权限. 证毕.
5 系统实现和实验验证
本文的 Super-Dumbo 算法实现使用 Python, 且算法基于 Dumbo2 进行实现 [21] . 在运行算法时, 每个参与协议
的节点通过未验证的 TCP 套接字进行通信信道的建立. 所有节点默认为诚实节点, 但在运行前会随机腐化 1/3 的
节点.
在公共掷币的实现中, 本文使用 Boldyreva [40] 的基于配对的门限签名方案, 使用 MNT224 椭圆曲线构建签名
算法. 在门限加密的实现中, 本文使用我们采用 Baek 等人 [41] 使用 SS512 对称双线性群的门限加密方案实现. 并通
过 zfec 库实现 Reed-Solomon 编码.
实验分为 4 个部分: 实验 1 是循环等待断言和 Opti-MVBA 的优化与原 Dumbo2 的性能比较, 实验 2 是 Super-
Dumbo 的 k-RBC 在不同的实例数 k 下的吞吐量比较, 实验 3 是比较 Super-Dumbo 与原 Dumbo2 在带宽利用率上

