基于区块链的多方数据分析方法、装置、设备和存储介质与流程

文档序号:24986413发布日期:2021-05-07 23:04阅读:114来源:国知局
基于区块链的多方数据分析方法、装置、设备和存储介质与流程

本申请涉及区块链技术领域,特别是涉及一种基于区块链的多方数据分析方法、装置、设备和存储介质。



背景技术:

在数据安全保护下的数据分析系统中如多方安全计算系统,隐私安全计算系统中,数据提供者的原始数据是得到充分保护的,除了原始数据提供者和计算结果的发起者,即一个中心节点,任何人都不能看到原始数据,在此基础上进行分析计算得到结果。

传统地,数据安全保护下的数据分析系统是各个原始数据提供者与一个中心节点,即发起人进行加密通信,以将原始数据发送给中心节点,中心节点进行解密后进行数据分析计算,然后根据数据使用者的需要将分析的结果发送给对应的数据使用者。

但是上述的方式中,还是需要将数据提供者的原始数据发送给一个中心节点,若是该中心节点被入侵,或者是中心节点的可信任性降低,则会造成数据的泄露,使得数据不安全。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够保证数据安全的基于区块链的多方数据分析方法、装置、设备和存储介质。

一种基于区块链的多方数据分析方法,所述方法包括:

各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据;

所述各个数据提供者节点将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点;

所述辅助计算节点对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点;

所述聚合节点根据所述中间数据进行计算得到目标数据,并基于所述目标数据进行计算得到多方数据分析结果。

在其中一个实施例中,区块链上提供智能合约,所述各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之前,还包括:

各个数据提供者节点执行所述智能合约,以通过所述智能合约中的方法上报节点信息;

所述区块链根据上报节点信息的各个数据提供者节点确定参与计算的数据提供者节点。

在其中一个实施例中,所述各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之后,还包括:

各个数据提供者节点根据所述智能合约中提供的向量化哈希的方法将拆分数据映射到对应的向量的位置中;

所述基于所述目标数据进行计算得到多方数据分析结果之后,包括:

所述各个数据提供者节点根据所述智能合约所提供的逆向哈希算法将所述多方数据分析结果映射为对应的分类数据。

在其中一个实施例中,所述辅助计算节点对分配的拆分数据进行计算得到中间数据,包括:

各个辅助计算节点根据所述智能合约确定分配至自己的配对节点,并确定各个配对节点对应的拆分数据是否均上传完成;

若各个配对节点对应的拆分数据均上传完成,则各个辅助计算节点根据分配的拆分数据进行计算得到中间数据。

在其中一个实施例中,所述将所得到中间数据发送至聚合节点之前,还包括:

区块链根据智能合约计算聚合节点,所述聚合节点与所述辅助计算节点不重合。

在其中一个实施例中,所述区块链根据智能合约计算聚合节点,包括:

所述区块链根据所述智能合约计算至少两个聚合节点;

所述将所得到中间数据发送至聚合节点,包括:

将所得到的中间数据分别发送至至少两个聚合节点;

所述聚合节点根据所述中间数据进行计算得到目标数据,包括:

至少两个所述聚合节点根据所述中间数据分别计算得到目标数据;

所述基于所述目标数据进行计算得到多方数据分析结果,包括:

判断至少两个聚合节点所计算得到的目标数据是否一致,若一致,则计算完成,否则计算失败。

一种基于区块链的多方数据分析装置,所述装置包括数据提供者节点、辅助计算节点以及聚合节点:

各个所述数据提供者节点用于将私有的待分析数据进行拆分得到至少两个拆分数据;将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点;

所述辅助计算节点用于对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点;

所述聚合节点用于根据所述中间数据进行计算得到目标数据,并基于所述目标数据进行计算得到多方数据分析结果。

在其中一个实施例中,区块链上提供智能合约;

各个所述数据提供者节点还用于执行所述智能合约,以通过所述智能合约中的方法上报节点信息;

