区块链中的轻量级概率验证方法、装置、区块链节点及介质

文档序号:27491790发布日期:2021-11-22 14:45阅读:196来源:国知局
区块链中的轻量级概率验证方法、装置、区块链节点及介质

1.本发明涉及区块链技术领域,尤其涉及一种区块链中的轻量级概率验证方法、装置、区块链节点及介质。


背景技术:

2.区块的传播延时是导致区块链分叉的主要因素。当前区块链设计过程中,需设置节点不断验证区块,以确保区块链数据的安全性,当不同节点同步同一高度的区块时,执行相同的验证过程。每个节点都需要验证每个区块和每笔交易,这可能引起一个区块链的过度验证问题。而且,节点对区块的验证占用大量的时间资源,给主链的分叉带来更多可能性。在一定程度上,如果能够减少区块链中的区块传播延时,就可以减少主链的分叉产生的情况。现有区块传播延时,除了传输时间之外,还包括节点对区块进行验证的验证时间,验证时间是区块传播延时的主要来源。若能减少网络中区块的验证时间,将会大大提高节点同步区块的效率,从而减少区块链分叉,因此,如何减少区块的验证时间是区块链设计中亟待解决的问题。


技术实现要素:

3.本发明提供一种区块链中的轻量级概率验证方法、装置、区块链节点及介质,以解决如何减少区块传播延时的问题。
4.本发明提供一种区块链中的轻量级概率验证方法,包括:
5.获取广播传输的当前区块;
6.生成随机概率,并获取所述当前区块对应的当前验证度;
7.若所述随机概率小于所述当前验证度,则对所述当前区块进行验证,将所述当前区块存储在节点本地链中;
8.若所述随机概率不小于所述当前验证度,则直接所述当前区块存储在节点本地链中。
9.优选地,在所述若所述随机概率小于所述当前验证度,则对所述当前区块进行验证,将所述当前区块存储在节点本地链中之后,所述区块链中的轻量级概率验证方法还包括:
10.将所述当前区块对应的验证标志位设置为1;
11.在若所述随机概率不小于所述当前验证度,则直接所述当前区块存储在节点本地链中之后,所述区块链中的轻量级概率验证方法还包括:
12.将所述当前区块对应的验证标志位设置为0。
13.优选地,所述获取所述当前区块对应的当前验证度,包括:
14.采用验证度调整算法,获取所述当前区块对应的目标验证度;
15.若所述目标验证度大于验证度阈值,则将所述目标验证度确定为所述当前区块对应的当前验证度;
16.若所述目标验证度不大于所述验证度阈值,则将所述验证度阈值确定为所述当前区块对应的当前验证度。
17.优选地,所述验证度调整算法为
18.其中,所述v
new
为目标验证度;v
old
为历史验证度;t
i
为区块生成时间间隔;t
r
为上一周期验证所用的实际时间;n为一个周期内生成区块的数量。
19.优选地,在所述获取广播传输的当前区块之后,所述区块链中的轻量级概率验证方法还包括:
20.获取所述当前区块对应的当前不验证次数;
21.若所述当前不验证次数大于最大不验证门槛值,则对所述当前区块进行验证,将所述当前区块存储在节点本地链中,更新所述当前不验证次数为0;
22.若所述当前不验证次数不大于最大不验证门槛值,则执行所述最大不验证门槛值。
23.优选地,在所述若所述随机概率小于所述当前验证度,则对所述当前区块进行验证,将所述当前区块存储在节点本地链中之后,所述区块链中的轻量级概率验证方法还包括:
24.将所述当前区块对应的当前不验证次数为0;
25.在若所述随机概率不小于所述当前验证度,则直接所述当前区块存储在节点本地链中之后,所述区块链中的轻量级概率验证方法还包括:
26.使所述当前区块对应的当前不验证次数加1,以更新所述当前区块对应的当前不验证次数。
27.本发明提供一种区块链中的轻量级概率验证装置,包括:
28.当前区块获取模块,用于获取广播传输的当前区块;
29.概率验证度获取模块,用于生成随机概率,并获取所述当前区块对应的当前验证度;
30.验证处理模块,用于若所述随机概率小于所述当前验证度,则对所述当前区块进行验证,将所述当前区块存储在节点本地链中;
31.无验证处理模块,用于若所述随机概率不小于所述当前验证度,则直接所述当前区块存储在节点本地链中。
32.本发明提供一种区块链节点,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链中的轻量级概率验证方法。
33.本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述区块链中的轻量级概率验证方法。
34.上述区块链中的轻量级概率验证方法、装置、区块链节点及介质,随机概率小于当前验证度的部分节点对当前区块进行验证,以保障区块链网络中的数据安全。随机概率不小于当前验证度的部分节点无需对当前区块进行验证,节省对当前区块进行验证的验证时间,有助于减缓当前区块在区块链网络中的传播延时,进而减少区块链分叉现象。利用每个
节点产生的随机概率与当前验证度进行比较,确定是否需要对当前区块进行验证,可保障任一当前区块,可能被不同节点进行验证过程,保障验证过程的随机性,有助于保障区块链网络的数据安全性。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
36.图1是本发明一实施例中区块链中的轻量级概率验证方法的一流程图;
37.图2是本发明一实施例中区块链中的轻量级概率验证方法的一示意图;
38.图3是本发明一实施例中区块链中的轻量级概率验证方法的另一流程图;
39.图4是本发明一实施例中区块链中的轻量级概率验证方法的另一流程图;
40.图5是本发明一实施例中模拟试验结果的一示意图;
41.图6是本发明一实施例中模拟试验结果的另一示意图;
42.图7是本发明一实施例中模拟试验结果的另一示意图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.本发明实施例提供一种区块链中的轻量级概率验证方法,该验证方法应用在区块链中的每一节点,以使每一节点在获取广播传播的区块时,基于随机概率和当前验证度,决定是否需要对区块进行选择验证,以使部分节点在验证该区块后接收区块,部分节点无需验证该区块而直接接收区块,从而节省区块在区块链网络中的验证时间。
45.在一实施例中,如图1所示,提供一种区块链中的轻量级概率验证方法,以该方法应用在区块链中的任一节点为例进行说明,包括如下步骤:
46.s101:获取广播传输的当前区块;
47.s102:生成随机概率,并获取当前区块对应的当前验证度;
48.s103:若随机概率小于当前验证度,则对当前区块进行验证,将当前区块存储在节点本地链中;
49.s104:若随机概率不小于当前验证度,则直接当前区块存储在节点本地链中。
50.其中,当前区块是指当前时刻广播传输至区块链中所有节点的区块,设为b1...bi...bs,例如图2所示的b100、b101和b102。为了便于描述,将执行该区块链中的轻量级概率验证方法的节点定义为当前节点,可为n1...bj...nr,如图2所示的n1、n2、n3、n4、n5和n6。
51.作为一示例,步骤s101中,区块链中的任一节点均可以获取广播传输的当前区块,即区块链中的每一当前节点均可以接收到广播传输的当前区块。如图2所示,区块链中所有
当前节点n1、n2、n3、n4、n5和n6,均可以获取当前时刻广播传输的当前区块b102。
52.作为一示例,步骤s102中,当前节点在获取到广播传输的当前区块之后,可采用随机数生成工具,生成随机概率,该随机概率为0

