一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链中恶意节点的检测方法及区块链与流程

2022-02-20 01:03:13 来源:中国专利 TAG:


1.本发明涉及金融科技(fintech)领域中的区块链(blockchain)领域,尤其涉及一种区块链中恶意节点的检测方法及区块链。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前,基于区块链的不可篡改性,金融科技领域中常通过区块链进行交易。然而,在区块链的节点同步密文消息时,可能会出现恶意节点。
3.如若发送节点进行篡改作恶,将本应发送的密文消息篡改成错误的密文消息,发送节点便是恶意节点,也可能接收节点接收到了正确的密文消息,但却声明是错误的密文消息,即对发送节点进行诬告,接收节点便是恶意节点。若要定位出一次密文消息同步的过程的恶意节点,只能在线下通过其他非技术手段,要求发送节点对明文数据进行签名后,再要求发送节点对密文消息进行解密才能定位出恶意节点。因此目前定位出恶意节点的受限较大,这是一个亟待解决的问题。


技术实现要素:

4.本发明提供一种区块链中恶意节点的检测方法及区块链,解决了现有技术中定位出恶意节点的受限较大的问题。
5.第一方面,本发明提供一种区块链中恶意节点的检测方法,包括:
6.公证节点获取已认证验证消息、来自第一发送节点的第一验证消息、来自第二发送节点的第二验证消息和来自接收节点的第三验证消息,所述公证节点、所述第一发送节点、所述第二发送节点和所述接收节点均为区块链中的节点;所述已认证验证消息表征了已认证密文消息,所述第一验证消息用于验证所述第一发送节点声明的密文消息,所述第二验证消息用于验证所述第二发送节点声明的密文消息,所述第三验证消息用于验证所述接收节点声明的密文消息;
7.所述公证节点根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
8.上述方式下,公证节点分别从所述第一发送节点、所述第二发送节点和所述接收节点获取相应的验证消息,以及已认证的验证消息,那么可以通过所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,验证各节点声明的密文消息与已认证密文消息之间的一致性关系,从而可以确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
9.可选的,所述已认证验证消息是所述已认证密文消息按照第一预设方式得到的,或者是所述已认证密文消息按照所述第一预设方式得到的结果再按照第二预设方式得到
的已认证升级消息,所述第一预设方式及所述第二预设方式均为单向运算方式。
10.上述方式下,由于所述第一预设方式及所述第二预设方式均为单向运算方式,从而可以根据不可篡改性,依据根据所述第一预设方式及所述第二预设方式的对应关系进行验证,从而在更多的层面对密文消息进行验证,提升了恶意节点检测方法的可靠性。
11.可选的,所述第一预设方式及所述第二预设方式均为同一种哈希运算。
12.上述方式下,采用同一种哈希运算,可以使得恶意节点检测方法的运算更快,效率更高。
13.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到的,所述第一验证消息包括第一密文消息,所述第二验证消息包括第一辅助消息,所述第三验证消息包括第二密文消息和第二辅助消息;
14.所述第一密文消息为所述第一发送节点声明发送的密文消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到的;所述第二密文消息为所述接收节点声明接收到的密文消息,所述第二辅助消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到的;
15.所述公证节点根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点,包括:
16.若满足第一条件,所述第一条件为所述第一密文消息与所述第二密文消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一辅助消息与所述第二辅助消息相同,且所述第一辅助消息与所述已认证验证消息相同,则所述公证节点确定所述第一发送节点为恶意节点;或者,
17.若满足第二条件,所述第二条件为所述第一辅助消息与所述第二辅助消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一密文消息按照所述第一预设方式得到的消息与所述第二辅助消息相同,且所述第一密文消息按照所述第一预设方式得到的消息与所述已认证验证消息相同,则所述公证节点确定所述第二发送节点为恶意节点;或者,
18.若既不满足所述第一条件又不满足所述第二条件,则所述公证节点确定所述接收节点为恶意节点。
19.上述方式下,根据对比各节点声明的密文消息和辅助消息,可以相互印证各节点声明的密文消息和辅助消息是否一致,以及是否符合已认证验证消息的指示,从而可以简单高效地检测出恶意节点。
20.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第一验证消息包括第三辅助消息,所述第二验证消息包括第一升级消息,所述第三验证消息包括第四辅助消息和第二升级消息;
21.所述第三辅助消息为所述第一发送节点声明基于第一密文消息按照所述第一预设方式得到的,所述第一升级消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第四辅助消息为所述接收节点声明接收到的第二密文消息按照所述第一预设方式得到的,所述第二升级消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所
述第二预设方式得到的;
22.所述公证节点根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点,包括:
23.若满足第三条件,所述第三条件为所述第三辅助消息与所述第四辅助消息不同,或者所述第三辅助消息按照所述第一预设方式得到的消息与所述第一升级消息不同,且所述第一升级消息与所述第二升级消息相同,且所述第一升级消息与所述已认证验证消息相同,则所述公证节点确定所述第一发送节点为恶意节点;或者,
24.若满足第四条件,所述第四条件为所述第一升级消息与所述第二升级消息不同,或者所述第三辅助消息按照所述第二预设方式得到的消息与所述第一升级消息不同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述第二升级消息相同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述已认证验证消息相同,则所述公证节点确定所述第二发送节点为恶意节点;或者,
25.若既不满足所述第三条件又不满足所述第四条件,则所述公证节点确定所述接收节点为恶意节点。
26.上述方式下,根据对比各节点声明的辅助消息和升级消息,可以相互印证各节点声明的辅助消息和升级消息是否一致,以及是否符合已认证验证消息的指示,从而可以简单高效地检测出恶意节点。
27.第二方面,本发明提供一种区块链,包括:公证节点、第一发送节点、第二发送节点和接收节点;
28.所述公证节点,用于获取已认证验证消息、来自第一发送节点的第一验证消息、来自第二发送节点的第二验证消息和来自接收节点的第三验证消息,;所述已认证验证消息表征了已认证密文消息,所述第一验证消息用于验证所述第一发送节点声明的密文消息,所述第二验证消息用于验证所述第二发送节点声明的密文消息,所述第三验证消息用于验证所述接收节点声明的密文消息;
29.所述公证节点,用于根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
30.可选的,所述接收节点还用于:
31.获取来自所述第一发送节点的第一密文消息以及所述第二发送节点的第一辅助消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照第一预设方式得到的;
32.若所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息相同,则向所述公证节点发送诉讼消息,所述诉讼消息用于指示所述第一发送节点和所述第二发送节点中含有恶意节点。
33.可选的,所述区块链还包括审计节点;
34.所述公证节点,还用于将所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息发送至所述审计节点;
35.所述审计节点,用于根据所述已认证验证消息、所述第一验证消息、所述第二验证
消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
36.第三方面,本发明提供一种恶意节点的检测装置,包括:
37.获取模块,用于获取已认证验证消息、来自第一发送节点的第一验证消息、来自第二发送节点的第二验证消息和来自接收节点的第三验证消息,公证节点、所述第一发送节点、所述第二发送节点和所述接收节点均为区块链中的节点;所述已认证验证消息表征了已认证密文消息,所述第一验证消息用于验证所述第一发送节点声明的密文消息,所述第二验证消息用于验证所述第二发送节点声明的密文消息,所述第三验证消息用于验证所述接收节点声明的密文消息;
38.检测模块,用于根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
39.可选的,所述已认证验证消息是所述已认证密文消息按照第一预设方式得到的,或者是所述已认证密文消息按照所述第一预设方式得到的结果再按照第二预设方式得到的已认证升级消息,所述第一预设方式及所述第二预设方式均为单向运算方式。
40.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到的,所述第一验证消息包括第一密文消息,所述第二验证消息包括第一辅助消息,所述第三验证消息包括第二密文消息和第二辅助消息;
41.所述第一密文消息为所述第一发送节点声明发送的密文消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到的;所述第二密文消息为所述接收节点声明接收到的密文消息,所述第二辅助消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到的;
42.所述检测模块具体用于:
43.若满足第一条件,所述第一条件为所述第一密文消息与所述第二密文消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一辅助消息与所述第二辅助消息相同,且所述第一辅助消息与所述已认证验证消息相同,则确定所述第一发送节点为恶意节点;或者,
44.若满足第二条件,所述第二条件为所述第一辅助消息与所述第二辅助消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一密文消息按照所述第一预设方式得到的消息与所述第二辅助消息相同,且所述第一密文消息按照所述第一预设方式得到的消息与所述已认证验证消息相同,则确定所述第二发送节点为恶意节点;或者,
45.若既不满足所述第一条件又不满足所述第二条件,则确定所述接收节点为恶意节点。
46.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第一验证消息包括第三辅助消息,所述第二验证消息包括第一升级消息,所述第三验证消息包括第四辅助消息和第二升级消息;
47.所述第三辅助消息为所述第一发送节点声明基于第一密文消息按照所述第一预设方式得到的,所述第一升级消息为所述第二发送节点声明基于所述已认证密文消息按照
所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第四辅助消息为所述接收节点声明接收到的第二密文消息按照所述第一预设方式得到的,所述第二升级消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的;
48.所述检测模块具体用于:
49.若满足第三条件,所述第三条件为所述第三辅助消息与所述第四辅助消息不同,或者所述第三辅助消息按照所述第一预设方式得到的消息与所述第一升级消息不同,且所述第一升级消息与所述第二升级消息相同,且所述第一升级消息与所述已认证验证消息相同,则确定所述第一发送节点为恶意节点;或者,
50.若满足第四条件,所述第四条件为所述第一升级消息与所述第二升级消息不同,或者所述第三辅助消息按照所述第二预设方式得到的消息与所述第一升级消息不同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述第二升级消息相同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述已认证验证消息相同,则确定所述第二发送节点为恶意节点;或者,
51.若既不满足所述第三条件又不满足所述第四条件,则确定所述接收节点为恶意节点。
52.上述第二方面至第三方面及各个可选实施方式的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
53.第四方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面、第二方面及各个可选的方法。
54.第五方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面、第二方面及各个可选的方法。
55.本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
56.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
57.图1为本发明实施例提供的一种区块链中恶意节点的检测方法对应的流程示意图;
58.图2为本发明实施例提供的一种区块链中恶意节点的检测装置的结构示意图。
具体实施方式
59.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
60.下面首先列举本发明实施例中的名词。
61.区块链是由一系列区块组成的一条链,每个区块上除了记录本块的数据还会记录上一块的哈希(hash)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的hash指prevhash等重要字段,而块体主要存储交易数据。
62.计算联盟:由多个供数机构组成的一个联合数据计算网络,基于安全多方技术等隐私计算技术,每个供数机构部署一个计算节点,进行跨机构的密文消息流通同步,这些计算节点可以形成区块链。在实际场景中,出于共同的商业利益,联盟中的大多数成员有较高的动机,诚实地执行密文消息流通协议,但不排除可能出现的少数恶意节点。
63.恶意节点:不遵守计算联盟中约定密文消息流通协议,对密文消息数据进行篡改作恶的计算节点。
64.分布式密文消息同步:采用分布式方式将一个密文消息从一组计算节点同步到另一组计算节点的过程。
65.抗恶意篡改:有效判别出潜在的恶意节点,使得所有需要获得对应消息的节点最终都能获得一致的密文消息。有别于明文消息,接收密文数据的节点无法通过解密来核实密文消息的正确性。
66.hash(x):x的哈希值。
67.uid(p_x):计算节点p_x的唯一标识符,用于确认其归属身份。
68.在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,可能需要同步密文消息,在区块链的节点同步密文消息时,可能会出现恶意节点。现有技术中,只能在线下通过其他非技术手段,要求发送节点对明文数据进行签名后,再要求发送节点对密文消息进行解密才能定位出恶意节点。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
69.为此,如图1所示,本发明提供一种恶意节点的检测方法。该方法适用于本发明提供的一种区块链,该区块链包括公证节点、第一发送节点、第二发送节点和接收节点,还可以包括审计节点。本发明提供的恶意节点的检测方法中,对于同一份密文消息,联合多个发送节点,无需对密文消息进行解密,也能让接收节点,即时判断是否存在恶意节点(假定一次同步操作最多出现一个恶意节点),且判别哪一个是恶意节点。
70.该方法具体步骤如下:
71.步骤101:公证节点获取已认证验证消息、来自第一发送节点的第一验证消息、来自第二发送节点的第二验证消息和来自接收节点的第三验证消息。
72.步骤102:所述公证节点根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
73.步骤101~步骤102,所述已认证验证消息表征了已认证密文消息,所述第一验证消息用于验证所述第一发送节点声明的密文消息,所述第二验证消息用于验证所述第二发送节点声明的密文消息,所述第三验证消息用于验证所述接收节点声明的密文消息。
74.一种可能的实现方式中,步骤101之前,接收节点可以执行如下步骤:
75.获取来自所述第一发送节点的第一密文消息以及所述第二发送节点的第一辅助
消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照第一预设方式得到的;若所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息相同,则向所述公证节点发送诉讼消息,所述诉讼消息用于指示所述第一发送节点和所述第二发送节点中含有恶意节点。
76.举例来说,待同步的密文消息为m,对应的全局唯一消息标识为id_m,哈希值h_m=hash(m),接收密文消息的接收方计算节点(即接收节点)为p_r。
77.初始化流程如下:
78.对于密文消息m,假定计算网络(区块链)中至少存在一个计算节点拥有标识id_m对应的密文消息m,且存在至少两个拥有h_m的计算节点,可以通过初始化过程的可信分发来实现;在初始化之后,假定任一次消息同步流程中,最多只有一个恶意节点。
79.消息同步流程具体可以如下:
80.在计算联盟网络(区块链)中,接收方计算节点(接收节点)p_r基于标识id_m搜索,随机选取一个拥有m的发起方计算节点(第一发送节点)p_s0;在计算联盟网络中,接收方计算节点p_r基于标识id_m搜索,随机选取另一个拥有h_m的协同计算节点(第二发送节点)p_s1。
81.发送方计算节点p_s0将id_m,m发送给接收方计算节点为p_r;协同方计算节点p_s1将id_m,h_m发送给接收方计算节点为p_r。
82.接收方计算节点p_r检查hash(m)是否等于h_m,如果相等,消息同步结束;否则,说明发送方计算节点p_s0或协同方计算节点p_s1中存在一个恶意节点,进行恶意节点检测流程,即步骤102的流程。
83.步骤102的一种可能的实现方式中,所述已认证验证消息是所述已认证密文消息按照第一预设方式得到的,或者是所述已认证密文消息按照所述第一预设方式得到的结果再按照第二预设方式得到的已认证升级消息,所述第一预设方式及所述第二预设方式均为单向运算方式。其中,所述第一预设方式及所述第二预设方式具体可以为同一种哈希运算。
84.具体来说,步骤102的一种可能的情形中,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到的,所述第一验证消息包括第一密文消息,所述第二验证消息包括第一辅助消息,所述第三验证消息包括第二密文消息和第二辅助消息;所述第一密文消息为所述第一发送节点声明发送的密文消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到的;所述第二密文消息为所述接收节点声明接收到的密文消息,所述第二辅助消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到的。那么步骤102的一种实现方式可以如下:
85.若满足第一条件,则所述公证节点确定所述第一发送节点为恶意节点;或者,若满足第二条件,则所述公证节点确定所述第二发送节点为恶意节点;或者,若既不满足所述第一条件又不满足所述第二条件,则所述公证节点确定所述接收节点为恶意节点。
86.所述第一条件为所述第一密文消息与所述第二密文消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一辅助消息与所述第二辅助消息相同,且所述第一辅助消息与所述已认证验证消息相同,所述第二条件为所述第一辅助消息与所述第二辅助消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一密文消息按照所述第一预设方式得
到的消息与所述第二辅助消息相同,且所述第一密文消息按照所述第一预设方式得到的消息与所述已认证验证消息相同。
87.另一种可能的情形中,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第一验证消息包括第三辅助消息,所述第二验证消息包括第一升级消息,所述第三验证消息包括第四辅助消息和第二升级消息;所述第三辅助消息为所述第一发送节点声明基于第一密文消息按照所述第一预设方式得到的,所述第一升级消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第四辅助消息为所述接收节点声明接收到的第二密文消息按照所述第一预设方式得到的,所述第二升级消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的。
88.步骤102的一种实现方式还可以如下:
89.若满足第三条件,则所述公证节点确定所述第一发送节点为恶意节点;或者,若满足第四条件,则所述公证节点确定所述第二发送节点为恶意节点;或者,若既不满足所述第三条件又不满足所述第四条件,则所述公证节点确定所述接收节点为恶意节点。
90.所述第三条件为所述第三辅助消息与所述第四辅助消息不同,或者所述第三辅助消息按照所述第一预设方式得到的消息与所述第一升级消息不同,且所述第一升级消息与所述第二升级消息相同,且所述第一升级消息与所述已认证验证消息相同,所述第四条件为所述第一升级消息与所述第二升级消息不同,或者所述第三辅助消息按照所述第二预设方式得到的消息与所述第一升级消息不同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述第二升级消息相同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述已认证验证消息相同。
91.举例来说,接收方计算节点p_r开始诉讼流程,具体如下:
92.接收方计算节点(接收节点)p_r,基于标识id_m搜索,从计算联盟网络(区块链)中随机选取一个不参与本次同步,且拥有已认证验证消息(h_m)的公证节点p_a,h_m=hash(m),m为已认证密文消息。
93.接收方计算节点p_r将第二密文消息m_r和第二辅助消息h_m_r发送给公证节点p_a,注意节点p_r可能会进行诬告,所以这里的m_r和h_m_r,不一定等于节点p_r实际收到的值,特此加上_r的下标,以示区别。
94.接收方计算节点p_r计算第四辅助消息e_m_r=hash(m_r),第二升级消息e_h_m_r=hash(h_m_r),然后将id_m,uid(p_s0),uid(p_s1),e_m_r,e_h_m_r发送到区块链进行存证,便于后来第三方审计。
95.公证节点p_a计算已认证验证消息e_h_m=hash(h_m),然后将id_m,uid(p_a),e_h_m发送到区块链进行存证,便于后来第三方审计。
96.公证节点p_a向发送方计算节点(第一发送节点)p_s0索要原密文消息,获得第一密文消息m';发送方计算节点p_s0计算e_m'=hash(m'),然后将id_m,uid(p_s0),uid(p_r),e_m'发送到区块链进行存证,便于后来第三方审计。
97.公证节点p_a向发送方计算节点(第二发送节点)p_s1索要原哈希值,获得第一辅助消息h_m';发送方计算节点p_s1计算e_h_m'=hash(h_m'),然后将id_m,uid(p_s1),uid
(p_r),e_h_m'发送到区块链进行存证,便于后来第三方审计。
98.公证节点p_a检查如下判断条件:
99.如果(m'!=m_r或hash(m')!=h_m'),且h_m'==h_m_r,且h_m'==h_m满足,说明p_s0是恶意节点;如果(h_m'!=h_m_r或hash(m')!=h_m'),且hash(m')==h_m_r,且hash(m')==h_m满足,说明p_s1是恶意节点;否则,公证节点p_a没有发现任何异常,说明p_r对p_s0和p_s1进行了诬告,p_r自己才是恶意节点。
100.一种可能的实现方式中,当区块链包括审计节点时,还可以执行如下步骤:
101.所述公证节点将所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息发送至所述审计节点;所述审计节点根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
102.需要说明的是,上述审计节点执行的步骤还可以由区块链外部的审计方执行。具体来说可以如下:
103.第三方审计,无需获得消息原文m,仅从区块链上的存证消息,即可核实当时的恶意节点。第三方审计,基于标识id_m检索以往的诉讼记录,获得id_m,uid(p_s0),uid(p_s1),e_m_r,e_h_m_r,uid(p_r),e_m',e_h_m',uid(p_a),e_h_m;第三方审计检查如下判断条件:
104.如果(e_m'!=e_m_r或hash(e_m')!=e_h_m'),且e_h_m'==e_h_m_r,且e_h_m'==e_h_m满足,说明p_s0是恶意节点;如果(e_h_m'!=e_h_m_r或hash(e_m')!=e_h_m'),且hash(e_m')==e_h_m_r,且hash(e_m')==e_h_m满足,说明p_s1是恶意节点;否则,说明p_r对p_s0和p_s1进行了诬告,p_r自己才是恶意节点。
105.如图2所示,本发明提供一种恶意节点的检测装置,包括:
106.获取模块201,用于获取已认证验证消息、来自第一发送节点的第一验证消息、来自第二发送节点的第二验证消息和来自接收节点的第三验证消息,公证节点、所述第一发送节点、所述第二发送节点和所述接收节点均为区块链中的节点;所述已认证验证消息表征了已认证密文消息,所述第一验证消息用于验证所述第一发送节点声明的密文消息,所述第二验证消息用于验证所述第二发送节点声明的密文消息,所述第三验证消息用于验证所述接收节点声明的密文消息;
107.检测模块202,用于根据所述已认证验证消息、所述第一验证消息、所述第二验证消息和所述第三验证消息,确定出所述接收节点、所述第一发送节点和所述第二发送节点中的恶意节点。
108.可选的,所述已认证验证消息是所述已认证密文消息按照第一预设方式得到的,或者是所述已认证密文消息按照所述第一预设方式得到的结果再按照第二预设方式得到的已认证升级消息,所述第一预设方式及所述第二预设方式均为单向运算方式。
109.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到的,所述第一验证消息包括第一密文消息,所述第二验证消息包括第一辅助消息,所述第三验证消息包括第二密文消息和第二辅助消息;
110.所述第一密文消息为所述第一发送节点声明发送的密文消息,所述第一辅助消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到的;所述第
二密文消息为所述接收节点声明接收到的密文消息,所述第二辅助消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到的;
111.所述检测模块202具体用于:
112.若满足第一条件,所述第一条件为所述第一密文消息与所述第二密文消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一辅助消息与所述第二辅助消息相同,且所述第一辅助消息与所述已认证验证消息相同,则确定所述第一发送节点为恶意节点;或者,
113.若满足第二条件,所述第二条件为所述第一辅助消息与所述第二辅助消息不同,或者所述第一密文消息按照所述第一预设方式得到的消息与所述第一辅助消息不同,且所述第一密文消息按照所述第一预设方式得到的消息与所述第二辅助消息相同,且所述第一密文消息按照所述第一预设方式得到的消息与所述已认证验证消息相同,则确定所述第二发送节点为恶意节点;或者,
114.若既不满足所述第一条件又不满足所述第二条件,则确定所述接收节点为恶意节点。
115.可选的,所述已认证验证消息是所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第一验证消息包括第三辅助消息,所述第二验证消息包括第一升级消息,所述第三验证消息包括第四辅助消息和第二升级消息;
116.所述第三辅助消息为所述第一发送节点声明基于第一密文消息按照所述第一预设方式得到的,所述第一升级消息为所述第二发送节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的,所述第四辅助消息为所述接收节点声明接收到的第二密文消息按照所述第一预设方式得到的,所述第二升级消息为所述接收节点声明基于所述已认证密文消息按照所述第一预设方式得到消息后再按照所述第二预设方式得到的;
117.所述检测模块202具体用于:
118.若满足第三条件,所述第三条件为所述第三辅助消息与所述第四辅助消息不同,或者所述第三辅助消息按照所述第一预设方式得到的消息与所述第一升级消息不同,且所述第一升级消息与所述第二升级消息相同,且所述第一升级消息与所述已认证验证消息相同,则确定所述第一发送节点为恶意节点;或者,
119.若满足第四条件,所述第四条件为所述第一升级消息与所述第二升级消息不同,或者所述第三辅助消息按照所述第二预设方式得到的消息与所述第一升级消息不同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述第二升级消息相同,且所述第三辅助消息按照所述第二预设方式得到的消息与所述已认证验证消息相同,则确定所述第二发送节点为恶意节点;或者,
120.若既不满足所述第三条件又不满足所述第四条件,则确定所述接收节点为恶意节点。
121.基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链中恶意节点的检测方法及任一可选方法被执行。
122.基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序
或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链中恶意节点的检测方法及任一可选方法被执行。
123.本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
124.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
125.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
126.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
127.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
128.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献