所述区块链用于根据上报节点信息的各个数据提供者节点确定参与计算的数据提供者节点。

在其中一个实施例中,各个所述数据提供者节点用于根据所述智能合约中提供的向量化哈希的方法将拆分数据映射到对应的向量的位置中;

各个所述数据提供者节点用于在基于所述目标数据进行计算得到多方数据分析结果之后,根据所述智能合约所提供的逆向哈希算法将所述多方数据分析结果映射为对应的分类数据。

一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。

上述基于区块链的多方数据分析方法、装置、设备和存储介质,数据提供者节点对外提供的是拆分后的拆分数据,而非原始数据,这样除数据提供者以外,其他人均不能获取到原始数据。且在计算的过程中是各个辅助节点对分配的来自不同的数据提供者节点的拆分数据进行计算,由于同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点,因此辅助计算节点也不能获取到原始数据,最后聚合节点是根据中间数据进行计算的,由于中间数据也非原始数据,其并不是来自一个数据提供者节点,因此最后聚合节点计算得到的结果仅能表示所有的数据提供者节点对于相同数据的综合分析结果,而不能获取到单独一个数据提供者的原始数据,因此聚合节点也无法获取到原始数据,这样在整个分析过程中保证了多方数据的安全性,且还得到了基于多方数据的分析结果。

附图说明

图1为一个实施例中基于区块链的多方数据分析方法的应用场景图;

图2为一个实施例中基于区块链的多方数据分析方法的流程示意图;

图3为另一个实施例中的基于区块链的多方数据分析方法的流程示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的基于区块链的多方数据分析方法,可以应用于如图1所示的应用环境中。其中,多个数据提供者节点与区块链和辅助节点进行通信,辅助节点还与区块链进行通信,其中各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据,且将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点,辅助计算节点对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点,聚合节点根据中间数据进行计算得到目标数据,并基于目标数据进行计算得到多方数据分析结果。其中图1中为了方便将数据提供者节点和辅助计算节点进行了统一,称为企业节点。在其他实施例中数据提供者节点和辅助计算节点可以为独立的节点。

这样数据提供者节点对外提供的是拆分后的拆分数据,而非原始数据,这样除数据提供者以外,其他人均不能获取到原始数据。且在计算的过程中是各个辅助节点对分配的来自不同的数据提供者节点的拆分数据进行计算,由于同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点,因此辅助计算节点也不能获取到原始数据,最后聚合节点是根据中间数据进行计算的,由于中间数据也非原始数据,其并不是来自一个数据提供者节点,因此最后聚合节点计算得到的结果仅能表示所有的数据提供者节点对于相同数据的综合分析结果,而不能获取到单独一个数据提供者的原始数据,因此聚合节点也无法获取到原始数据,这样在整个分析过程中保证了多方数据的安全性,且还得到了基于多方数据的分析结果。

在一个实施例中,如图2所示,提供了一种基于区块链的多方数据分析方法,以该方法应用于图1中的应用环境中为例进行说明,包括以下步骤:

s202:各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据。

具体地,数据提供者节点具有原始数据,也即私有的待分析数据。各个数据提供者可以根据自己的私有算法将待分析数据进行拆分为至少两个拆分数据。例如将自己的隐私数字p拆分为两个数字,p=p1+p2。

在其中一个行业画像需求的场景中,每个企业内部会利用自身资源给某个行业进行打分,这个行业的评分代表着这家企业当下对这个行业的看法,包括行业的发展趋势,进而影响投资决策,所以这个评分涉及到企业的隐私,不能泄露,而另一方面市场上其他的企业也都想知道别人对行业大趋势的看法,大家都看好哪些行业,每个行业的市场平均得分是多少。因此需要安全聚合多方的数据,在保证企业内部信息不外漏的情况下,联合所有企业的数据,通过区块链网络协调,完成全局的行业画像打分,并将计算结果公开给参与计算的企业使用。