1之间的数值。该随机数生成工具可以为采用任何编程语言开发的用于生成0

1之间的随机数的工具。该随机概率是采用随机数生成工具生成的0

1之间的随机数。
53.其中,当前验证度是指当前时刻计算的验证度。验证度是指区块链中节点对区块的平均验证次数。例如,验证度为0.5时,整个区块链网络平均每两个节点验证一次区块。又例如,当验证度为1时,每个节点需要验证每个区块,就是目前实行的标准协议。
54.作为一示例,步骤s102中,当前节点在获取到广播传输的当前区块之后,需实时计算当前区块对应的当前验证度。本示例中,当前区块对应的当前验证度可以采用预先设置的验证度更新规则确定,该验证度更新规则可由区块链网络中的当前计算资源确定,当前计算资源越大,其当前验证度越高;反之,当前计算资源越小,其当前验证度越低。
55.作为一示例,步骤s103中,当前节点只有在随机概率小于当前验证度时,才对当前区块进行验证,将当前区块存储在节点本地链中。也即区块链中所有当前节点只在随机概率小于当前验证度时,才对当前区块进行验证,在验证通过之后,才会将当前区块存储在节点本地链中,以保障区块链中的数据安全。如图2所示,区块链中当前节点n1和n6中,其随机概率小于当前验证度(ε1<v,ε6<v),需要对当前区块进行验证,在验证通过之后,才会将当前区块存储在节点本地链中,以保障区块链网络中的数据安全。
56.作为一示例,步骤s104中,当前节点在随机概率不小于当前验证度时,无需对当前区块进行验证,直接当前区块存储在节点本地链中,以节省对当前区块进行验证的验证时间,有助于减缓当前区块在区块链网络中的传播延时,进而减少区块链分叉现象。如图2所示,区块链中当前节点n2

