一种区块链中数据的更新方法和装置以及设备与流程

文档序号:23003621发布日期:2020-11-20 11:52阅读:226来源:国知局
一种区块链中数据的更新方法和装置以及设备与流程

本发明涉及区块链技术领域,尤其涉及一种区块链中数据的更新方法和装置以及设备。



背景技术:

区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,可以应用在多个领域。区块链技术的核心优势是去中心化,能够通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。

请参见图1,图1是现有的区块链的链状结构的一举例示意图。如图1所示,在区块链中,数据被组织为不同的区块,并且区块之间通过哈希算法链接起来。具体而言,除了起始区块以外的其它每个区块都会存储上一个区块的哈希值,通过这个链状结构保证整个区块链的不可篡改。

由于区块链发明的初衷之一就是保证链的不可篡改性,因此现有区块链均面临一个问题:如果有非法数据或者不适宜数据进入链中存储,那么该非法数据或者不适宜数据无法从链中清除。

现有的区块链方面均无法很好地解决上述问题。在现有技术框架下,可以解决上述问题的方案是:将整个区块链中的数据备份一遍,并重新组织区块链,以排除区块链中的非法数据或者不适宜数据。

但是,发明人发现现有技术中至少存在如下问题:

现有的区块链中数据的更新方案,需要将整个区块链中的数据备份一遍,并重新组织区块链,以排除区块链中的非法数据或者不适宜数据,这带来极大的计算量,无法实现高效地排除区块链中的非法数据或者不适宜数据。



技术实现要素:

有鉴于此,本发明的目的在于提出一种区块链中数据的更新方法和装置以及设备,能够实现高效地排除区块链中的非法数据或者不适宜数据。

根据本发明的一个方面,提供一种区块链中数据的更新方法,包括:

获取区块中要存储的信息、区块头区块内部数据;

根据所述获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值;

将所述获取的区块中要存储的信息、区块头区块内部数据和所述区块的随机值以及所述计算出的上一区块的关联值,组合成为一个新区块;

将所述组合的新区块替换原区块。

其中,所述根据所述获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值,包括:

根据所述获取的区块中要存储的信息、区块头区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值。

其中,在所述将所述组合的新区块替换原区块之后,还包括:

在需要删除区块链中的其中一个区块时,采用更新所述区块的前一区块的随机值的方式,将所述区块从所述区块链中删除。

其中,所述在需要删除区块链中的其中一个区块时,采用更新所述区块的前一区块的随机值的方式,将所述区块从所述区块链中删除,包括:

在需要删除区块链中的其中一个区块时,获取所述需要删除区块的关联值;其中,所述关联值存储于所述需要删除区块的下一区块中;

以所述关联值为所述需要删除区块的上一区块的关联值,计算所述上一区块的随机值,即以所述需要删除区块的关联值作为所述上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出所述上一区块的随机值;

将所述计算出的所述上一区块的随机值替换所述上一区块中原先记录的随机值,将所述需要删除区块从所述区块链中删除。

根据本发明的另一个方面,提供一种区块链中数据的更新装置,包括:

获取模块、计算模块、组合模块和替换模块;

所述获取模块,用于获取区块中要存储的信息、区块头区块内部数据;

所述计算模块,用于根据所述获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值;

所述组合模块,用于将所述获取的区块中要存储的信息、区块头区块内部数据和所述区块的随机值以及所述计算出的上一区块的关联值,组合成为一个新区块;

所述替换模块,用于将所述组合的新区块替换原区块。

其中,所述计算模块,具体用于:

根据所述获取的区块中要存储的信息、区块头区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值。

其中,所述区块链中数据的更新装置,还包括:

删除模块,用于在需要删除区块链中的其中一个区块时,采用更新所述区块的前一区块的随机值的方式,将所述区块从所述区块链中删除。

其中,所述删除模块,具体用于:

在需要删除区块链中的其中一个区块时,获取所述需要删除区块的关联值,其中,所述关联值存储于所述需要删除区块的下一区块中,和以所述关联值为所述需要删除区块的上一区块的关联值,计算所述上一区块的随机值,即以所述需要删除区块的关联值作为所述上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出所述上一区块的随机值,以及将所述计算出的所述上一区块的随机值替换所述上一区块中原先记录的随机值,将所述需要删除区块从所述区块链中删除。

根据本发明的又一个方面,提供一种区块链中数据的更新设备,其特征在于,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任意一项所述的区块链中数据的更新方法。

根据本发明的再一个方面,提供一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的区块链中数据的更新方法。

可以发现,以上方案,可以获取区块中要存储的信息、区块头区块内部数据,和根据该获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值,和将该获取的区块中要存储的信息、区块头区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块,以及将该组合的新区块替换原区块,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够实现高效地排除区块链中的非法数据或者不适宜数据。

