【技术实现步骤摘要】
一种区块链共识协议的模糊测试方法和装置
[0001]本专利技术涉及区块链
,尤其涉及一种区块链共识协议的模糊测试方法和装置。
技术介绍
[0002]共识协议是区块链系统的核心组成部分,区块链节点根据共识协议达成共识,从而保证节点之间的一致性,支持区块链分布式网络的正常运行。区块链系统现有多种共识协议,如POW[1]、POS[2]、PBFT[3]等。由于区块链系统中的节点交互多样且复杂,共识协议中难以避免会存在实现漏洞,而共识协议的实现漏洞可能会对区块链系统的完整性和安全性造成严重的威胁。例如,以太坊的POS共识协议曾被挖掘出三个漏洞,攻击者可以利用此漏洞实施DoS攻击,或盗取利润,以破坏区块链系统的正常功能。
[0003]模糊测试作为一种具有前景、相对成熟且效果突出的测试方法,早已被应用到共识协议安全测试中了,例如Peach[4]和Fluffy[5]。其中Peach[4]是一个传统的基于生成的模糊测试工具,它基于用户定义的静态数据模型生成测试消息,投放给被测程序。Fluffy[5]是一个对以太坊交易执行过程进行 ...
【技术保护点】
【技术特征摘要】
1.一种区块链共识协议的模糊测试方法,用于区块链中的测试节点,其特征在于,所述方法包括:根据所述区块链中每一个正常节点发送的消息,对每一个所述正常节点进行状态迁移感知;基于所述状态迁移感知,生成每一个所述正常节点的测试消息;向每一个所述正常节点发送所述测试消息并监控所述区块链中由所述测试消息引起的正常节点异常崩溃,以挖掘所述共识协议的内存漏洞。2.根据权利要求1所述的区块链共识协议的模糊测试方法,其特征在于,每一个所述正常节点的状态用每一个所述正常节点发送的消息对应的消息类型来表示;所述根据所述区块链中每一个正常节点发送的消息,对每一个所述正常节点进行状态迁移感知,包括:解析所述消息对应的消息类型;基于每一个所述正常节点的状态迁移树,感知所述消息类型的每一个迁移方向及其对应的迁移概率。3.根据权利要求2所述的区块链共识协议的模糊测试方法,其特征在于,所述解析所述消息对应的消息类型之后,还包括:基于所述消息类型,更新每一个所述正常节点的状态迁移树。4.根据权利要求3所述的区块链共识协议的模糊测试方法,其特征在于,所述基于所述消息类型,更新每一个所述正常节点的状态迁移树,包括:将每一个所述正常节点发送的上一条消息对应的消息类型记为第一消息类型;判断每一个所述正常节点的状态迁移树是否存在所述第一消息类型指向所述消息类型的迁移方向;若存在,则更新所述迁移方向的迁移概率,否则建立所述迁移方向并设定所述迁移方向对应的迁移概率为100%。5.根据权利要求2所述的区块链共识协议的模糊测试方法,其特征在于,所述基于所述状态迁移感知,生成每一个所述正常节点的测试消息,包括:基于所述状态迁移感知,选定所述测试消息的消息类型;从消息池中随机选取一条消息类型与所述测试消息的消息类型相同的消息;将选取的消息送入变异器中进行内容变异;将变异后的消息作为所述测试消息;其中,所述消息池,是利用模糊测试开始前的一段时间内所有正常节点发送的消息构建的。6.根据权利要求5所述的区块链共识协议的模糊测试方法,其特征在于,所述基于所述状态迁移感知,选定所述测试消息的消息类型,包括:选定一个随机数范围;按照设定比例将所述随机数范围分为第一数值区间和第二数值区间;根据随机数落入的数值区间,选定所述测试消息的消息类型。7.根据权利要求6所述的区块链...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。