n5中,其随机概率不小于当前验证度(ε2≥v、ε3≥v、ε3≥v和ε4≥v),无需对当前区块进行验证,可直接当前区块存储在节点本地链中,以节省对当前区块进行验证的验证时间。
57.本实施例所提供的区块链中的轻量级概率验证方法中,随机概率小于当前验证度的部分节点对当前区块进行验证,以保障区块链网络中的数据安全。随机概率不小于当前验证度的部分节点无需对当前区块进行验证,节省对当前区块进行验证的验证时间,有助于减缓当前区块在区块链网络中的传播延时,进而减少区块链分叉现象。利用每个节点产生的随机概率与当前验证度进行比较,确定是否需要对当前区块进行验证,可保障任一当前区块,可能被不同节点进行验证过程,保障验证过程的随机性,有助于保障区块链网络的数据安全性。
58.在一实施例中,在步骤s103之后,即在若随机概率小于当前验证度,则对当前区块进行验证,将当前区块存储在节点本地链中之后,区块链中的轻量级概率验证方法还包括:
59.将当前区块对应的验证标志位设置为1;
60.在步骤s104之后,即在若随机概率不小于当前验证度,则直接当前区块存储在节点本地链中之后,区块链中的轻量级概率验证方法还包括:
61.将当前区块对应的验证标志位设置为0。
62.其中,当前区块对应的验证标志位是用于反映当前区块是否被验证的标志位,可采用α表示。
63.作为一示例,当前节点在随机概率小于当前验证度,对当前区块进行验证,将当前区块存储在节点本地链中之后,还可将当前节点对应的验证标志位设置为1,以标识当前区块是当前节点验证后存储在节点本地链中的区块,使得当前区块在后续传播过程中,后续节点根据验证标志位确定是否需要对当前节点进行验证。例如,当前节点a将其验证标志位设置为1时,在当前节点a将该当前节点广播到下一节点b时,使得其下一节点b在识别到当前区块的验证标志位为1时,确定当前节点a已经对当前区块进行验证。
64.作为一示例,当前节点在随机概率不小于当前验证度,直接当前区块存储在节点本地链中之后,还可将当前区块对应的验证标志位设置为0,以标识当前区块是当前节点没有对当前区块进行验证,而直接存储器在节点本地链中的区块,使得当前区块在后续传播过程中,后续节点根据验证标志位确定是否需要对当前节点进行验证。例如,当前节点a将其验证标志位设置为0时,在当前节点a将该当前节点广播到下一节点b时,使得其下一节点b在识别到当前区块的验证标志位为0时,确定当前节点a没有对当前区块进行验证,以便更新当前区块对应的当前不验证次数,以便根据更新后当前不验证次数确定是否需要进行验证,从而保障当前区块的安全性。
65.在一实施例中,如图3所示,步骤s103,即获取当前区块对应的当前验证度,包括:
66.s301:采用验证度调整算法,获取当前区块对应的目标验证度;
67.s302:若目标验证度大于验证度阈值,则将目标验证度确定为当前区块对应的当前验证度;
68.s303:若目标验证度不大于验证度阈值,则将验证度阈值确定为当前区块对应的当前验证度。
69.其中,目标验证度是指采用验证度调整算法实时计算出的验证度。验证度阈值是预先设置的验证度,该验证度阈值可以为依据区块链网络设计安全需求设置的验证度最小值,例如,验证度阈值可以设置为0.5,即区块链网络中平均每2个节点需验证一次区块。
70.作为一示例,步骤s301中,区块链网络中的每一当前节点,均可采用预先配置的验证度调整算法,实时计算当前区块对应的目标验证度。该验证度调整算法可以是与区块链网络中的当前计算资源相关的算法,可以反映目标验证度与区块链网络中的当前计算资源之间关联关系的算法。一般来说,目标验证度随着区块链网络中的当前计算资源的增大而增大,随着区块链网络中的当前计算资源的减小而减小。
71.作为一示例,步骤s302中,区块链网络中的每一当前节点,在获取当前区块对应的目标验证度之后,均需将该目标验证度与预先配置的验证度阈值进行比较;若目标验证度大于验证度阈值,说明区块链网络中的当前计算资源较多,拥有较多可对当前区块进行验证的计算资源,此时,可将目标验证度确定为当前区块对应的当前验证度,以便后续根据随机概率和当前验证度的比较结果,确定是否需要对当前区块进行验证过程,可保障区块链网络的当前计算资源较多时,采用较多当前节点对当前区块进行验证,有助于保障区块链网络的数据安全。
72.作为一示例,步骤s303中,区块链网络中的每一当前节点,在获取当前区块对应的目标验证度之后,均需将该目标验证度与预先配置的验证度阈值进行比较;若目标验证度不大于验证度阈值,说明区块链网络中可能出现当前计算资源急剧下降或者持续下降的情况,使得当前计算资源较少,拥有较少可对当前区块进行验证的计算资源,若直接将目标验
证度确定为当前验证度,可能会导致数量较少的当前节点对当前区块进行验证甚至没有当前节点对当前区块进行验证,影响区块链网络的数据安全。因此,当前节点在目标验证度不大于验证度阈值时,可直接将预先设置的验证度阈值确定为当前验证度,使得当前验证度为依据区块链网络设计安全需求设置的验证度阈值,从而保障在区块链网络的当前计算资源较少时,可保障与验证度阈值相匹配的数量对应的当前节点对当前区块进行验证,进而保障区块链网络的数据安全。
73.在一实施例中,验证度调整算法为
74.其中,v
new
为目标验证度;v
old
为历史验证度;t
i
为区块生成时间间隔;t
r
为上一周期验证所用的实际时间;n为一个周期内生成区块的数量。
75.其中,目标验证度v
new
是当前时刻计算确定的验证度。历史验证度v
old
是指在当前时刻之前计算的验证度。作为一示例,历史验证度v
old
可以为初始验证度,也可以为上一周期计算确定的验证度。初始验证度是指区块链网络初始化过程中确定的验证度,例如,初始验证度可以设置为0.75。区块生成时间间隔t
i
可以理解为相邻两个区块的生成时间的时间差。此处的周期是指生成特定数量的区块的时间。例如,可设定生成10个区块的时间为一个周期,在生成10个区块之后即进入下一周期。上一周期验证所用的实际时间t
r
可以理解为上一周期的同步时间,是指上一周期内的区块进行验证所用实际时间。例如,10个区块为一个周期,则在区块链网络中,主链上的区块高度从1到10的区块对当前区块进行验证的时间。
76.在一实施例中,如图4所示,在步骤s101之后,即在获取广播传输的当前区块之后,区块链中的轻量级概率验证方法还包括:
77.s401:获取当前区块对应的当前不验证次数;
78.s402:若当前不验证次数大于最大不验证门槛值,则对当前区块进行验证,将当前区块存储在节点本地链中,更新当前不验证次数为0;
79.s403:若当前不验证次数不大于最大不验证门槛值,则执行最大不验证门槛值。
80.其中,当前不验证次数是指当前区块在通过区块链传播过程中,没有被节点验证的次数。当前不验证次数可以理解为当前区块通过区块链传播时,所经过的无需验证而直接将当前区块存储在节点本地链中的节点数量。最大不验证门槛值是指区块链网络设计中所允许经过的无需验证的节点门槛值。例如,最大不验证门槛值设置为3时,说明任一当前区块在经过区块链传播时,最多可允许连续3个当前节点无需对当前区块进行验证。
81.作为一示例,步骤s401中,区块链中的任一当前节点在获取到当前区块时,可读取当前区块所携带的区块信息,从区块信息中读取到当前不验证次数。可理解地,每一区块被广播传输到任一当前节点过程中,在将当前区块存储在节点本地链之后,更会更新该当前节点的当前不验证次数,以便该当前区块被传输到下一节点时,下一节点可读取到其当前不验证次数。
82.作为一示例,步骤s402中,区块链中的任一当前节点在获取到当前区块的当前不验证次数之后,需将该当前不验证次数与预先设置的最大不验证门槛值进行比较;若当前不验证次数大于最大不验证门槛值,说明在当前时刻之前,连续经过较多个节点没有对当前区块进行验证,若当前节点仍不对当前区块进行验证,无法保障当前区块的安全。因此,
当前节点在当前不验证次数大于最大不验证门槛值时,对当前区块进行验证,只有验证通过之后,才会将当前区块存储在节点本地链中,此时,更新当前不验证次数为0,反映当前区块在当前节点经过验证。
83.作为一示例,步骤s403中,区块链中的任一当前节点在获取到当前区块的当前不验证次数之后,需将该当前不验证次数与预先设置的最大不验证门槛值进行比较;若当前不验证次数不大于最大不验证门槛值,说明在当前时刻之前,连续经过较少个节点没有对当前区块进行验证,此时,可执行步骤s102