进一步的,以上方案,可以根据获取的区块中要存储的信息、区块头等区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值,能够实现计算上一区块的关联值。

进一步的,以上方案,可以在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

进一步的,以上方案,可以在需要删除区块链中的其中一个区块时,获取该需要删除区块的关联值,其中,该关联值存储于该需要删除区块的下一区块中,和以该关联值为该需要删除区块的上一区块的关联值,计算该上一区块的随机值,即以该需要删除区块的关联值作为该上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块的随机值,以及将该计算出的该上一区块的随机值替换该上一区块中原先记录的随机值,将该需要删除区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明区块链中数据的更新方法一实施例的流程示意图;

图2是本发明区块链中数据的更新方法一实施例的区块链中其中一个单个区块的结构的一举例示意图;

图3是本发明区块链中数据的更新方法一实施例中计算区块的关联值的一举例示意图;

图4是本发明区块链中数据的更新方法另一实施例的流程示意图;

图5是本发明区块链中数据的更新方法另一实施例的一举例示意图;

图6是本发明区块链中数据的更新装置一实施例的结构示意图;

图7是本发明区块链中数据的更新装置另一实施例的结构示意图

图8是本发明区块链中数据的更新设备一实施例的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供一种区块链中数据的更新方法,能够实现高效地排除区块链中的非法数据或者不适宜数据。

请参见图1,图1是本发明区块链中数据的更新方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:

s101:获取区块中要存储的信息、区块头等区块内部数据。

s102:根据该获取的区块中要存储的信息、区块头等区块内部数据,计算上一区块的关联值。

其中,该根据该获取的区块中要存储的信息、区块头等区块内部数据,计算上一区块的关联值,可以包括:

根据该获取的区块中要存储的信息、区块头等区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值,能够实现计算上一区块的关联值。

在本实施例中,由于区块入链即区块入区块链是将该区块添加到区块链的末尾,所以这里所说的上一区块指的是链中即区块链中最后一个区块。

在本实施例中,单向陷门函数可以是有陷门的单向函数,它可以有两个明显特征:一是单向性,二是存在陷门。所谓单向性,也称不可逆性,即对于一个函数y=f(x),若已知x要计算出y很容易,但是已知y要恢复或者说计算出x则很困难,现有计算机算法无法实现计算出x。陷门也称为后门,存在一个值z使得知道z则可以很容易地从上述y计算出满足上述单向函数y=f(x)的x,而不知道z则无法从y计算出满足上述单向函数y=f(x)的x,此时称z为陷门值。

在本实施例中,如上所述,简单的说,在不知道陷门值时,y=f(x)就是单向函数;在知道陷门值时,y=f(x)就不再是单向函数,而是双向计算都很容易的函数。

在本实施例中,请参见图2,图2是本发明区块链中数据的更新方法一实施例的区块链中其中一个单个区块的结构的一举例示意图。如图2所示,该一个单个区块可以包括的信息可以由三部分组成:上一区块的关联值、区块内部数据和本区块的随机值。

在本实施例中,请参见图3,图3是本发明区块链中数据的更新方法一实施例中计算区块的关联值的一举例示意图。如图3所示,区块的关联值由输入上个区块的哈希值、上个区块的随机值、陷门值,并进行单向陷门函数计算过程,从而计算所得。

s103:将该获取的区块中要存储的信息、区块头等区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块。

在本实施例中,该区块的随机值可以是一个随机选取的随机值,本发明不加以限定。

s104:将该组合的新区块替换原区块。

其中,在该将该组合的新区块替换原区块之后,还可以包括:

在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

可以发现,在本实施例中,可以可以获取区块中要存储的信息、区块头区块内部数据,和根据该获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值,和将该获取的区块中要存储的信息、区块头区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块,以及将该组合的新区块替换原区块,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够实现高效地排除区块链中的非法数据或者不适宜数据。

进一步的,在本实施例中,可以根据获取的区块中要存储的信息、区块头等区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值,能够实现计算上一区块的关联值。

请参见图4,图4是本发明区块链中数据的更新方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:

s401:获取区块中要存储的信息、区块头等区块内部数据。

s402:根据该获取的区块中要存储的信息、区块头等区块内部数据,计算上一区块的关联值。

可如上s102所述,在此不作赘述。

s403:将该获取的区块中要存储的信息、区块头等区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块。

可如上s103所述,在此不作赘述。

s404:将该组合的新区块替换原区块。

s405:在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除。

其中,该在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除,可以包括:

在需要删除区块链中的其中一个区块时,获取该需要删除区块的关联值;其中,该关联值存储于该需要删除区块的下一区块中;

以该关联值为该需要删除区块的上一区块的关联值,计算该上一区块的随机值,即以该需要删除区块的关联值作为该上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块的随机值;