这样为了保证每个企业内部对于行业的评分的安全性,各个企业自己根据自己的算法将该评分进行拆分。在其中一个实施例中,为了统一,区块链可以预先通过智能合约的方式限定各个数据提供者节点所拆分的数据的数量,例如2个等。

s204:各个数据提供者节点将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点。

具体地,辅助计算节点是预先选取的节点,该节点的数量可以与每个数据提供者节点所拆分得到的拆分数据的最大数量相关,这样可以保证所拆分的每个拆分数据都可以分配到不同的辅助计算节点。在其他的实施例中,该辅助计算节点的数量为大于等于2,这样只要保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点即可。也就是没有一个辅助计算节点可以通过分配得到的拆分数据计算得到完整的原始数据,从而保证了原始数据的安全性。这样分配到同一辅助计算节点的拆分数据则被分为一个分组。

需要说明的是,此处的分配方法与分组方法是没有联系的,即此处的分配方法可以将拆分后的数字以2一组为分组或者3个一组为分组发送给辅助计算节点,其主要目的是将数字拆分后分发到不同的计算者手中,原则上拆分的越多,分发给的计算单元越多,数字越不容易被倒推出来,假设被拆分为3个数字,依旧可以以2个或3个一组为分组发给其他计算单元,因为计算是求和,最终可能会被拆分为4个配对,即(a1,b1)、(b2,c1)、(c12,a2)以及(a3,b3,c3),在其他实施例中,例如,有3个辅助计算节点,a、b、c映射后产生了3对配对(a,b)、(b,c)以及(c,a)。这样每个分组被分配了一个辅助计算节点中,以便于后续计算。

s206:辅助计算节点对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点。

具体地,中间数据是辅助计算节点对拆分数据进行求和计算所得到的,其中此处辅助计算节点可以根据智能合约的计算逻辑来进行处理,例如通过同态计算,各个辅助计算节点均根据智能合约中的同态计算算法进行计算,即每个拆分数据分配对应的权重进行计算。结合上述例子,计算拆分后的数字的和。辅助节点a计算xb1+xc2(b,c)。辅助节点b计算xc1+xa2(c,a)。辅助节点c计算xa1+xb2(a,b)。

具体地,聚合节点则是各节点都信任的第三方,帮助节点间实现配对、向量化哈希以及最后分数聚合等操作,该聚合节点可以是通过智能合约的方式从所确定的可信节点中选择出来的,该聚合节点是辅助计算节点以外的节点。

s208:聚合节点根据中间数据进行计算得到目标数据,并基于目标数据进行计算得到多方数据分析结果。

具体地,聚合节点将所得到的中间数据进行求和计算,即得到最后的目标数据,从而可以根据目标数据来计算得到多方数据分析结果。算法使用了安全多方数据聚合协议,保证了两个节点进行求和的数字没有泄露到外部,只有最后的求和结果暴露到了外部。最后是进行求和的数,只是原始隐私数字的一个拆分,进行求和计算的配对方即使反对除了这个拆分,也无法得到原始的隐私数字。

上述基于区块链的多方数据分析方法,数据提供者节点对外提供的是拆分后的拆分数据,而非原始数据,这样除数据提供者以外,其他人均不能获取到原始数据。且在计算的过程中是各个辅助节点对分配的来自不同的数据提供者节点的拆分数据进行计算,由于同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点,因此辅助计算节点也不能获取到原始数据,最后聚合节点是根据中间数据进行计算的,由于中间数据也非原始数据,其并不是来自一个数据提供者节点,因此最后聚合节点计算得到的结果仅能表示所有的数据提供者节点对于相同数据的综合分析结果,而不能获取到单独一个数据提供者的原始数据,因此聚合节点也无法获取到原始数据,这样在整个分析过程中保证了多方数据的安全性,且还得到了基于多方数据的分析结果。

在其中一个实施例中,区块链上提供智能合约,各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之前,还包括:各个数据提供者节点执行智能合约,以通过智能合约中的方法上报节点信息;区块链根据上报节点信息的各个数据提供者节点确定参与计算的数据提供者节点。

