1 论文一:《VSSB-Raft:A Secure and Efficient Zero Trust Consensus Algorithm for Blockchain》
地址:谷歌学术
引用:[1]Siben Tian, Fenhua Bai, Tao Shen, Chi Zhang, and Gong Bei. VSSB-Raft:A Secure and Efficient Zero Trust Consensus Algorithm for Blockchain[J]. ACM Trans. Sen. Netw. 2023.
期刊:ACM Trans. Sen. Netw.(中科院3区,JCR:Q2)
作者:Tian Siben; Bai Fenhua; Shen Tao; Zhang Chi; Bei Gong
日期:2023
{/collapse-item}
{collapse-item label=" 1.2 文章主要创新点 "}
①改善Raft共识算法投票机制
解决的问题:
To solve the problems of vote forgery and malicious election of candidate nodes in the Raft consensus algorithm.
解决Raft共识算法中选票伪造和候选节点恶意选择的问题。
解决方案:
增加Zero Trust与Raft结合。
使用了四个算法:
- 数字签名算法:确认消息发送者身份。
- SM2签名算法:允许在节点发送消息时对消息进行签名,以实现数据正确性和身份正确性的验证,满足零信任认证的需要。
- Secret Sharing算法:确保候选节点获得的选票是真实有效的,保证了选举的公平性和可信性。
- NDN算法:重新定义节点如何在Raft共识算法中通信,从而提高节点之间的数据传输质量。
解决选票伪造问题:通过椭圆曲线签名为每次选举生成选举签名,然后使用秘密共享技术将选举签名拆分为每个节点的投票消息。候选节点通过从追随者节点收集选票并恢复选举签名来赢得选举。该方法隐藏了产生选举签名的选举消息,增加了选票伪造的难度,并在选举过程中引入监督节点对候选人恢复的选举签名进行验证,保证了候选人的诚实性,并通过秘密共享的门限值使算法具有拜占庭容错性。
②降低共识延迟
解决的问题:
为了消除选举过程中由于安全认证而引起的共识延迟,提出了一种有效的节点间通信方式。
解决方案:
利用数据命名网络来重新定义节点间的通信。具体地,每个节点将最初在IP网络上定义的路由改变为NDN上的感兴趣的路由,并将该感兴趣的路由发布到NDN转发守护进程(NFD)。这允许以有效的方式发送消息,而不管节点是处于选举过程还是日志同步过程。
③引入监督节点
解决的问题:
为了实现VSSB-Raft的零信任,消除选举过程中节点间隐形的信任关系。
解决方案:
VSSB-Raft引入了监督节点,由监督节点为共识节点生成子秘密选票,并对选举结果进行验证。
- 监督节点在接收到候选节点发起的投票请求后,首先通过选举消息生成过程为本次选举生成选举消息。
- 之后,根据SM2椭圆曲线签名方法,通过私有选举密钥生成选举签名。然后秘密共享算法将选举签名分成n个子秘密1,2,...,n,n是共识节点的数量。它将子秘密分发给相应的共识节点以供后续投票。
- 最后,监督者还生成子秘密承诺签名值1、2、...,对于候选节点,n是子秘密的数目。当候选节点收集到足够的子秘密来恢复选举签名时,监督者将验证其置换的结果。该验证过程使用SM2算法,并且验证的结果是否,其中是候选人的恢复的选举签名。监管者将基于验证结果确定候选者是否可以成为领导者节点,并广播结果。
{/collapse-item}
{collapse-item label=" 1.3 启发和总结 "}
本文引入了大量的安全算法,通过这些安全算法来保证VSSB-Raft实现零信任。我是不是也需要某个算法来保证我的信誉机制呢???找到某一个加权算法添加到选票上!!!
{/collapse-item}
2 论文二:《Multi‐strategy‐based leader election mechanism for the Raft algorithm》
地址:谷歌学术
引用:[1]Du, Z., Qu, Z., Fu, Y., Huang, M., & Liu, L. (2023). Multi‐strategy‐based leader election mechanism for the Raft algorithm. Concurrency and Computation: Practice and Experience, 35(22).
期刊:Concurrency and Computation(JCR:Q3)
作者:Du Zhiqiang; Qu Zhi; Fu Yanfang; Huang Muhong; Liu Liangxin
日期:2023
{/collapse-item}
{collapse-item label=" 2.2 文章主要创新点 "}
①创新点一:更改领导者选举机制
解决的问题:领导者性能问题
解决方案:增加了反投票策略,可以根据服务器的状态信息,如吞吐量、共识延迟、服务器间延迟变化等,主动发起主动触发选举投票,即可以对状态信息不满足预设指标的leader进行降级,及时终止性能下降的leader服务器对系统的影响,能够保证系统的性能和安全性。
②创新点二:更改超时等待机制
解决的问题:领导者选举问题
解决方案:评估跟随者的状态并计算相应的优先级,如吞吐量、共识延迟、服务器间延迟变化、需要转发的写请求数等。利用这些信息分别计算优先级,然后根据优先级分配不同的随机选举超时时长,提高高性能服务器成为集群领导者的概率。
基于服务器优先级的选举超时机制将服务器的优先级分为三个级别,分别用1、2和3表示。为不同优先级的服务器分配不同级别的随机选举超时时间。在本研究中,Raft算法推荐的150- 300 ms选举超时分为三个级别:优先级为1的服务器的150-200ms选举超时,优先级为2的服务器的200-250ms选举超时,以及优先级为3的服务器的250-300ms选举超时。高优先级的服务器有更高的概率成为追随者,因为它们的随机持续时间更短。
{/collapse-item}
{collapse-item label=" 2.3 启发 "}
{/collapse-item}
3 论文三:《RBFT:基于Raft集群的拜占庭容错共识机制》
地址:知网
引用:[1]黄冬艳,李浪,陈斌等.RBFT:基于Raft集群的拜占庭容错共识机制[J].通信学报,2021,42(03):209-219.
期刊:通信学报(北大核心)
作者:黄冬艳,李浪,陈斌
基金项目:
日期:2021
{/collapse-item}
{collapse-item label=" 3.2 文章主要创新点 "}
①分组共识
解决的问题:
针对现有联盟链共识机制因可拓展性不足,无法在支持大规模网络的同时满足低时延、高吞吐量和安全性的问题。
解决方案:
首先对网络节点进行分组,组内采用改进的 Raft 机制进行共识,然后由每个组内选出的领导者组成网络委员会,网络委员会内部采用 PBFT 机制进行共识。RBFT 同时引入监督节点,解决 Raft 共识不能对抗拜占庭恶意行为的问题,从而保证共识机制的安全性。
分组策略:
根据 RBFT算法的两级共识机制,PBFT 共识需要满足分组数k ≥ 4,每个组内的 Raft 共识需要满足节点数m ≥ 3。引入一致性 Hash 算法[26]的设计思想,利用一致性Hash 算法平衡、分散、单调的特点,提出一种适用于 RBFT 的节点分组算法。
1) InitHashRing (k) //根据分组数 k初始化 Hash环,确定每个分组 ID 的位置
2) 为监督节点分组
for i = 0:1:r
计算 Hash(nodeID + ip + randomStr),根据结果
将节点映射到 Hash 环上
clockwiseSearch ( ) //根据监督节点位置顺时针查找分组 ID,将监督节点映射到对应的不同分组中
end for
3) 为普通节点分组
计算 Hash(nodeID + ip + randomStr),根据结果
映射到环上
clockwiseSearch ( )
4) 合理性验证
根据组内节点数 3m≥ 及每个组内至少含一个
监督节点的条件,确定分组是否合理,若是,转至
步骤 5);若否,转至步骤 2)
5) 分组完毕
{/collapse-item}
{collapse-item label=" 3.3 启发 "}
{/collapse-item}
4 论文四:《Raft-PLUS: Improving Raft by Multi-Policy Based Leader Election with Unprejudiced Sorting》
地址:谷歌学术(通过基于多政策的无偏见排序的领导人选举来改善Raft)
引用:[1]Jinjie Xu, Wei Wang, Yu Zeng, Zhiwei Yan, & Hongtao Li. (2022). Raft-PLUS: Improving Raft by Multi-Policy Based Leader Election with Unprejudiced Sorting. Symmetry, 14(1122), 1122.
期刊:Symmetry(JCR:Q2,中科院4区)
作者:Xu Jinjie; Wang Wei; Zeng Yu; Yan Zhiwei; Li Hongtao
日期:2022
{/collapse-item}
{collapse-item label=" 4.2 文章主要创新点 "}
①采取多种选举策略选择领导人
解决的问题:采用策略投票代替Raft算法中的先到先得的方法。
解决方案:
每个Follower将在一段时间内收集Candidate RequestVote RPC,并将这些请求添加到投票请求池中。这个阶段称为投票收集阶段,从收到的第一个RequestVote RPC开始,结束由计时器和投票请求池中的请求数量控制。计时器设置一个固定值,该值应大于0且小于follower选举超时的最大值和最小值之差。当超时或投票请求池中的请求数超过集群数的1/3时,进入投票阶段。在投票阶段,关注者根据配置的投票策略从投票请求池中选择最佳候选人,并将投票发送给候选人。
制定了四项选举政策:
- 基于网络测量的选举策略:该策略类似于基于网络测量的反对策略。测量从追随者到候选者的网络延迟和抖动,作为投票的基础。为了最大限度地减少网络测量的时间成本,Follower在收到来自投票者的投票请求时立即开始测量网络性能-Follower投票给具有最佳网络性能的候选者。
- 基于处理能力的选举政策:此策略类似于基于处理能力的反对策略,其根据候选人的处理能力对候选人进行排序,并投票给具有最佳处理能力的候选人。
- 选举政策是以领导人当选的次数为依据的:根据领导人当选的次数,该策略投票给当选次数较多的候选人,以确保领导人的稳定性。如果多个候选人当选的次数相同,则投票将给予首先发送请求的候选人。
- 基于收到的客户端请求数量的选择策略:处于任何状态的服务器都可以接收客户端请求。如果Follower收到客户端请求,它会将请求转发给Leader。Leader处理请求并将结果发送给客户端。此策略基于服务器收到的客户端请求数作为投票的基础。关注者将投票给在上一个任期内收到最多客户请求的候选人。
②增加反对机制
解决的问题:解决Leader节点与其他节点之间的不对称状态。
解决方案:增加反对机制并根据选举中的不同策略进行无偏排序,主动触发新一轮领导人选举。
制定了三项反对政策:
- 基于网络测量的对抗策略:从跟随者到领导者的延迟和抖动的网络性能是基于投票来测量的。当网络质量低于阈值时(例如,延迟大于100 ms或抖动大于50 ms),则跟随者向引导者发送反对票。
- 基于处理能力的反对政策:此策略对Leader的处理能力进行投票,服务器的处理能力由硬件性能(包括CPU使用率、内存使用率和磁盘I/O使用率)和提交日志所需的时间来衡量。如果Leader的处理能力低于Follower设置的阈值,则Follower向Leader发送反对票。
- 基于提交的日志数的反对策略:此策略根据Leader提交的日志数进行投票。当Leader提交的日志数量达到某个阈值时,Follower会向Leader发送反对票。
{/collapse-item}
{collapse-item label=" 4.3 启发 "}
{/collapse-item}
5 论文五:《P-Raft: An Efficient and Robust Consensus Mechanism for Consortium Blockchains》
地址:谷歌学术
引用:[1]Shaofei Lu, Xuyang Zhang, Renke Zhao, Lizhi Chen, Junyi Li, & Guanzhong Yang. (2023). P-Raft: An Efficient and Robust Consensus Mechanism for Consortium Blockchains. Electronics, 12(2271), 2271. https://doi.org/10.3390/electronics12102271
期刊:Electronics(JCR:Q2,中科院3区)
作者:Lu Shaofei; Zhang Xuyang; Zhao Renke; Chen Lizhi; Li Junyi; Yang Guanzhong
日期:2023
{/collapse-item}
{collapse-item label=" 5.2 文章主要创新点 "}
①基于性能评估的一致性算法P-RAFT
解决的问题:提高Leader处理的效率,确保Leader选举的稳健性。
解决方案:
每个节点的性能与选举超时相关联,以确保具有上级性能的节点更有可能被选为Leaders。
(1)如果Follower节点在设定的时间段内没有收到Leader的心跳消息,则读取其实时性能,并根据Yasa模型计算当前性能得分。基于性能得分,它计算Leader选举的等待时间上限T,这表明每个节点必须考虑是否成为Leader。随着表现分数的增加,Follower会被提示快速转换为候选人并开始选举过程。
(2)在等待T之后,Follower节点发起选举,增加当前项,并将节点的标识更改为候选者。
(3)候选人向其他节点发送投票请求。接收到投票请求的节点将其任期与请求发送者的任期进行比较。如果发送者的任期比它自己的任期长,则节点退出选举,并承担追随者的角色。当所有其他节点收到的术语都低于术语本身时,节点为自己投票。最后,领导人由收到的选票数决定。
(4)一旦Leader被确认,确认消息被发送到其他节点。Follower在收到Leader的消息时验证Leader。在主选择过程结束后,其他节点切换到跟随者状态。
②节点性能评估模型:Yasa模型
解决的问题:评估各个节点的综合性能。
解决方案:
$$ C = Wm × Cm + Ws × Cs $$
Cm是节点的机器性能得分,Cs是节点的稳定性得分,Wm是Cm的权重,并且Ws是Cs的权重。Wm和Ws的值可以根据实际应用需求确定。
Cm计算:
每个节点将服务器的CPU空闲率、内存空闲率、GPU空闲率和网络带宽空闲率读入以下矩阵X:
$$ X = (ci, mi, gi, ni) $$
其中ci表示CPU空闲率,mi表示内存空闲率,gi表示GPU空闲率,ni表示网络带宽空闲率。
Cm计算公式:
$$ C_{m}={\textstyle \sum_{j=1}^{4}} (w_{j}\times w_{1j} ) $$
本文选用层次分析法对权重系数进行科学计算。
Cs计算公式:
$$ C_{s} = \frac{2}{1+e^{\mu \times t_{k} } } $$
tk是在时间k内服务器的停机次数; µ是增益参数。µ值越高,系统对节点停机行为的容忍度越低。
③领导者验证机制
解决的问题:为了防止恶意节点伪造自己的任期和抢占集群领导者。
解决方案:提出了一个领导者验证机制,结合阈值签名方案和BLS签名。
BLS签名可以聚合多个签名和m-n个签名,而不产生随机数。BLS签名减少了节点间的冗余通信开销。
阶段1:候选节点从超过2/3的关注者接收部分BLS签名,并生成BLS聚合签名。
阶段2:候选节点分发附加有BLS聚合签名的消息,并等待其他节点对BLS聚合签名的验证。如果验证过程成功,追随者可以提供积极的反馈。但是,如果验证过程失败,则会给出负面反馈。
阶段3:收到2/3正面反馈的Candidate节点变成Leader,并向其他节点发送带有正面反馈的心跳消息,以完成选举过程。
{/collapse-item}
{collapse-item label=" 5.3 启发 "}
{/collapse-item}
6 论文中的一些技术算法介绍
层次分析法(Analytic Hierarchy Process,AHP)是一种用于解决多准则决策问题的方法,它可以帮助确定不同因素或准则之间的相对权重。以下是使用层次分析法进行权重系数科学计算的基本步骤:
- 定义决策结构:首先,明确决策问题的目标和准则,并将它们组织成一个层次结构。层次结构由目标层、准则层和备选方案层组成。确保每个层次都与整体目标和子目标对应。
- 构建判断矩阵:对于准则层中的每对准则,创建一个判断矩阵来比较它们之间的重要性。判断矩阵是一个方阵,其元素表示两个准则之间的相对重要性。这些相对重要性通常使用1到9的尺度进行评估,其中1表示两个准则完全一样重要,9表示一个准则远远重要于另一个。
- 计算权重向量:通过对判断矩阵进行特征值分解,可以计算出每个准则的权重向量。一般情况下,采用最大特征值法来确定主特征值,并将其归一化以得到权重向量。
- 一致性检验:在进行权重计算之前,需要进行一致性检验,以确保判断矩阵的合理性。通过计算一致性指标(Consistency Index,CI)和一致性比率(Consistency Ratio,CR)来评估判断矩阵的一致性。如果CR小于某个预先设定的阈值(通常为0.1),则认为判断矩阵是一致的。
- 权重调整:如果一致性比率超过了设定的阈值,则需要对判断矩阵进行修正或重新评估,直到满足一致性要求为止。
- 综合决策:使用权重向量将不同层次的准则组合起来,进行综合决策。根据权重系数,可以计算备选方案的综合得分,并确定最优选择。
总之,采用层次分析法进行权重系数的科学计算需要明确决策结构,构建判断矩阵,计算权重向量,进行一致性检验和调整权重,最后综合决策并确定最佳选择。这种方法可以帮助决策者在多准则决策问题中进行科学、系统的权衡和选择。{/collapse-item}
评论