s104,以使当前节点可根据随机概率和当前验证度确定是否需要对当前区块进行验证,可实现兼顾数据安全和减少验证时间的目的。
84.例如,设置最大不验证门槛值θ,即一个当前区块可最多连续被θ个当前节点不验证,在第θ+1个当前节点获取到该当前区块时,必须验证该当前区块。设相邻两个节点的距离为1,在采用概率验证时,相邻两个节点的平均距离χ为v为当前验证度;χ为在当前验证度v时,相邻两个节点的平均距离。在最坏情况下,区块链网络中所有节点都不对当前区块进行验证,设区块链网络中所有节点的数量为n时,所有节点均不对当前区块进行验证的概率这种最坏情况的发生概率极小但仍可能发生。为了避免最坏情况发生,通过设置最大不验证门槛值θ,初始化最大不验证门槛值θ为0;若当前区块被一个当前节点无需验证而直接存储在节点本地链中,最大不验证门槛值θ加1;若当前区块被一个当前节点验证后再存储在节点本地链时,可将最大不验证门槛值θ更新为0,以保障当前区块一定会被验证。
85.可理解地,通过当前不验证次数和最大不验证门槛值的比较结果,只允许连续经过与最大不验证门槛值数量相匹配的节点无需对当前区块进行验证,即当前不验证次数大于最大不验证门槛值,必要对当前区块进行验证,有助于保障当前区块一定会被区块链网络验证,有助于保障区块链网络的数据安全性。
86.在一实施例中,在步骤s103之后,即在若随机概率小于当前验证度,则对当前区块进行验证,将当前区块存储在节点本地链中之后,区块链中的轻量级概率验证方法还包括:
87.将当前区块对应的当前不验证次数为0;
88.在步骤s104之后,即在若随机概率不小于当前验证度,则直接当前区块存储在节点本地链中之后,区块链中的轻量级概率验证方法还包括:
89.使当前区块对应的当前不验证次数加1,以更新当前区块对应的当前不验证次数。
90.作为一示例,每一区块被广播传输到任一当前节点过程中,在将当前区块存储在节点本地链之后,会更新该当前节点的当前不验证次数,以使该当前区块被传输到下一节点时,下一节点可读取到其当前不验证次数。可理解地,在步骤s103之后,即在若随机概率小于当前验证度,则对当前区块进行验证,将当前区块存储在节点本地链中之后,由于当前节点已经对当前区块进行验证,则可将当前区块对应的当前不验证次数为0。相应地在,步骤s104之后,即在若随机概率不小于当前验证度,则直接当前区块存储在节点本地链中之后,使当前区块对应的当前不验证次数加1,以更新当前区块对应的当前不验证次数,以便当前节点的下一节点可基于更新后的当前不验证次数,重新执行步骤s401