具体地,上述算法的前提是各个节点之间是互相了解的,并存在一个各节点都信任的第三方,帮助节点间实现配对,向量化哈希,以及最后分数聚合等操作。这个时候就需要借助区块链,来在多个节点间进行协调。区块链需要实现以下功能:各个节点间的互相发现,节点间计算配对的协调,节点向量化哈希函数以及聚合节点的选择。

因此引入了智能合约,在区块链上部署智能合约,各个数据提供者节点都需要执行智能合约,该智能合约包括上报节点信息的方法、上报向量化哈希的方法以及上报逆向哈希的方法。

其中在各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之前,首先各个数据提供者节点执行智能合约,以上报节点信息,从而区块链可以确定本轮参与计算的所有的数据提供者节点。例如数据提供者节点可以在执行智能合约的时候判断自身是否存在本轮计算所需要的内容,若是存在,则上报节点信息,否则不上报节点信息。在其他实施例中,数据提供者节点可以执行智能合约上报节点信息,然后由区块链来判断对应的上报了节点信息的节点中是否存在本轮计算所需要的内容,若是存在,则向对应的节点发送数据准备的通知。

上述实施例中,通过引入智能合约保证了各个数据提供者节点可以按照要求进行数据处理。

在其中一个实施例中,各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之后,还包括:各个数据提供者节点根据智能合约中提供的向量化哈希的方法将拆分数据映射到对应的向量的位置中;基于目标数据进行计算得到多方数据分析结果之后,包括:各个数据提供者节点根据智能合约所提供的逆向哈希算法将多方数据分析结果映射为对应的分类数据。

具体地,考虑到实际场景,因为是涉及到整个行业的评分,每个企业之间打分的行业不同,所以有行业对齐的需求。对齐最的方法就是将市场上所有的行业映射到一个长度为l的向量上,向量的长度代表行业的个数,向量的每个元素代表一个行业。此外还需要知道多少个企业对该行业进行了打分,这个可以通过一个行业评分个数的向量来表示,例如存在n个长度为l的向量,每个位置对应一个行业,统计相同位置处非0元素的个数就作为这个位置对应的行业存在打分的数量。最后将每个企业的行业评分都转化为行业向量,在各个节点进行安全多方计算,得到行业向量的和y,以及行业评分个数的向量的和z,y/z就是我们需要的最终行业平均分的结果。

具体地,各个数据提供者将拆分后的数据,根据合约提供获取向量化哈希的方法,将行业分类映射到向量,例如一个数据提供者节点中存在3个行业的打分数据,则可以将所拆分得到的多个拆分数据分别映射到一个向量中,且保证每个向量中至少存在1个拆分数据。这样在计算完成目标数据后,则通过智能合约所提供的逆向哈希算法将所述多方数据分析结果映射为对应的分类数据,从而可以获取到各个行业分类对应的评分。

上述实施例中,通过向量化的方式保证了评分的对齐,从而保证了计算结果的准确性。

在其中一个实施例中,辅助计算节点对分配的拆分数据进行计算得到中间数据,包括:各个辅助计算节点根据智能合约确定分配至自己的配对节点,并确定各个配对节点对应的拆分数据是否均上传完成;若各个配对节点对应的拆分数据均上传完成,则各个辅助计算节点根据分配的拆分数据进行计算得到中间数据。

具体地,在实际应用中,智能提供提交计算开始的方法,并会触发计算开始的事件,这样合约提供配对辅助节点的方法,数据提供者节点监听到计算开始事件,向辅助节点发送拆分数据,具体地配对的方式是智能合约提供配对的算法,从而各个数据提供者节点执行智能合约已将对应的拆分数据分配至对应的辅助计算节点。

辅助计算节点在监听到计算开始事件,确认配对节点将自己的数据都已经上传,则开始计算,其中辅助计算节点也是根据智能合约中的算法进行计算。

