基于可信计算同步区块链状态的方法、装置及相关产品
文献发布时间:2023-06-19 09:27:35
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于可信计算同步区块链状态的方法、装置及相关产品。
背景技术
区块链系统本质上是分布式数据存储系统、点对点传输、共识机制、加密算法等技术的集成应用模式,能够在互联网上实现传统互联网无法实现的信任和价值传递。其基于密码学原理而非信用的特征,使得任何达成一致的双方能够直接交易,不需要第三方中介的参与。另一方面,区块链中几乎不存在单点故障,链上的数据存储在全球无数台机器节点上,使得数据“稳定”、“可信”且“不可篡改”,这重新赋予了网络上的数据一种可以被信任的价值。
但是,由于运行中通常就会出现多个区块链之间的状态即区块链状态不一致,由此导致区块链系统无法正常运行,比如导致数据的处理效率较低。
发明内容
基于上述问题,本申请实施例提供了一种基于可信计算同步区块链状态的方法、装置及相关产品。
本申请实施例公开了如下技术方案:
1、一种基于可信计算同步区块链状态的方法,其特征在于,包括:
基于设置的可信计算机制,计算若干个区块链节点的可信值;
根据所述可信值,对所述若干个区块链节点进行验证并投票;
验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列;
根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
2、根据权利要求1所述的方法,其特征在于,验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列之后,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,之前包括:
根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
3、根据权利要求2所述的方法,其特征在于,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。
4、根据权利要求2所述的方法,其特征在于,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
5、根据权利要求1-4任一项所述的方法,其特征在于,所述基于设置的可信计算机制,计算若干个区块链节点的可信值,包括:基于设置的静态度量可信机制,计算若干个区块链节点的可信值。
6、根据权利要求5所述的方法,其特征在于,所述基于设置的静态度量可信机制,计算若干个区块链节点的可信值,包括:在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。
7、根据权利要求1-4任一项所述的方法,其特征在于,所述基于设置的可信计算机制,计算若干个区块链节点的可信值,包括:基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
8、根据权利要求7所述的方法,其特征在于,所述基于设置的动态度量可信机制,计算若干个区块链节点的可信值,包括:在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到操作系统散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。
9、根据权利要求1所述的方法,其特征在于,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,之后还包括:任一区块链节点出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围。
10、根据权利要求1所述的方法,其特征在于,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
11、一种大数据信任系统,其特征在于,包括若干个区块链节点,每个所述区块链节点上设置有可信计算模块,每个所述可信计算模块用于基于设置的可信计算机制,计算对应区块链节点的可信值并广播;接收到所述可信值的对端区块链节点根据所述可信值,对所述可信值对应的区块链节点进行验证并投票;验证并投票通过的所有区块链节点的可信值进行排序得到可信值序列,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
12、根据权利要求11所述的系统,其特征在于,每个区块链节点上还设置有状态判断模块,用于在验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列之后,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之前,根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
13、根据权利要求12所述的系统,其特征在于,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。
14、根据权利要求12所述的系统,其特征在于,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
15、根据权利要求10-14任一项所述的系统,其特征在于,所述可信计算模块进一步用于基于设置的静态度量可信机制,计算若干个区块链节点的可信值。
16、根据权利要求15所述的系统,其特征在于,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。
17、根据权利要求11-14任一项所述的系统,其特征在于,所述可信计算模块进一步用于基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
18、根据权利要求17所述的系统,其特征在于,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到操作系统散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。
19、根据权利要求11所述的系统,其特征在于,任一区块链节点出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围。
20、根据权利要求11所述的系统,其特征在于,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
21、一种电子设备,其作为区块链节点,其特征在于,电子设备包括可信计算模块,所述可信计算模块用于基于设置的可信计算机制,计算对应区块链节点的可信值并广播,以及接收到所述可信值的对端区块链节点根据所述可信值,对所述可信值对应的区块链节点进行验证并投票;验证并投票通过的所有区块链节点的可信值进行排序得到可信值序列,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
22、根据权利要求21所述的电子设备,其特征在于,所述电子设备上还设置有状态判断模块,用于根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
23、根据权利要求22所述的电子设备,其特征在于,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。
24、根据权利要求22所述的电子设备,其特征在于,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
25、根据权利要求21-24任一项所述的电子设备,其特征在于,所述可信计算模块进一步用于基于设置的静态度量可信机制,计算所述个区块链节点的可信值。
26、根据权利要求25所述的电子设备,其特征在于,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作电子设备启动之前,对所述操作电子设备的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。
27、根据权利要求21-24任一项所述的电子设备,其特征在于,所述可信计算模块进一步用于基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
28、根据权利要求27所述的电子设备,其特征在于,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作电子设备启动之前,对所述操作电子设备的完整性数据进行散列运算得到操作电子设备散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。
29、根据权利要求21所述的电子设备,其特征在于,任一区块链节点出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围。
30、根据权利要求21所述的电子设备,其特征在于,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
31、一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机可执行指令,所述计算机可执行指令被执行时实施如下步骤:
基于设置的可信计算机制,计算若干个区块链节点的可信值;
根据所述可信值,对所述若干个区块链节点进行验证并投票;
验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列;
根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
本申请实施例的技术方案中,通过基于设置的可信计算机制,计算若干个区块链节点的可信值;根据所述可信值,对所述若干个区块链节点进行验证并投票;验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列;根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,从而实现了区块链之间的状态同步,保证了区块链系统的正常运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中大数据信任系统的架构示意图;
图2为本申请实施例中基于可信计算同步区块链状态的方法流程示意图;
图3为本申请实施例中基于静态度量可信机制计算可信值的流程示意图;
图4为本申请实施例中基于动态度量可信机制计算可信值的流程示意图;
图5为本申请实施例电子设备的结构示意图;
图6为本申请实施例一种电子设备的结构示意图。
具体实施方式
实施本申请实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请实施例中大数据信任系统的架构示意图;如图1所示,其包括若干个区块链节点,每个所述区块链节点上设置有可信计算模块,每个所述可信计算模块用于基于设置的可信计算机制,计算对应区块链节点的可信值并广播;接收到所述可信值的对端区块链节点根据所述可信值,对所述可信值对应的区块链节点进行验证并投票;验证并投票通过的所有区块链节点的可信值进行排序得到可信值序列,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
本实施例中,本实施例中的大数据信任系统又可以称之为区块链系统,在所述区块链系统中存储有海量的数据,该数据可以根据应用场景的要求来确定。比如,对于银行来说,该数据可以关联于银行运营的财务数据、用户数据等。
本实施例中,区块链节点可以为通过互联网相连的电脑或者服务器或者任意电子终端。
本实施例中,可信计算模块主要用于对区块链节点是否按照预期的方式进行运行进行评估。可信计算模块工作的原理在区块链节点中建立一个信任根,再建立一条信任链,一级测量认证一级,一级信任一级,把信任关系扩大到整个操作系统,从而评估区块链节点是否可信。
可选地,在一系统实施例中,每个区块链节点上还设置有状态判断模块,用于在验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列之后,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之前,根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
可选地,在一系统实施例中,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。
可选地,在一实施例中,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
可选地,在一系统实施例中,所述可信计算模块进一步用于基于设置的静态度量可信机制,计算若干个区块链节点的可信值。
可选地,在一系统实施例中,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。
可选地,在一系统实施例中,所述可信计算模块进一步用于基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
可选地,在一系统实施例中,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到操作系统散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。
可选地,在一系统实施例中,任一区块链节点出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围。
可选地,在一系统实施例中,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
图2为本申请实施例中基于可信计算同步区块链状态的方法流程示意图;如图2所示,其包括:
S201、基于设置的可信计算机制,计算若干个区块链节点的可信值;
可选地,本实施例中,步骤S201中基于设置的可信计算机制,计算若干个区块链节点的可信值时,可以基于设置的静态度量可信机制,计算若干个区块链节点的可信值。或者,可替代地,步骤S201中基于设置的可信计算机制,计算若干个区块链节点的可信值时,基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
本实施例中,具体地参见上述图1实施例,大数据信任系统中任一区块链节点基于设置的可信计算机制,计算该区块链节点的可信值并在大数据信任系统内进行广播。上述图1中的大数据信任系统中有若干个区块链节点,该若干个区块链节点分别基于设置的可信计算机制,计算每个区块链节点的可信值;
S202、根据所述可信值,对所述若干个区块链节点进行验证并投票;
本实施例中,具体地参见上述图1实施例,大数据信任系统中区块链节点接收广播的可信值,并基于本地设置的验证和投票机制,对收到的可信值进行验证是否正确,并对对应的区块链节点进行投票。
需要说明的是,上述验证主要基于公私钥进行验证,上述投票主要基于是否可信的角度进行投票。
S203、验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列;
本实施例中,验证通过且投票通过的所有区块链节点的可信值形成的可信值序列在大数据信任系统内广播被所有区块链节点接收并存储在各自本地。
S204、根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
本实施例中,区块链的状态包括任意影响大数据信任系统正常运转的任何状态,包括但不限于验证、投票、出块等状态。
本实施例中,在进行状态同步时,按照区块链节点中状态能最快速做到一致的原则进行状态同步。
本实施例中,区块链状态并非使得区块链节点在某一个时间点只具有一种特定的状态或者唯一的状态,实际上,状态的同步还以包括使得区块链节点在用一个时间点具有多种状态,且多个区块链节点在同一时间点都处于相同的多种状态。比如,验证、投票状态。
本实施例中,状态的同步可以通过广播状态同步请求的方式实现。
图3为本申请实施例中基于静态度量可信机制计算可信值的流程示意图;如图3所示,所述基于设置的静态度量可信机制,计算若干个区块链节点的可信值的核心包括:在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。具体地,基于静态度量可信机制计算可信值包括如下步骤:
S212A、在区块链节点上配置有可信度量模块作为可信根,对该可信度量进行可信度量得到第一散列摘要值;
S222A、若该可信根度量得知可信根可信的话,则对该BIOS进行可信度量得到第二散列摘要值;
S232A、通过该可信跟度量得知BIOS可信的话,则对OS loader进行可信度量得到第三散列摘要值;
S242A、通过该该可信跟度量得知BIOS可信的话,则对该OS进行可信度量得到第四散列摘要值;
S252A、通过该可信跟度量得知OS可信的话,则根据第一散列摘要值、第二散列摘要值、第三散列摘要值、第四散列摘要值计算区块链节点的可信度量。
具体地,在上述进行可信度量得到各散列摘要值过程中,是对使用到的代码的运行过程进行监控,确定其中函数的跳转关系等等是否按照预定的跳转关系执行。
进一步地,可以对使用到的代码进行哈希运算得到散列摘要值,再与代码按照预定跳转关系执行时进行哈希运算得到的散列摘要值进行比对,如果完全相同或者差异在可接收的范围内,则生成可信的结论。
本实施例中,上述步骤S212A-242A执行于操作系统的内核态,从而保证了步骤处理过程的安全性。
可替代,在其他实施例中,也可以配置一个可信信息收集代理服务模块,比如虚拟机监视器,分别收集BIOS、OS Loader、OS的运行信息,并计算BIOS、OS Loader、OS对应的散列摘要值,并根据BIOS、OS Loader、OS各自对应的散列摘要值计算区块链节点的可信度量。
图4为本申请实施例中基于动态度量可信机制计算可信值的流程示意图;如图4所示,所述基于设置的静态度量可信机制,计算若干个区块链节点的可信值的核心包括:在区块链节点在上电启动之后,且其操作系统启动之前,对所述操作系统的完整性数据进行散列运算得到操作系统散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。其中,对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值,具体包括如下步骤:
S212B、提取所述应用程序的核心文件以及所述核心文件的标准完整性数据,并计算所述完整性数据对应的应用程序标准散列摘要值;
S222B、通过构建的可信执行环境,确定所述所述应用程序的启动执行事件;
S232B、在所述启动执行事件的触发下,提取所述应用程序的实时完整性数据;
S242B、对所述实时完整性数据进行哈希运算,计算应用程序实时散列摘要值;
S252B、根据所述应用程序标准散列摘要值以及应用程序实时散列摘要值,确定应用程序散列摘要值。
本实施例中,所述完整性数据包括可执行文件以及动态库文件。本实施例,首先对可执行文件的完整性数据进行哈希运算得到实时散列摘要值,并与可执行文件正常运行时的完整数据所对应的标准散列摘要值进行比对,如果一致,则将可信判断的控制权传递给动态库文件,对动态库文件的完整性数据进行哈希运算得到实时散列摘要值,并与动态库文件正常运行时的完整数据所对应的标准散列摘要值进行比对,如果一致,则根据可执行文件对应的实时散列摘要值、标准散列摘要值,以及动态库文件对应的实时散列摘要值、标准散列摘要值,确定确定应用程序散列摘要值,从而对应用程序是否可信做出准确且全面的判断。
上述实施例中,可以在大数据信任系统内部,对所有的区块链节点进行分片管理,具体地,确定历史上成功出块的区块链节点,并将其物理地址记录到地址表中,并根据出块的实时情况对该地址表进行动态更新,由于历史成功出块的区块连接点的状态是最新的且同步的,由此,在根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步时,如果所述可信值序列中的至少部分可信值对应的区块链节点是历史上成功出块的区块链节点,则将所述可信值序列中的至少部分可信值对应的区块链节点中其他区块链节点的状态参照历史上成功出块的区块链节点进行同步即可,从而实现了快速且准确的状态同步。
可选地,在另一实施例中,在验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列之后,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,之前包括:根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
可选地,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。如果对不能实施验证或者被验证,则该区块链节点实际上是异常节点,因此,通过状态同步的处理方式,可以使得该异常节点恢复正常。
具体地,在上述大数据信任系统中,在区块链节点之间建立一个状态通道,该状态通道可以通过智能合约来实现,因此,从而可直接智能合约来确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
进一步地,为了保证通信的安全性,通过状态通道传输的状态经过私钥加密处理,收到的区块链节点使用公钥解密才能得到。
或者,在每一个区块链节点上设置有个状态机,该状态机记录该区块链节点的状态,并通过广播的方式同步到大数据信任系统中的其他区块链节点,其他区块链节点对其状态进行验证以及投票,如果验证通过且投票通过的比例达到设定的比例,则认为该状态真实可信,为该区块链的实际状态。
可替代地,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
可选地,在一方法实施例中,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,之后还包括:任一区块链节点出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围,从而避免了出块的区块链节点过于集中或者过于分散,保证了出块的效率。
可选地,在一方法实施例中,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
图5为本申请实施例电子设备的结构示意图;如图5所示,该电子设备作为区块链节点,电子设备包括可信计算模块,所述可信计算模块用于基于设置的可信计算机制,计算对应区块链节点的可信值并广播,以及接收到所述可信值的对端区块链节点根据所述可信值,对所述可信值对应的区块链节点进行验证并投票;验证并投票通过的所有区块链节点的可信值进行排序得到可信值序列,根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
可选地,在一实施例中,所述电子设备上还设置有状态判断模块,用于根据设定的状态判断机制,确定所述可信值序列中的至少部分可信值对应的区块链节点的状态。
可选地,在一实施例中,所述设定的状态判断机制包括:根据历史出块数据,判断每个区块链节点的出块是否可被其他区块链节点实施验证,或者,判断每个区块链节点是否可对其他区块链节点的出块进行验证。
可选地,在一实施例中,所述设定的状态判断机制包括:判断区块链节点本地配置的区块验证机制是否被篡改。
可选地,在一实施例中,所述可信计算模块进一步用于基于设置的静态度量可信机制,计算所述个区块链节点的可信值。
可选地,在一实施例中,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作电子设备启动之前,对所述操作电子设备的完整性数据进行散列运算得到散列摘要值,根据所述散列摘要值计算区块链节点的可信度量。
可选地,在一实施例中,所述可信计算模块进一步用于基于设置的动态度量可信机制,计算若干个区块链节点的可信值。
可选地,在一实施例中,所述可信计算模块进一步用于在区块链节点在上电启动之后,且其操作电子设备启动之前,对所述操作电子设备的完整性数据进行散列运算得到操作电子设备散列摘要值;对所述区块链节点上的应用程序的完整性数据进行散列运算得到应用程序散列摘要值;根据所述操作系统散列摘要值以及所述应用程序散列摘要值计算区块链节点的可信度量。
可选地,在一电子设备实施例中,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步,之后还包括:电子设备出块时请求获取其对应的可信值,并与其历史出块时的可信值进行比对,确定可信值变化是否超过预设的范围,从而避免了出块的区块链节点过于集中或者过于分散,保证了出块的效率。
可选地,在一电子设备实施例中,所述根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步之后,包括:确定即将参与共识的区块链节点对应的可信值序列,并对所述可信值序列中的区块链节点进行验证,以确定对应的区块链层数据是否正确。
图6为本申请实施例一种电子设备的结构示意图;如图6所示,该电子设备的硬件结构可以包括:处理器601,通信接口602,计算机可读介质603和通信总线604;
其中,处理器601、通信接口602、计算机可读介质603通过通信总线604完成相互间的通信;
可选的,通信接口602可以为通信模块的接口,如GSM模块的接口;
其中,处理器601具体可以配置为运行存储器上存储的可执行程序,从而执行上述任一方法实施例的所有处理步骤或者其中部分处理步骤。
处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器710、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
本申请实施例中,处理器可以采取例如微处理器或存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑处理器和嵌入微处理器的形式,处理器的例子包括但不限于以下微处理器:ARC625D、Atmel AT91SAM、MicrochipPIC18F26K20以及Silicone Labs C8051F320,存储器处理器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现处理器以外,完全可以通过将方法步骤进行逻辑编程来使得处理器以逻辑门、开关、专用集成电路、可编程逻辑处理器和嵌入微处理器等的形式来实现相同功能。因此这种处理器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请实施例还提供一种计算机存储介质示意图;计算机存储介质上存储有计算机可执行指令,所述计算机可执行指令被执行时实施如下步骤:
基于设置的可信计算机制,计算若干个区块链节点的可信值;
根据所述可信值,对所述若干个区块链节点进行验证并投票;
验证通过且投票通过的所有区块链节点的可信值进行排序得到可信值序列;
根据设定的状态同步机制,对所述可信值序列中的至少部分可信值对应的区块链节点进行状态同步。
计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块提示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
- 基于可信计算同步区块链状态的方法、装置及相关产品
- 基于可信计算的区块链共识出块方法、装置及相关产品