s403。
91.以下针对上述区块链中的轻量级概率验证方法及现有技术中的验证方案进行模拟试验。本示例中,将上述区块链中的轻量级概率验证方法定义为pvs方案(即pvscheme的
简称),将只验证当前区块的区块头的验证方案定义为r1方案(即r1_verify block head only方案)、将只验证当前区块中最关键的工作量共识的验证方案定义为r2方案(即r2_verify block head’s difficulty only方案),以下先介绍模拟实验环境的设置,接着对实验结果进行对比分析。
92.(1)模拟环境的设置
93.本次模拟试验所采用的模拟平台是瑞士苏黎世联邦理工学院实现的开源区块链模拟平台bitcoin

simulator
1.,该模拟平台主要构建在网络模拟平台ns

3上,利用ns

3完成网络架构的搭建。
94.本文实验的软硬件环境如下:
95.硬件环境:一台服务器,内存32gb,硬盘1tb,2个8核cpu
96.软件环境:ubuntu16.04操作系统,区块链模拟平台bitcoin

simulator以及开源网络模拟平台ns
‑397.本文是基于当前区块链的标准协议进行展开的,除了提出的某些改进标准协议的内容外,其它参数设计依然遵循标准协议。本文两部分研究内容是相互平行关系,各自都是基于标准协议做出的改变。
98.(2)实验结果及其分析
99.本部分实验借鉴了在实验中已获得大量肯定的区块链网络模拟平台,并对其进行了符合本部分实验要求的协议修改,增加了本部分实验需要统计的相关参数。
100.在本实验设计中,鉴于区块链网络中可能存在的51%攻击,低于全网一半的节点对区块进行验证可能会对网络带来较大的安全隐患。在此,为充分考虑区块链中安全和性能的权衡,本部分实验设定验证度υ从0.5到1.0,如表1所示。
101.表1实验参数
[0102][0103]
以下分别对验证度υ从0.5到1,进行了5次模拟实验,计算其平均值作为本部分的实验数据。本次设计实验中,共设计1000区块在6000节点间进行广播,其中包含32个矿工节点,统计出下面的实验数据。
[0104]
图5示出不同方案在不同验证度下的同步时间的试验结果。如图5所示,对任意一种方案,随着验证度的增加,其同步时间也随之增加。
[0105]
图6示出不同方案在不同验证度下的废块率的试验结果。如图6所示,随着验证度的增加,不同方案的废块率也随之增加。
[0106]
图7示出不同比例节点在不同验证度下接收区块的传播延时。如图7所示,随着验证度的增加,由于有更多的节点需要验证区块,会产生更多的传播延时。
[0107]
下表2显示不同方案与标准协议进行验证的模拟试验结果。如表2所示,概率验证方案(即psv方案)的结果是优于标准协议的,其废块率降低5.7%(即(1.93%

1.82%)/1.93%=5.7%)。由于区块链中的废块是指没有加入到主链中而是位于分叉中的区块,这些区块是合法,但由于不在主链中,所以无法得到大家的共识。一般来说,废块率与分叉率是相同含义,因此,可以说概率验证方案(即psv方案)可使分叉率降低5.7%。虽然r1方案也会降低废块率,但由于r1方案只验证区块头,r2方案只验证最关键的工作量证明共识(proof of work),而抛弃包含大量数据交易的区块体,存在较大的数据安全问题。从安全性角度来考虑,r1方案和r2方案对区块体内的交易没有验证,不能辨别双重花费交易,也没有考虑出现虚假区块的情况,一旦区块出现错误便会无法修正,其安全性明显不如概率验证方案(即psv方案)。
[0108]
表2不同方案的模拟试验结果
[0109][0110]
从上表2所示,从标准协议方案和pvs方案来看,pvs方案除了不能保证区块时刻的正确性外,拥有标准协议的其它全部特性;但pvs方案牺牲了时刻保证区块正确性的特性,却换来了废块率(即分叉率)的下降,可避免部分由于分叉产生的不安全因素,如自私挖矿等,理论上也从另一个方面提高了全网的安全性。同时,区块链网络本身对实时性要求并不高,牺牲掉一小部分的实时性换来性能和安全的提升。
[0111]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0112]
在一实施例中,提供一种区块链中的轻量级概率验证装置,该区块链中的轻量级概率验证装置与上述实施例中区块链中的轻量级概率验证方法一一对应。各功能模块详细说明如下:
[0113]
当前区块获取模块,用于获取广播传输的当前区块;
[0114]
概率验证度获取模块,用于生成随机概率,并获取当前区块对应的当前验证度;
[0115]
验证处理模块,用于若随机概率小于当前验证度,则对当前区块进行验证,将当前区块存储在节点本地链中;
[0116]
无验证处理模块,用于若随机概率不小于当前验证度,则直接当前区块存储在节点本地链中。
[0117]
优选地,验证处理模块,还用于将当前区块对应的验证标志位设置为1;
[0118]
无验证处理模块,还用于将当前区块对应的验证标志位设置为0。
[0119]
优选地,概率验证度获取模块,包括:
[0120]
目标验证度获取单元,用于采用验证度调整算法,获取当前区块对应的目标验证度;
[0121]
第一当前验证度获取单元,用于若目标验证度大于验证度阈值,则将目标验证度确定为当前区块对应的当前验证度;
[0122]
第二当前验证度获取单元,用于若目标验证度不大于验证度阈值,则将验证度阈值确定为当前区块对应的当前验证度。
[0123]
优选地,验证度调整算法为
[0124]
其中,v
new
为目标验证度;v
old
为历史验证度;t
i
为区块生成时间间隔;t
r
为上一周期验证所用的实际时间;n为一个周期内生成区块的数量。
[0125]
优选地,区块链中的轻量级概率验证装置还包括:
[0126]
当前不验证次数获取模块,用于获取当前区块对应的当前不验证次数;
[0127]
第一不验证次数处理模块,用于若当前不验证次数大于最大不验证门槛值,则对当前区块进行验证,将当前区块存储在节点本地链中,更新当前不验证次数为0;
[0128]
第二不验证次数处理模块,用于若当前不验证次数不大于最大不验证门槛值,则执行最大不验证门槛值。
[0129]
优选地,验证处理模块,还用于将当前区块对应的当前不验证次数为0;
[0130]
无验证处理模块,还用于使当前区块对应的当前不验证次数加1,以更新当前区块对应的当前不验证次数。
[0131]
关于区块链中的轻量级概率验证装置的具体限定可以参见上文中对于区块链中的轻量级概率验证方法的限定,在此不再赘述。上述区块链中的轻量级概率验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于区块链节点中的处理器中,也可以以软件形式存储于区块链节点中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0132]
在一个实施例中,提供了一种区块链节点,该区块链节点包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该区块链节点的处理器用于提供计算和控制
能力。该区块链节点的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该区块链节点的数据库用于执行区块链中的轻量级概率验证方法过程中采用或生成的数据。该区块链节点的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链中的轻量级概率验证方法。
[0133]
在一个实施例中,提供了一种区块链节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中区块链中的轻量级概率验证方法,例如图1所示s101

s104,或者图3至图4中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现区块链中的轻量级概率验证装置这一实施例中的各模块/单元的功能,为避免重复,这里不再赘述。
[0134]
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中区块链中的轻量级概率验证方法,例如图1所示s101

s104,或者图3至图4中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述区块链中的轻量级概率验证装置这一实施例中的各模块/单元的功能,为避免重复,这里不再赘述。
[0135]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0136]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0137]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1