上述实施例中,通过智能合约使得各个拆分数据进行拆分,并进行上传,保证了计算的准确性。

在其中一个实施例中,将所得到中间数据发送至聚合节点之前,还包括:区块链根据智能合约计算聚合节点,聚合节点与辅助计算节点不重合。

具体地,聚合节点是区块链根据智能合约计算得到的,聚合节点与辅助计算节点不重合。智能合约提供下一步计算节点选择的方法,下一步计算节点从非上一轮计算节点的集群中选取,以最大化保护节点的隐私数据。

在其中一个实施例中,区块链根据智能合约计算聚合节点,包括:区块链根据智能合约计算至少两个聚合节点;将所得到中间数据发送至聚合节点,包括:将所得到的中间数据分别发送至至少两个聚合节点;聚合节点根据中间数据进行计算得到目标数据,包括:至少两个聚合节点根据中间数据分别计算得到目标数据;基于目标数据进行计算得到多方数据分析结果,包括:判断至少两个聚合节点所计算得到的目标数据是否一致,若一致,则计算完成,否则计算失败。

具体地,合约提供提交计算结果的方法,在节点计算完成后会通过这个方法和得到的下一步计算节点d(d’),将结果传到下一个计算节点d(d’),并触发下一步聚合计算。其中聚合节点可以至少包括两个,以保证聚合节点计算的准确性。

智能合约提供本轮聚合计算结果的方法,d(d’)在获得所有当前轮次计算节点的中间计算结果后,开始下一步聚合计算。智能合约提供上传最终计算结的方法,d(d’)节点将计算结果上传上链。智能合约判断d和d’的计算想过是否一致,触发计算结束事件,并告知本轮计算成功或者失败。智能合约提供给一个获取当前轮次全部计算结果和数据的方法,当计算节点监听到计算结束时间,节点可以通过该方法获取计算结果。智能合约提供一个获取逆向哈希的方法,将行业化向量映射成为行业分类,节点通过调用此方法,最终得到行业评分。

在其中一个实施例中,参见图3,图3为另一个实施例中的基于区块链的多方数据分析方法的流程示意图。

其中,首先在区块链上部署智能合约,各个节点都需要执行合约。合约提供上报节点信息的方法,此方法亦可以获得当前轮次计算所有参与节点的信息。合约提供上报向量化哈希的方法,将本轮计算需要用到的哈希函数上报到链上。合约提供上报逆向哈希的方法,将本轮计算需要用到的逆向哈希函数上报到链上。合约提供获取向量化哈希的方法,将行业分类映射到向量。

合约提供提交计算开始的方法,并会触发计算开始的事件。

合约提供配对辅助节点的方法,节点监听到计算开始事件,向辅助节点发送拆分数据。

合约提供计算配对节点的方法,辅助节点监听到计算开始事件,确认配对节点将自己的数据都已经上传,则开始计算。

合约提供下一步计算节点选择的方法,下一步计算节点从非上一轮计算节点的集群中选取,以最大化保护节点的隐私数据。

合约提供提交计算结果的方法,在节点计算完成后会通过这个方法和得到的下一步计算节点d(d’),将结果传到下一个计算节点d(d’),并触发下一步聚合计算。

合约提供本轮聚合计算结果的方法,d(d’)在获得所有当前轮次计算节点的中间计算结果后,开始下一步聚合计算。

合约提供上传最终计算结的方法,d(d’)节点将计算结果上传上链。

合约判断d和d’的计算想过是否一致,触发计算结束事件,并告知本轮计算成功或者失败。

合约提供给一个获取当前轮次全部计算结果和数据的方法,当计算节点监听到计算结束时间,节点可以通过该方法获取计算结果。

合约提供一个获取逆向哈希的方法,将行业化向量映射成为行业分类,节点通过调用此方法,最终得到行业评分。

应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图1所示,提供了一种基于区块链的多方数据分析装置,包括:数据提供者节点100、辅助计算节点200以及聚合节点300,其中:

各个数据提供者节点用于将私有的待分析数据进行拆分得到至少两个拆分数据;将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点;

辅助计算节点用于对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点;

聚合节点用于根据中间数据进行计算得到目标数据,并基于目标数据进行计算得到多方数据分析结果。

在其中一个实施例中,区块链上提供智能合约;

各个数据提供者节点还用于执行智能合约,以通过智能合约中的方法上报节点信息;

区块链用于根据上报节点信息的各个数据提供者节点确定参与计算的数据提供者节点。

在其中一个实施例中,各个数据提供者节点用于根据智能合约中提供的向量化哈希的方法将拆分数据映射到对应的向量的位置中;

各个数据提供者节点用于在基于目标数据进行计算得到多方数据分析结果之后,根据智能合约所提供的逆向哈希算法将多方数据分析结果映射为对应的分类数据。

在其中一个实施例中,各个辅助计算节点还用于根据智能合约确定分配至自己的配对节点,并确定各个配对节点对应的拆分数据是否均上传完成;若各个配对节点对应的拆分数据均上传完成,则根据分配的拆分数据进行计算得到中间数据。

在其中一个实施例中,区块链还用于根据智能合约计算聚合节点,聚合节点与辅助计算节点不重合。

在其中一个实施例中,区块链还用于根据智能合约计算至少两个聚合节点;

辅助计算节点还用于将所得到的中间数据分别发送至至少两个聚合节点;

至少两个聚合节点用于根据中间数据分别计算得到目标数据;判断至少两个聚合节点所计算得到的目标数据是否一致,若一致,则计算完成,否则计算失败。

关于基于区块链的多方数据分析装置的具体限定可以参见上文中对于基于区块链的多方数据分析方法的限定,在此不再赘述。上述基于区块链的多方数据分析装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据;各个数据提供者节点将所拆分得到的拆分数据随机分配到不同的辅助计算节点,以保证同一数据提供者节点的拆分数据未全部分配到一个辅助计算节点;辅助计算节点对分配的拆分数据进行计算得到中间数据,并将所得到中间数据发送至聚合节点;聚合节点根据中间数据进行计算得到目标数据,并基于目标数据进行计算得到多方数据分析结果。

在一个实施例中,区块链上提供智能合约,计算机程序被处理器执行时所实现的各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之前,还包括:各个数据提供者节点执行智能合约,以通过智能合约中的方法上报节点信息;区块链根据上报节点信息的各个数据提供者节点确定参与计算的数据提供者节点。

在一个实施例中,计算机程序被处理器执行时所实现的各个数据提供者节点将私有的待分析数据进行拆分得到至少两个拆分数据之后,还包括:各个数据提供者节点根据智能合约中提供的向量化哈希的方法将拆分数据映射到对应的向量的位置中;计算机程序被处理器执行时所实现的基于目标数据进行计算得到多方数据分析结果之后,包括:各个数据提供者节点根据智能合约所提供的逆向哈希算法将多方数据分析结果映射为对应的分类数据。

在一个实施例中,计算机程序被处理器执行时所实现的辅助计算节点对分配的拆分数据进行计算得到中间数据,包括:各个辅助计算节点根据智能合约确定分配至自己的配对节点,并确定各个配对节点对应的拆分数据是否均上传完成;若各个配对节点对应的拆分数据均上传完成,则各个辅助计算节点根据分配的拆分数据进行计算得到中间数据。在一个实施例中,计算机程序被处理器执行时所实现的将所得到中间数据发送至聚合节点之前,还包括:区块链根据智能合约计算聚合节点,聚合节点与辅助计算节点不重合。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:区块链根据智能合约计算至少两个聚合节点;将所得到的中间数据分别发送至至少两个聚合节点;至少两个聚合节点根据中间数据分别计算得到目标数据;判断至少两个聚合节点所计算得到的目标数据是否一致,若一致,则计算完成,否则计算失败。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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