将该计算出的该上一区块的随机值替换该上一区块中原先记录的随机值,将该需要删除区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

可以发现,在本实施例中,可以在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

进一步的,在本实施例中,可以在需要删除区块链中的其中一个区块时,获取该需要删除区块的关联值,其中,该关联值存储于该需要删除区块的下一区块中,和以该关联值为该需要删除区块的上一区块的关联值,计算该上一区块的随机值,即以该需要删除区块的关联值作为该上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块的随机值,以及将该计算出的该上一区块的随机值替换该上一区块中原先记录的随机值,将该需要删除区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

下面进行举例说明本实施例:

请参见图5,图5是本发明区块链中数据的更新方法另一实施例的一举例示意图。如图5所示,可以获取需要删除区块即图5中区块n+1的关联值,该关联值存储于该需要删除区块的下一区块即图5中区块n+2中;可以以该关联值为该需要删除区块的上一区块即图5中区块n的关联值,计算该上一区块的随机值,即以该需要删除区块n+1的关联值作为该上一区块n的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块n的随机值,反推计算过程可如图4所示;以及将上一步中计算出的随机值替换该上一区块即图5中区块n中原先记录的随机值,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

本发明还提供一种区块链中数据的更新装置,能够实现高效地排除区块链中的非法数据或者不适宜数据。

请参见图6,图6是本发明区块链中数据的更新装置一实施例的结构示意图。本实施例中,该区块链中数据的更新装置60包括获取模块61、计算模块62、组合模块63和替换模块64。

该获取模块61,用于获取区块中要存储的信息、区块头等区块内部数据。

该计算模块62,用于根据该获取的区块中要存储的信息、区块头等区块内部数据,计算上一区块的关联值。

该组合模块63,用于将该获取的区块中要存储的信息、区块头等区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块。

该替换模块64,用于将该组合的新区块替换原区块。

可选地,该计算模块62,可以具体用于:

根据该获取的区块中要存储的信息、区块头等区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值。

请参见图7,图7是本发明区块链中数据的更新装置另一实施例的结构示意图。区别于上一实施例,本实施例所述区块链中数据的更新装置70还包括:删除模块71。

该删除模块71,用于在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除。

可选地,该删除模块71,可以具体用于:

在需要删除区块链中的其中一个区块时,获取该需要删除区块的关联值,其中,该关联值存储于该需要删除区块的下一区块中,和以该关联值为该需要删除区块的上一区块的关联值,计算该上一区块的随机值,即以该需要删除区块的关联值作为该上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块的随机值,以及将该计算出的该上一区块的随机值替换该上一区块中原先记录的随机值,将该需要删除区块从该区块链中删除。

该区块链中数据的更新装置60/70的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。

本发明又提供一种区块链中数据的更新设备,如图8所示,包括:至少一个处理器81;以及,与至少一个处理器81通信连接的存储器82;其中,存储器82存储有可被至少一个处理器81执行的指令,指令被至少一个处理器81执行,以使至少一个处理器81能够执行上述的区块链中数据的更新方法。

其中,存储器82和处理器81采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器81和存储器82的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器81处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器81。

处理器81负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器82可以被用于存储处理器81在执行操作时所使用的数据。

本发明再提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

可以发现,以上方案,可以获取区块中要存储的信息、区块头区块内部数据,和根据该获取的区块中要存储的信息、区块头区块内部数据,计算上一区块的关联值,和将该获取的区块中要存储的信息、区块头区块内部数据和该区块的随机值以及该计算出的上一区块的关联值,组合成为一个新区块,以及将该组合的新区块替换原区块,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够实现高效地排除区块链中的非法数据或者不适宜数据。

进一步的,以上方案,可以根据获取的区块中要存储的信息、区块头等区块内部数据,输入上一区块的哈希值、上一区块的随机值、陷门值,通过单向陷门函数的计算方式,计算上一区块的关联值,能够实现计算上一区块的关联值。

进一步的,以上方案,可以在需要删除区块链中的其中一个区块时,采用更新该区块的前一区块的随机值的方式,将该区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

进一步的,以上方案,可以在需要删除区块链中的其中一个区块时,获取该需要删除区块的关联值,其中,该关联值存储于该需要删除区块的下一区块中,和以该关联值为该需要删除区块的上一区块的关联值,计算该上一区块的随机值,即以该需要删除区块的关联值作为该上一区块的关联值,根据关联值、哈希值、陷门值进一步反向计算出该上一区块的随机值,以及将该计算出的该上一区块的随机值替换该上一区块中原先记录的随机值,将该需要删除区块从该区块链中删除,能够实现仅更新需要删除的区块的前一区块的随机值的方式,将该需要删除的区块从该区块链中删除,无需将整个区块链中的数据备份一遍,无需重新组织区块链,计算量小,能够高效地从区块链中删除需要删除的区块。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1