CN112507014B - 一种基于可信账本数据库的数据存储方法、装置及系统 - Google Patents

一种基于可信账本数据库的数据存储方法、装置及系统 Download PDF

Info

Publication number
CN112507014B
CN112507014B CN202110170277.9A CN202110170277A CN112507014B CN 112507014 B CN112507014 B CN 112507014B CN 202110170277 A CN202110170277 A CN 202110170277A CN 112507014 B CN112507014 B CN 112507014B
Authority
CN
China
Prior art keywords
data
big data
data set
trusted
trusted storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110170277.9A
Other languages
English (en)
Other versions
CN112507014A (zh
Inventor
孟硕
管亚阳
俞本权
关涛
张良模
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd, Ant Blockchain Technology Shanghai Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110170277.9A priority Critical patent/CN112507014B/zh
Priority to CN202110831518.XA priority patent/CN113434603A/zh
Publication of CN112507014A publication Critical patent/CN112507014A/zh
Application granted granted Critical
Publication of CN112507014B publication Critical patent/CN112507014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Abstract

本说明书公开了一种基于可信账本数据库的数据存储方法、装置及系统。所述方法包括:大数据客户端将目标数据集发送到大数据服务端,并将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;在指定情况下,大数据服务端针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;大数据服务端针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;可信存储端维护有可信账本数据库;可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库。

Description

一种基于可信账本数据库的数据存储方法、装置及系统
技术领域
本说明书实施例涉及数据存储领域,尤其涉及一种基于可信账本数据库的数据存储方法、装置及系统。
背景技术
大数据分析主要用于根据客户的需求针对海量数据进行分析。而在大数据分析的过程中,可能存在客户数据不准确、以及数据处理出错等问题。例如,客户数据缺失或冗余、客户数据存在错误数据、或者数据的分析过程被错误执行等等。
出现这些问题的原因可能是客户出错,也可能是大数据分析的服务商出错,也可能是数据传输过程中出错等等。
但由于大数据分析是中心化的,客户与大数据分析服务商之间难以在技术层面互相信任,从而难以在出现上述问题时确定责任方。
发明内容
为了解决上述技术问题,本说明书提供了一种基于可信账本数据库的数据存储方法、装置及系统。技术方案如下所示。
一种基于可信账本数据库的数据存储方法,包括:
大数据客户端将目标数据集发送到大数据服务端,并将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
在指定情况下,大数据服务端针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;
大数据服务端针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
其中,所述可信存储端维护有可信账本数据库;所述可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
一种基于可信账本数据库的数据存储系统,包括大数据客户端、大数据服务端和可信存储端;
大数据客户端用于:将目标数据集发送到大数据服务端,并将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
大数据服务端用于:在指定情况下,针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
其中,所述可信存储端维护有可信账本数据库;
所述可信存储端用于:根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
一种基于可信账本数据库的数据存储装置,应用于大数据服务端;所述装置包括:
接收单元:用于接收大数据客户端发送的目标数据集;其中,所述大数据客户端还将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
预处理单元:用于在指定情况下,针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;
分析单元:用于针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
其中,所述可信存储端维护有可信账本数据库;所述可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
通过上述技术方案,可以通过将大数据分析的全流程相关信息(包括数据记录、预处理过程记录和分析过程记录)都存储到可信账本数据库中,基于可信账本数据库实现对大数据分析全流程相关信息的可信存储,使得大数据分析中的每个步骤都可以根据可信存储的全流程相关信息进行核验,从而便于在出现问题时确定过错的责任方,不会产生争议。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种全局默克尔树的结构示意图;
图2是本说明书实施例提供的一种基于可信账本数据库的数据存储方法的流程示意图;
图3是本说明书实施例提供的一种分析结果核验方法的流程示意图;
图4是本说明书实施例提供的一种基于可信账本数据库的数据存储系统的结构示意图;
图5是本说明书实施例提供的一种基于可信账本数据库的数据存储装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
大数据分析主要用于根据客户的需求针对海量数据进行分析。而在大数据分析的过程中,可能存在客户数据不准确、以及数据处理出错等问题。例如,客户数据缺失或冗余、客户数据存在错误数据、或者数据的分析过程被错误执行等等。
出现这些问题的原因可能是客户出错,也可能是大数据分析的服务商出错,也可能是数据传输过程中出错等等。
例如,客户在选择需要进行大数据分析的海量数据时,通常是人工进行选择,从而容易出现选择错误;大数据分析的服务商在接收海量数据时,可能出于疏忽或程序问题遗漏部分数据;大数据分析的服务商也可能主观故意遗漏部分数据,减少计算量,节省成本,由于大数据分析结果通常是业务层面的结果,所以难以发现这一问题;在海量数据的传输过程中,也可能由于传输技术的限制,存在部分数据未传输成功、或者传输错误等问题。
在出现上述问题后,由于大数据分析是中心化的,客户与大数据分析服务商之间难以在技术层面互相信任,从而难以在出现上述问题时确定责任方。
例如,实际的出错原因是海量数据在传输过程中出现问题,而客户确定自己发送出去的数据没有问题,同时大数据分析的服务商也确定自己并未对接收到的数据进行任何篡改,进而导致双方进行无意义的互相指责。
为了便于在技术层面互相信任,便于及时确定过错的责任方,本说明书提供了一种基于可信账本数据库的数据存储方法。
其中,可信存储是指信息在进行可信存储后,技术上难以修改信息,或者对信息的修改一定会被发现。
该方法中提供了一个可信存储端,可以将大数据分析全流程中的相关信息存储到可信存储端中,从而基于可信存储端在技术层面的难以修改,客户和大数据分析的服务商都可以信任其中存储的大数据分析全流程中的相关信息,进而便于确定过错的责任方。其中,大数据分析全流程中的相关信息也可以视为针对大数据分析全流程的审计信息,方便后续针对大数据分析全流程的审计。
下面针对可信存储端中存储的数据在技术层面的难以修改进行解释。
可信存储端可以维护有可信账本数据库,其中存储有可信存储端进行可信存储的数据。可信账本数据库可以是一种中心化的数据库。因此,基于可信账本数据库进行可信存储,相对于其他去中心化或分布式可信存储的方案,存储效率较高,存储成本较低。
可信账本数据库的结构可以与普通的数据库相同,也可以与区块链结构相同。在一种可选的实施例中,可信账本数据库中的可信账本可以是块链式账本。本说明书并不限定。其中,如果可信账本数据库的结构与区块链结构相同,则难以对已经存储的信息进行修改,否则需要针对后续的每个区块都进行修改和重新计算。
而可信账本数据库的可信程度可以通过以下3个方面体现。
1、全局默克尔树。
针对可信账本数据库中每个信息,全局默克尔树都存在一个叶子节点与之对应。
在一种可选的实施例中,针对可信账本数据库中的每个信息,可以计算该信息的哈希值作为叶子节点,添加到全局默克尔树中。
而在全局默克尔树中,可以针对两个子节点对应的哈希值,综合计算新的哈希值(具体可以是将两个子节点对应的哈希值加和,再计算和的哈希值;或者将两个子节点对应的哈希值拼接起来,再计算拼接结果的哈希值),作为这两个子节点的父节点。通过不断计算得到父节点,可以在全局默克尔树中确定根节点对应的哈希值。
为了便于更好地理解全局默克尔树,如图1所示,为本说明书提供的一种全局默克尔树的结构示意图。
其中包括了两种全局默克尔树结构,一种结构中,针对全部的叶子节点进行两两分组,计算父节点;再针对计算得到的节点进行两两分组,计算父节点。其中,如果两两分组中存在遗漏的单个子节点,则可以将该子节点对应的哈希值复制一份,得到两个子节点计算父节点。经过不断计算父节点,最终可以确定出根节点对应的哈希值(即根哈希)。
另一种结构中,对于每个新增的叶子节点,可以与当前的根节点共同作为两个子节点,计算得到父节点,并将计算得到的父节点作为根节点。
可以理解的是,在一种可选的实施例中,针对可信账本数据库,每增加一个信息,可以计算对应的哈希值得到叶子节点,进而基于上述两两分组计算更新根哈希,或者根据叶子节点和当前的根节点计算更新根哈希。
在一种可选的实施例中,可以在预设时间计划制定的每个时间点(即周期性、或者不定期)将该时间点对应的根哈希返回给客户。由于客户保留有历史的根哈希,则客户具有核验可信存储端是否修改信息的能力,可以发现对信息的修改。
需要注意的是,可以并不持续更新全局默克尔树,即并不会每存储一个信息就更新全局默克尔树和根哈希,而是可以在需要生成根哈希返回给客户时,再即时根据存储的全部信息更新全局默克尔树和根哈希,从而提高计算资源的利用率,降低存储所需时延。
通过上述全局默克尔树,可以将可信账本数据库中的全部信息关联起来,如果后续修改任意一个信息,则整个全局默克尔树都要修改,重新计算父节点以及根哈希,增加了后续修改信息的难度,从而使得可信存储端难以修改存储到可信账本数据库中的信息,实现了技术层面的可信存储,无需业务层面的信任。
2、多方签名。
在一种可选的实施例中,针对可信账本数据库中的信息,可以由发送信息的设备进行数字签名,从而防止设备抵赖,也可以防止可信存储端对信息进行后续修改。如果可信存储端对信息进行了后续修改,则修改后的信息无法与数字签名匹配,即验签无法通过。
在另一种可选的实施例中,针对可信账本数据库中的信息,为了明确信息存入可信账本数据库中的时间,也为了防止可信存储端与信息发送方串通作恶,可以针对信息增加时间戳。为了保证时间戳的可信,具体可以由可信存储端将信息(或信息的唯一标识,例如信息的哈希值)发送到可信授时机构,由可信授时结构针对接收到的信息和当前时间点进行数字签名,并返回到可信存储端。显然,可信授时机构只会基于当前时间点进行签名。如果发生可信存储端与信息发送方串通作恶,修改已存储的信息,也无法使得可信授时机构针对过去的时间点进行签名,只会基于当前时间点进行签名,从而可以核验出针对信息在不同时间点的后续修改。
由于针对每个信息进行可信授时签名会导致存储时延较大,且后续修改通常发生在信息存储之后的较长时间,因此,可以每隔一段时间,针对这段时间内存储的全部信息进行可信授时签名,降低存储时延;也可以每存储预设数量个信息,针对这些信息进行可信授时签名,降低存储时延。
此外,在一种可选的实施例中,可信存储端在存储某一信息后,可以将可信存储端针对该信息的签名返回给信息发送方,从而确定可信存储端已经存储该信息,可信存储端难以抵赖。
3、公网账本。
在一种可选的实施例中,针对全局默克尔树,可以将历史的根哈希存储到公网账本中。其中,公网账本可以被公网中任一设备获取,可信存储端无法确定公网账本中的历史根哈希被哪些设备获取,从而基于公开性质,警示可信存储端不能针对历史根哈希进行后续修改,提高可信程度。
经过上述针对可信存储端的分析,可以实现在技术层面的可信存储,无需业务层面的信任。在本说明书提供的一种基于可信账本数据库的数据存储方法中,具体可以是将客户数据(或者客户数据的哈希值)、以及大数据分析中包含的全部操作记录都存储到可信存储端的可信账本数据库中。
下面结合附图,对本说明书提供的一种基于可信账本数据库的数据存储方法进行详细解释。
如图2所示,为本说明书提供的一种基于可信账本数据库的数据存储方法的流程示意图。该方法涉及大数据客户端、大数据服务端和可信存储端。其中可信存储端可以参见上述解释,大数据客户端即为具有大数据分析需求的客户的设备,大数据服务端即为提供大数据分析服务的服务商的设备。
该方法可以至少包括以下步骤。
S101:大数据客户端将目标数据集发送到大数据服务端,并将包含对应于目标数据集的哈希值集合的数据记录发送到可信存储端。
S101中,大数据客户端分别向大数据服务端和可信存储端发送数据,这两个操作之间的时序并不限定,可以是并行执行,也可以是具有先后顺序。
其中,目标数据集可以是客户所需要进行大数据分析的数据集合。
针对大数据客户端向大数据服务端发送的目标数据集,在一种可选的实施例中,为了保证数据安全,可以利用大数据服务端的公钥针对目标数据集进行加密,使得只有大数据服务端可以解密查看。
在另一种可选的实施例中,为了确保大数据客户端不会抵赖,大数据客户端还可以向大数据服务端发送大数据客户端针对目标数据集的数字签名。具体可以是以目标数据集中的全部数据为计算对象,执行一次哈希操作,得到单个哈希值,并利用大数据客户端的私钥针对该哈希值进行加密,得到数字签名。
在基于目标数据集进行可信存储时,通常可以将全部的目标数据集发送到可信存储端进行可信存储,其中为了防止数据泄露,目标数据集可以是加密的,具体可以是利用大数据客户端的公钥加密,使得只有大数据客户端可以查看可信存储端中的目标数据集。
但这种实施例的存储成本太高,在一种可选的实施例中,可以存储目标数据集的唯一标识,例如,目标数据集的哈希值集合。
针对哈希值集合,获取方法可以是以目标数据集中的全部数据为计算对象,执行一次哈希操作,得到一个哈希值;或者针对目标数据集中的每条数据,以该条数据为计算对象,执行一次哈希操作,得到对应于该条数据的哈希值。
此外,为了便于定位被修改的数据,基于哈希值集合中包括每条数据的哈希值这一实施例,大数据客户端还可以将每条数据的哈希值与该条数据的标识之间的对应关系发送到可信存储端进行可信存储。数据的标识具体可以是数据的主键值、或者唯一的标号,可以在目标数据集中唯一确定对应的数据。
显然,如果存在某条数据的哈希值出现问题,则可以根据对应的数据表示确定目标数据集对应的错误数据。
为了进一步提高大数据客户端的目标数据集的可信程度,在一种可选的实施例中,还可以将目标数据集的元数据发送到可信存储端进行可信存储。在另一种可选的实施例中,还可以为目标数据集的元数据、哈希值集合、或者每条数据的哈希值与该条数据的标识之间的对应关系添加时间戳,防止可信存储端与大数据客户端串通修改。时间戳的具体示例可以参见上述可信账本数据库中多方签名中可信授时机构的签名。
S102:在指定情况下,大数据服务端针对目标数据集进行预处理,将预处理后的目标数据集作为待分析数据集,并将相应的预处理过程记录发送到可信存储端。
在进行预处理之前,为了防止大数据客户端实际需要进行大数据分析的目标数据集、与大数据服务端接收到的目标数据集不同(例如,客户基于人工发送错误数据、或者传输过程中数据丢失),可以针对目标数据集进行核验。
指定情况可以是表征目标数据集通过核验的情况。
在一种可选的实施例中,基于上述S101中大数据客户端针对目标数据集的签名,可以进行签名验证,核验目标数据集是否被修改。
具体可以是大数据服务端以接收到的目标数据集为计算对象,执行一次哈希操作,得到单个待核验哈希值。再针对接收到的数字签名,利用大数据客户端的公钥进行解密,得到标准哈希值。
如果待核验哈希值与标准哈希值相同,则可以确定目标数据集没有被修改,即使客户认为数据存在错误,也可以定位问题在客户,而不是传输过程中出现错误或大数据服务端修改了数据。
如果待核验哈希值与标准哈希值不同,则可以确定目标数据集发生了修改,可以请求大数据客户端再次发送正确的目标数据集。
相对应的,指定情况具体可以是目标数据集没有被修改。
在另一种可选的实施例中,由于目标数据集的唯一标识已经存储到可信存储端,则可以利用这一唯一标识进行核验。
具体可以是大数据服务端获取写入可信存储端的数据记录,检验数据记录中包含的哈希值集合是否与目标数据集匹配。
对应于上述哈希值集合的不同获取方法,大数据服务端可以针对接收到的目标数据集进行相同的哈希值集合获取方法,确定待核验哈希值集合,进而可以核验待核验哈希值集合与数据记录中包含的哈希值集合是否相同。
如果相同,则可以确定目标数据集没有被修改,可以执行后续步骤;如果不同,则可以确定目标数据集发生了修改,可以请求大数据客户端再次发送正确的目标数据集。
相对应地,指定情况具体可以是数据记录中包含的哈希值集合与目标数据集匹配。
在指定情况下,大数据分析的服务商在实际进行大数据分析之前,需要针对客户的数据进行预处理。预处理可以包括:依次执行数据抽取、数据清洗与数据转换。
其中,数据抽取可以是从客户数据(目标数据集)中抽取出与大数据分析相关的数据;数据清洗可以是从客户数据(目标数据集)中筛选有分析价值的数据,从而避免误差数据或者其他影响分析的数据对分析结果产生影响,例如,在针对用户数据进行大数据分析时,可以清洗其中的违规用户、虚假用户等;数据转换可以是将客户数据(目标数据集)的数据结构转换成大数据分析所需的数据结构,例如,在针对用户数据进行大数据分析时,用户数据中的字段包含“username”,而在大数据分析时,需要统一转换为“用户名”,从而方便后续的大数据分析。
经过预处理后,可以得到待分析数据集。
为了保留完整的全流程相关信息,需要将预处理相关的记录存储到可信储存端,在一种可选的实施例中,可以将预处理过程记录发送到可信存储端进行可信存储,其中,预处理过程记录包括预处理过程中执行的每个操作信息。
在后续进行数据核验时,基于可信存储端所存储的、预处理过程中的每个操作信息,可以还原针对目标数据集的每个操作,从而实现针对全流程中预处理过程的核验。
进一步地,在另一种可选的实施例中,预处理过程记录可以包括预处理过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果。
基于中间操作结果,可以逐步核验预处理过程中每个操作及对应的操作结果,进而定位其中出现问题的操作。
为了节约存储成本,在另一种可选的实施例中,预处理过程记录可以包括预处理过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果的唯一标识。
唯一标识具体可以是中间操作结果的哈希值。在后续数据核验的过程中,可以从大数据服务端获取中间操作结果,逐步核验预处理过程中每个操作及对应的操作结果。由于可信存储端存储有中间操作结果的哈希值,则可以核验大数据服务端的中间操作结果是否修改。
同样为了节约存储成本,在另一种可选的实施例中,预处理过程记录可以包括预处理过程中执行的每个操作信息、以及部分操作信息的中间操作结果(或者对应于部分操作信息的中间操作结果的唯一标识)。
S103:大数据服务端针对待分析数据集执行大数据分析,并将相应的分析过程记录发送到可信存储端。
其中,参见上述预处理过程记录,分析过程记录可以包括:大数据分析过程中执行的每个操作信息;或者大数据分析过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果;或者大数据分析过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果的唯一标识(哈希值)。
其他解释也可以参见上述预处理过程记录的解释,此处不再赘述。
此外,在一种可选的实施例中,大数据服务端可以将大数据分析的分析结果发送到可信存储端;可信存储端可以将分析结果写入可信账本数据库。
而针对可信存储端,可信存储端可以维护有可信账本数据库;可信存储端根据接收到各记录的先后顺序,依次将每个记录写入可信账本数据库;可信存储端可以在预设时间计划指定的每个时间点(可以是定期或不定期),将该时间点对应的全局哈希提供给大数据客户端;全局哈希,可以是在该时间点,基于可信账本数据库中全部记录构建的默克尔树的根哈希。
需要注意的是,参见上述针对可信账本数据库中的多方签名的解释,在一种可选的实施例中,可以在接收到各记录之后,针对各记录的签名进行核验,确定签名与对应的记录匹配,才能将该记录写入可信账本数据库。
通过上述方法流程,可以通过将大数据分析的全流程相关信息(包括数据记录、预处理过程记录和分析过程记录)都存储到可信账本数据库中,基于可信账本数据库实现对大数据分析全流程相关信息的可信存储,使得大数据分析中的每个步骤都可以根据可信存储的全流程相关信息进行核验,从而便于在出现问题时确定过错的责任方,不会产生争议。
本说明书还提供了一种基于上述方法流程的分析结果核验方法实施例。
如图3所示,为本说明书提供的一种分析结果核验方法的流程示意图。其中,大数据客户端已经获取到大数据服务端进行大数据分析的分析结果,但大数据客户端希望针对整个大数据分析全流程进行核验,可以通过本实施例实现。
该方法可以包括以下步骤。
S201:大数据客户端获取可信存储端存储的对应于目标数据集的哈希值集合,检验哈希值集合是否与大数据客户端存储的目标数据集匹配。
S202:如果匹配,则获取可信存储端存储的预处理过程记录,并基于预处理过程记录,针对大数据客户端存储的目标数据集执行同样的操作,得到待核验数据集。
相对应地,如果不匹配,则可以不执行后续步骤,确定大数据客户端的目标数据集存在问题。
S203:获取可信存储端存储的分析过程记录,并基于分析过程记录,针对待核验数据集执行同样的操作,得到待核验分析结果。
S204:大数据客户端检验待核验分析结果、与大数据分析的分析结果是否相同。
如果相同,则可以确定大数据分析的全流程不存在问题。
如果不相同,则可以确定大数据分析的全流程中存在问题,并且确定大数据服务端存在问题。在一种可选的实施例中,如果可信存储端中还存储有每个操作记录的中间操作结果,则可以快速确定存在问题的操作记录。
本说明书还提供了一种系统实施例。
如图4所示,为本说明书提供的一种基于可信账本数据库的数据存储系统的结构示意图。其中,该系统可以包括大数据客户端301、大数据服务端302和可信存储端303。
大数据客户端301可以用于:将目标数据集发送到大数据服务端302,并将包含对应于目标数据集的哈希值集合的数据记录发送到可信存储端303。
大数据服务端302可以用于:在指定情况下,针对目标数据集进行预处理,将预处理后的目标数据集作为待分析数据集,并将相应的预处理过程记录发送到可信存储端303;预处理可以包括:依次执行数据抽取、数据清洗与数据转换;针对待分析数据集执行大数据分析,并将相应的分析过程记录发送到可信存储端303。
其中,可信存储端303可以维护有可信账本数据库。
可信存储端303可以用于:根据接收到各记录的先后顺序,依次将每个记录写入可信账本数据库;可信存储端303在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给大数据客户端301;全局哈希,是在该时间点,基于账本数据库中全部记录构建的默克尔树的根哈希。
大数据客户端301还可以用于:获取可信存储端303存储的对应于目标数据集的哈希值集合,检验哈希值集合是否与本地存储的目标数据集匹配;如果匹配,则获取可信存储端303存储的预处理过程记录,并基于预处理过程记录,针对本地存储的目标数据集执行同样的操作,得到待核验数据集;获取可信存储端303存储的分析过程记录,并基于分析过程记录,针对待核验数据集执行同样的操作,得到待核验分析结果;检验待核验分析结果、与大数据分析的分析结果是否相同。
本说明书还提供了一种装置实施例。
如图5所示,为本说明书提供的一种基于可信账本数据库的数据存储装置的结构示意图。该装置可以应用于大数据服务端,可以至少包括以下单元。
接收单元401:用于接收大数据客户端发送的目标数据集;其中,大数据客户端还将包含对应于目标数据集的哈希值集合的数据记录发送到可信存储端。
预处理单元402:用于在指定情况下,针对目标数据集进行预处理,将预处理后的目标数据集作为待分析数据集,并将相应的预处理过程记录发送到可信存储端;预处理包括:依次执行数据抽取、数据清洗与数据转换。
分析单元403:用于针对待分析数据集执行大数据分析,并将相应的分析过程记录发送到可信存储端。
其中,可信存储端维护有可信账本数据库;可信存储端根据接收到各记录的先后顺序,依次将每个记录写入可信账本数据库;可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给大数据客户端;全局哈希,是在该时间点,基于账本数据库中全部记录构建的默克尔树的根哈希。
上述系统实施例和装置实施例的解释可以参见上述方法实施例,此处不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如图2所示的一种基于可信账本数据库的数据存储方法中大数据服务端执行的操作,或者如图3所示的一种分析结果核验方法。
图6示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图2所示的一种基于可信账本数据库的数据存储方法中大数据服务端执行的操作,或者如图3所示的一种分析结果核验方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。

Claims (14)

1.一种基于可信账本数据库的数据存储方法,包括:
大数据客户端将目标数据集发送到大数据服务端,并将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
在指定情况下,大数据服务端针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;
大数据服务端针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
大数据客户端获取大数据服务端的大数据分析结果;
大数据客户端基于从所述可信存储端获取的所述预处理过程记录和所述分析过程记录,对所述目标数据集执行操作,得到待核验分析结果,并检验所述待核验分析结果与所述大数据分析结果是否相同;
其中,所述可信存储端维护有可信账本数据库;所述可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
2.根据权利要求1所述的方法,在进行预处理之前,还包括:
大数据服务端获取写入所述可信存储端的所述数据记录,检验所述数据记录中包含的哈希值集合是否与接收到的目标数据集匹配;
所述指定情况包括:所述数据记录中包含的哈希值集合与接收到的目标数据集匹配。
3.根据权利要求1所述的方法,在进行预处理之前,还包括:
大数据客户端将针对所述目标数据集的数字签名发送到大数据服务端;
大数据服务端根据接收到的数字签名核验接收到的目标数据集是否被修改;
所述指定情况包括:所述目标数据集没有被修改。
4.根据权利要求1所述的方法,所述哈希值集合的获取方法包括:
以所述目标数据集中的全部数据为计算对象,执行一次哈希操作,得到一个哈希值;
或者
针对所述目标数据集中的每条数据,以该条数据为计算对象,执行一次哈希操作,得到对应于该条数据的哈希值。
5.根据权利要求1所述的方法,所述预处理过程记录包括:
所述预处理过程中执行的每个操作信息;
或者
所述预处理过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果。
6.根据权利要求1所述的方法,所述分析过程记录包括:
所述大数据分析过程中执行的每个操作信息;
或者
所述大数据分析过程中执行的每个操作信息、以及对应于每个操作信息的中间操作结果。
7.根据权利要求1所述的方法,还包括:
大数据服务端将所述大数据分析的分析结果发送到所述可信存储端;
所述可信存储端将所述大数据分析的分析结果写入所述可信账本数据库。
8.根据权利要求1所述的方法,所述可信账本为块链式账本。
9.一种基于权利要求1-8任一项所述方法的分析结果核验方法,包括:
大数据客户端获取可信存储端存储的对应于目标数据集的哈希值集合,检验所述哈希值集合是否与大数据客户端存储的目标数据集匹配;
如果匹配,则获取所述可信存储端存储的预处理过程记录,并基于所述预处理过程记录,针对大数据客户端存储的目标数据集执行同样的操作,得到待核验数据集;
获取所述可信存储端存储的分析过程记录,并基于所述分析过程记录,针对所述待核验数据集执行同样的操作,得到待核验分析结果;
大数据客户端检验所述待核验分析结果、与大数据分析的分析结果是否相同。
10.一种基于可信账本数据库的数据存储方法,应用于大数据服务端;所述方法包括:
接收大数据客户端发送的目标数据集;其中,所述大数据客户端还将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
在指定情况下,针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;
针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
向大数据客户端发送大数据分析结果,以便于大数据客户端基于从所述可信存储端获取的所述预处理过程记录和所述分析过程记录,对所述目标数据集执行操作,得到待核验分析结果,并检验所述待核验分析结果与所述大数据分析结果是否相同;
其中,所述可信存储端维护有可信账本数据库;所述可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
11.一种基于可信账本数据库的数据存储系统,包括大数据客户端、大数据服务端和可信存储端;
大数据客户端用于:将目标数据集发送到大数据服务端,并将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;获取大数据服务端的大数据分析结果;基于从所述可信存储端获取的预处理过程记录和分析过程记录,对所述目标数据集执行操作,得到待核验分析结果,并检验所述待核验分析结果与所述大数据分析结果是否相同;
大数据服务端用于:在指定情况下,针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;
其中,所述可信存储端维护有可信账本数据库;
所述可信存储端用于:根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
12.根据权利要求11所述的系统,所述大数据客户端还用于:
获取可信存储端存储的对应于目标数据集的哈希值集合,检验所述哈希值集合是否与本地存储的目标数据集匹配;
如果匹配,则获取所述可信存储端存储的预处理过程记录,并基于所述预处理过程记录,针对本地存储的目标数据集执行同样的操作,得到待核验数据集;
获取所述可信存储端存储的分析过程记录,并基于所述分析过程记录,针对所述待核验数据集执行同样的操作,得到待核验分析结果;
检验所述待核验分析结果、与大数据分析的分析结果是否相同。
13.一种基于可信账本数据库的数据存储装置,应用于大数据服务端;所述装置包括:
接收单元:用于接收大数据客户端发送的目标数据集;其中,所述大数据客户端还将包含对应于所述目标数据集的哈希值集合的数据记录发送到可信存储端;
预处理单元:用于在指定情况下,针对所述目标数据集进行预处理,将预处理后的所述目标数据集作为待分析数据集,并将相应的预处理过程记录发送到所述可信存储端;所述预处理包括:依次执行数据抽取、数据清洗与数据转换;
分析单元:用于针对所述待分析数据集执行大数据分析,并将相应的分析过程记录发送到所述可信存储端;向大数据客户端发送大数据分析结果,以便于大数据客户端基于从所述可信存储端获取的所述预处理过程记录和所述分析过程记录,对所述目标数据集执行操作,得到待核验分析结果,并检验所述待核验分析结果与所述大数据分析结果是否相同;
其中,所述可信存储端维护有可信账本数据库;所述可信存储端根据接收到各记录的先后顺序,依次将每个记录写入所述可信账本数据库;所述可信存储端在预设时间计划指定的每个时间点,将该时间点对应的全局哈希提供给所述大数据客户端;所述全局哈希,是在该时间点,基于所述账本数据库中全部记录构建的默克尔树的根哈希。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求9或10所述的方法。
CN202110170277.9A 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统 Active CN112507014B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110170277.9A CN112507014B (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统
CN202110831518.XA CN113434603A (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110170277.9A CN112507014B (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110831518.XA Division CN113434603A (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统

Publications (2)

Publication Number Publication Date
CN112507014A CN112507014A (zh) 2021-03-16
CN112507014B true CN112507014B (zh) 2021-06-04

Family

ID=74952820

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110170277.9A Active CN112507014B (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统
CN202110831518.XA Pending CN113434603A (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110831518.XA Pending CN113434603A (zh) 2021-02-07 2021-02-07 一种基于可信账本数据库的数据存储方法、装置及系统

Country Status (1)

Country Link
CN (2) CN112507014B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561650B (zh) * 2023-07-10 2023-09-19 中汽智联技术有限公司 基于树结构的场景文件分类与更新方法、装置和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427601A (zh) * 2017-02-13 2018-08-21 北京航空航天大学 一种私有链节点的集群交易处理方法
CN109711836A (zh) * 2018-11-15 2019-05-03 远光软件股份有限公司 一种交易的存储方法、存储网络和电子设备
CN109670334A (zh) * 2018-12-19 2019-04-23 平安科技(深圳)有限公司 电子病历共享方法、装置、计算机设备及存储介质
CN109951290B (zh) * 2019-01-31 2022-03-01 创新先进技术有限公司 一种链式账本的授时认证方法、装置及设备
CN112487492B (zh) * 2019-04-04 2023-11-17 创新先进技术有限公司 数据验证方法、系统及设备
CN110347678B (zh) * 2019-06-19 2023-10-17 创新先进技术有限公司 一种金融数据的存储方法、系统、装置及设备
CN110457898B (zh) * 2019-07-29 2020-10-30 创新先进技术有限公司 基于可信执行环境的操作记录存储方法、装置及设备
CN110837502B (zh) * 2019-10-18 2021-03-12 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的数据存储方法、装置及设备
CN110751485B (zh) * 2019-10-28 2021-08-17 腾讯科技(深圳)有限公司 一种数据处理方法及设备
CN111292082B (zh) * 2020-01-13 2022-12-20 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的公钥管理方法、装置及设备
CN111444197B (zh) * 2020-06-12 2020-12-11 支付宝(杭州)信息技术有限公司 一种块链式账本中数据记录的验证方法、装置及设备
CN112286939A (zh) * 2020-06-12 2021-01-29 支付宝(杭州)信息技术有限公司 块链式账本中全局状态的哈希的生成方法、装置及设备

Also Published As

Publication number Publication date
CN113434603A (zh) 2021-09-24
CN112507014A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN110188096B (zh) 一种数据记录的索引创建方法、装置及设备
CN109902086B (zh) 一种索引创建方法、装置及设备
US11640474B2 (en) Method and apparatus for operating database
CN109902071B (zh) 业务日志存储方法、系统、装置及设备
CN109558748B (zh) 数据处理方法、装置、电子设备及存储介质
CN110163006B (zh) 一种块链式账本中的签名验证方法、系统、装置及设备
CN110162526B (zh) 一种块链式账本中数据记录的查询方法、装置及设备
CN110275916B (zh) 数据操作记录的存储方法、系统、装置及设备
US11283622B2 (en) Signature verification for a blockchain ledger
CN113726751B (zh) 一种块链式账本中的权重管理方法、装置及设备
US20200110905A1 (en) Security hardened software footprint in a computing environment
CN110008743B (zh) 一种块链式账本中的数据属性标识方法、装置及设备
US10791122B2 (en) Blockchain user account data
CN110061843B (zh) 一种链式账本中的块高创建方法、装置及设备
US20200202041A1 (en) Blockchain-type data storage
CN110019278B (zh) 一种数据验证方法、装置及设备
CN110347745B (zh) 一种块链式账本的授时认证方法、装置及设备
US20200213094A1 (en) Ledger verification method and apparatus, and device
CN110190963A (zh) 一种针对授时证书生成请求的监控方法、装置及设备
CN110347678B (zh) 一种金融数据的存储方法、系统、装置及设备
US20200364356A1 (en) Blockchain authorization
CN110362568B (zh) 一种针对块链式账本的压缩方法、装置及设备
CN112507014B (zh) 一种基于可信账本数据库的数据存储方法、装置及系统
US10979233B2 (en) Monitoring time certificate generation requests
CN112291321A (zh) 业务处理方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40049156

Country of ref document: HK