1.本发明属于区块链技术领域,特别涉及一种区块链共识机制的自动化安全评测方法。
背景技术:2.区块链共识机制是确保基于区块链技术所构建的应用系统的性能、安全性和可靠性的关键技术。不同的区块链系统的共识机制由于设计的侧重点不同,在一致性,容错性,可扩展性等方面存在较大差异,这给区块链生态系统带来了极大的复杂性,从而导致如何评估共识机制的安全性变得尤其重要。
3.已有的评测方法仍然是以白盒测试和渗透测试方法为主,需要测试员制定特殊的方案对庞大且复杂的区块链代码进行详细审查,效率较低。共识机制是区块链中决定记账权和保证节点数据一致性的核心机制,当前主流的区块链共识机制主要包括pbft、raft、pow、pos等。目前国内外相关工作,对于各类区块链中的关键机制缺乏系统性和深度性的安全分析手段,区块链的深度安全分析已成为亟待解决的重要问题。
4.相比于其他发明的安全分析方法,现有技术方案不仅需要大量的人工参与审查区块链基础层源码,而且还需要针对性地设计大量复杂的测试用例等问题。这些问题将导致安全评测结果严重依赖测试人员的检测经验,评测效率低下。
技术实现要素:5.有鉴于现有技术的上述缺陷,本发明的目的在于提供一种区块链共识机制的自动化安全评测方法,通过对区块链平台的共识机制进行解构,以解决上述问题。
6.本发明提供的技术方案是:
7.一种区块链共识机制的自动化安全评测方法,包括:
8.s1、开启所需测试的区块链系统初始网络;
9.s2、生成节点的配置文件及证书文件;
10.s3、在每个区块链平台中发起交易或执行合约;
11.s4、检测共识记录内容完整性;
12.s5、检测区块链共识进程是否不可单独中断,共识记录是否不可篡改;
13.s6、检测共识机制是否具备节点容错性以及节点故障对系统影响程度;
14.s7、检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚;
15.s8、检测共识机制正确性和一致性;
16.s9、检测共识算法防范攻击能力。
17.进一步地,步骤s4中,检测共识记录内容完整性包括:
18.s41基于自动化脚本,针对不同的共识机制,设计获得共识记录的测试函数,然后根据具体的测试函数获取交易共识的信息;
19.s42利用自动化脚本提取交易信息中的特定信息来判断是否包含事件时间,交易内容和发起者信息。
20.进一步地,步骤s5中,检测区块链共识进程是否不可单独中断,共识记录是否不可篡改包括:
21.s51基于容器技术设计针对不同共识机制的删除方法,利用在不同区块链平台中的不同方法来删除用户,并查看以往共识记录;
22.s52利用步骤s4查看被删除用户的共识记录来判断共识记录是否被删除篡改;
23.进一步地,步骤s6中,检测共识机制是否具备节点容错性以及节点故障对系统影响程度包括:
24.s61利用在不同区块链平台中提供的暂停节点的方法逐步停掉其共识机制允许的最大故障节点;
25.s62针对不同的共识机制,设计停掉节点之后进行执行平台提供的转账交易或者执行合约的方法,通过智能合约进行发送交易和链之间的交互,实现输入转账参数进行转账交易,并使用智能合约搭建资产管理应用,搭建完成后进入到该目录下执行脚本生成一个合约地址,然后使用脚本中的注册功能分别为不同交易方注册资产,之后使用脚本中的交易功能进行两者的资产转移;
26.s63利用脚本提取执行交易之后的与节点容错能力和节点故障相关的返回字段;
27.s64根据逐步停掉最大故障节点过程中每一步的返回字段来判断该共识机制是否符合该平台说明的容错性。
28.进一步地,步骤s7中,检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚包括:
29.s71在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法;
30.s72使用管道技术提取交易的与终局性相关的返回字段;
31.s73根据返回字段来判断共识算法在交易中是否具有终局性;
32.s74进行如步骤s51和步骤s52的删除用户操作,用于检查以往共识记录是否被删除篡改,并用于检查区块字段的可读性和加密属性。
33.s75根据不同区块链平台使用相应的方法查看所使用的共识算法,具体地,利用容器中的方法获得网络生成的p2p节点数和组织节点数,并与与官方文档所给的启动时使用的共识算法所会生成的节点数做对比,然后使用自动化方法构造的http请求并发送json编码的请求并输入评测用例,根据返回值来判断节点情况,最后使用容器中的控制台方法,通过查询当前链配置来获得使用的共识算法。
34.进一步地,步骤s8中,检测共识机制正确性和一致性包括:
35.s81检测共识系统正常运行节点的请求是否能在系统性能所要求的规定时间达成一致、正确的共识。在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法如步骤s62;
36.s82在不同区块链平台使用相应的方法查看是否执行交易成功以及交易之后改变的内容是否与提交的一致。
37.进一步地,步骤s9中,共识攻击防范措施包括:
38.s91针对pbft和raft等确定性共识算法,基于智能合约技术构建检测方法,实现对是确定性算法重放攻击和确定性算法权利压迫攻击防范措施的检测,输入检测实施,结合不同共识算法的特点,输出检测结果;
39.s92针对基于不同共识机制所构造的金融交易平台,利用容器技术构造自动化方法,检测各类共识算法的交易输出情况,并和链上交易数据进行对比,输出共识算法对范双花攻击的防范能力。
40.本发明的有益效果:
41.1、通过对区块链平台的共识机制进行解构,对其中多个维度的共性基本要素进行建模,构建一个系统性的共识机制自动化安全评测方法,实现对不同类型区块链共识机制进行安全性及性能的评估和比较。
42.2、实现了自动化的检测不同区块链平台的共识机制安全功能,只需要通过仿真平台的简单操作就能够对特定的区块链平台进行安全分析,极大的提高了评测效率。
附图说明
43.图1为本发明实施例区块链共识机制自动化安全评测流程示意图。
具体实施方式
44.下面对本发明的实施例作详细说明,下述的实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
45.实施例
46.参见附图1,本发明实施例提供的区块链共识机制的自动化安全评测方法,对区块链共识机制的四个重要功能模块:共识可审计性、共识容错性、共识终局性和共识可靠性,安全评测系统的执行流程,包括如下步骤:
47.s1、开启所需测试的区块链系统初始网络;
48.s2、生成节点的配置文件及证书文件;
49.s3、在每个区块链平台中发起几笔交易或执行合约;
50.s4、检测共识记录内容完整性;
51.s5、检测区块链共识进程是否不可单独中断,共识记录是否不可篡改;
52.s6、检测共识机制是否具备节点容错性以及节点故障对系统影响程度;
53.s7:检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚;
54.s8、检测共识机制正确性和一致性;
55.s9、共识攻击防范措施。
56.进一步地,步骤s4中,检测共识记录内容完整性包括:
57.s41,基于自动化脚本,针对不同的共识机制,设计获得共识记录的测试函数,然后根据具体的测试函数获取交易共识的信息;
58.s42,利用自动化脚本提取交易信息中的特定信息来判断是否包含事件时间,交易内容和发起者信息等内容。
59.进一步地,步骤s5中,检测区块链共识进程是否不可单独中断,共识记录是否不可篡改包括:
60.s51,基于容器技术设计针对不同共识机制的删除方法,然后利用在不同区块链平台中的不同方法来删除用户,并查看以往共识记录;
61.s52,利用步骤s4查看被删除用户的共识记录来判断共识记录是否被删除篡改;
62.进一步地,步骤s6中,检测共识机制是否具备节点容错性以及节点故障对系统影响程度包括:
63.s61,利用在不同区块链平台中提供的暂停节点的方法逐步停掉其共识机制允许的最大故障节点,具体地,使用容器停止方法和节点名称停掉相应的共识节点,或使用每个节点目录下的脚本停掉相应的节点;
64.s62,针对不同的共识机制,设计停掉节点之后进行执行平台提供的转账交易或者执行合约的方法,通过智能合约进行发送交易和链之间的交互,实现输入转账参数进行转账交易,并使用智能合约搭建资产管理应用,搭建完成后进入到该目录下执行脚本生成一个合约地址,然后使用脚本中的注册功能分别为不同交易方注册资产,之后使用脚本中的交易功能进行两者的资产转移;
65.s63,利用脚本提取执行交易之后的与节点容错能力和节点故障相关的返回字段;
66.s64,根据逐步停掉最大故障节点过程中每一步的返回字段来判断该共识机制是否符合该平台说明的容错性;
67.s65,在有些共识机制中存在规定节点数是否为奇数的要求,这时需检测基于领导者的选举算法来判断系统是否能够正常运行的,具体地,使用容器技术中的匹配方法评估出测试网络生成节点的数量(包括组织节点数量和p2p节点的数量),进而判断是否为奇数来判断是否符合于领导者的选举算法算法;
68.进一步地,步骤s7中,检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚包括:
69.s71,在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法;
70.s72,使用管道技术提取交易的与终局性相关的返回字段;
71.s73,根据返回字段来判断共识算法在交易中是否具有终局性;
72.s74,进行如步骤s51和步骤s52的删除用户操作,用于检查以往共识记录是否被删除篡改,并用于检查区块字段的可读性和加密属性。
73.s75,根据不同区块链平台使用相应的方法查看所使用的共识算法,具体地,利用容器中的方法获得网络生成的p2p节点数和组织节点数,并与与官方文档所给的启动时使用的共识算法所会生成的节点数做对比,然后使用自动化方法构造的http请求并发送json编码的请求并输入评测用例,根据返回值来判断节点情况,最后使用容器中的控制台方法,通过查询当前链配置来获得使用的共识算法。
74.进一步地,步骤s8中,检测共识机制正确性和一致性包括:
75.s81,检测共识系统正常运行节点的请求是否能在系统性能所要求的规定时间达成一致、正确的共识。在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法如步骤s62;
76.s82,在不同区块链平台使用相应的方法查看是否执行交易成功以及交易之后改变的内容是否与提交的一致,具体地使用智能合约在交易在交易方a与b之间,每次交易提交的内容为a向b转账金额,执行完交易之后通过调用链码中的方法查看交易方a和b的账户余额与转账前余额的差值做对比,然后使用脚本中的方法和用户名称来查看账户余额,查看转账前后对比,并采用调用合约之后的返回值来判断结果。
77.进一步地,步骤s9中,共识攻击防范措施包括:
78.s91,针对pbft和raft等确定性共识算法,基于智能合约技术构建检测方法,实现对是确定性算法重放攻击和确定性算法权利压迫攻击防范措施的检测,输入检测实施,结合不同共识算法的特点,输出检测结果;
79.s92,针对基于不同共识机制所构造的金融交易平台,利用容器技术构造自动化方法,检测各类共识算法的交易输出情况,并和链上交易数据进行对比,输出共识算法对范双花攻击的防范能力。
80.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的试验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
技术特征:1.一种区块链共识机制的自动化安全评测方法,其特征在于:其包括如下步骤:s1、开启所需测试的区块链系统初始网络;s2、生成节点的配置文件及证书文件;s3、在每个区块链平台中发起交易或执行合约;s4、检测共识记录内容完整性;s5、检测区块链共识进程是否不可单独中断,共识记录是否不可篡改;s6、检测共识机制是否具备节点容错性以及节点故障对系统影响程度;s7、检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚;s8、检测共识机制正确性和一致性;s9、检测共识算法防范攻击能力。2.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:步骤s4中,检测共识记录内容完整性包括如下步骤:s41,基于自动化脚本,针对不同的共识机制,设计获得共识记录的测试函数,根据具体的测试函数获取交易共识的信息;s42,利用自动化脚本提取交易信息中的特定信息来判断是否包含事件时间,交易内容和发起者信息。3.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:步骤s5中,检测区块链共识进程是否不可单独中断,共识记录是否不可篡改包括如下步骤:s51,基于容器技术设计针对不同共识机制的删除方法,利用在不同区块链平台中的不同方法来删除用户,并查看以往共识记录;s52,利用步骤s4检测被删除用户的共识记录来判断共识记录是否被删除篡改。4.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:步骤s6中,检测共识机制是否具备节点容错性以及节点故障对系统影响程度包括如下步骤:s61,利用在不同区块链平台中提供的暂停节点的方法逐步停掉其共识机制允许的最大故障节点;s62,针对不同的共识机制,设计停掉节点之后进行执行平台提供的转账交易或者执行合约的方法,通过智能合约进行发送交易和链之间的交互,实现输入转账参数进行转账交易,并使用智能合约搭建资产管理应用,搭建完成后进入到该目录下执行脚本生成一个合约地址,然后使用脚本中的注册功能分别为不同交易方注册资产,之后使用脚本中的交易功能进行两者的资产转移;s63,利用脚本提取执行交易之后的与节点容错能力和节点故障相关的返回字段;s64,根据逐步停掉最大故障节点过程中每一步的返回字段来判断该共识机制是否符合该平台说明的容错性。5.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:所述步骤s7检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改,以及是否能够防止链上交易回滚,包括如下步骤:s71,在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法;s72,使用管道技术提取交易的与终局性相关的返回字段;
s73,根据返回字段来判断共识算法在交易中是否具有终局性;s74,进行如步骤s51和步骤s52的删除用户操作,用于检查以往共识记录是否被删除篡改,并用于检查区块字段的可读性和加密属性。s75,根据不同区块链平台使用相应的方法查看所使用的共识算法,具体地,利用容器中的方法获得网络生成的p2p节点数和组织节点数,并与官方文档所给的启动时使用的共识算法所会生成的节点数做对比,然后使用自动化方法构造的http请求并发送json编码的请求并输入评测用例,根据返回值来判断节点情况,最后使用容器中的控制台方法,通过查询当前链配置来获得使用的共识算法。6.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:步骤s8中,包括检测共识机制是否具备节点容错性以及节点故障对系统的影响程度,检测共识机制正确性和一致性包括如下步骤:s81,检测共识系统正常运行节点的请求是否能在系统性能所要求的规定时间达成一致、正确的共识,在不同的区块链平台中使用其提供的交易方法执行多次节点间的交易具体方法如步骤s62;s82,在不同区块链平台使用相应的方法查看是否执行交易成功以及交易之后改变的内容是否与提交的一致。7.根据权利要求1所述的区块链共识机制的自动化安全评测方法,其特征在于:步骤s9中,共识攻击防范措施包括如下步骤:s91,针对pbft和raft确定性共识算法,基于智能合约技术构建检测方法,实现对确定性算法重放攻击和确定性算法权利压迫攻击防范措施的检测,输入检测实施,结合不同共识算法的特点,输出检测结果;s92,针对基于不同共识机制所构造的金融交易平台,利用容器技术构造自动化方法,检测各类共识算法的交易输出情况,并和链上交易数据进行对比,输出共识算法对防范双花攻击的防范能力。
技术总结本发明公开了一种区块链共识机制的自动化安全评测方法,包括如下步骤:S1、开启所需测试的区块链系统初始网络;S2、生成节点的配置文件及证书文件;S3、在每个区块链平台中发起交易或执行合约;S4、检测共识记录内容完整性;S5、检测区块链共识进程是否不可单独中断,共识记录是否不可篡改;S6、检测共识机制是否具备节点容错性以及节点故障对系统影响程度;S7、检测共识算法在可接受的有限时间内是否具有终局性、链上记录是否防篡改以及是否能够防止链上交易回滚;S8、检测共识机制正确性和一致性;S9、检测共识算法防范攻击能力。本发明实现了对不同类型区块链共识机制进行安全性及性能的评估和比较,提高了评测效率。提高了评测效率。提高了评测效率。
技术研发人员:李进 陈祺 柯志辉 吴俊达 叶顺良 陈畅
受保护的技术使用者:广州大学
技术研发日:2022.06.13
技术公布日:2022/11/1