一种基于区块链的数据统计的方法及装置与流程

文档序号:19419828发布日期:2019-12-14 01:18阅读:496来源:国知局
一种基于区块链的数据统计的方法及装置与流程

本发明实施例涉及金融科技(fintech)领域,尤其涉及一种基于区块链(blockchain)的数据统计的方法及装置。



背景技术:

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,数据统计也不例外,但由于金融、支付行业的安全性、实时性要求,也对数据统计技术提出的更高的要求。

数据统计过程指的是汇总所有参与方的待统计数据,然后通过某种约定的统计函数形成聚合后的统计数据。例如,统计函数为确定所有待统计数据的分布曲线,在统计完成之后,通过该分布曲线,每个参与方和数据使用方都可以查询自己的在该分布曲线上的位置从而确定自己的排名。

数据统计过程中需要对各参与方的隐私进行保护,具体保护参与方和待统计数据的关联关系,即数据统计过程中,仅需要知道哪些参与方提供了数据,以及待统计数据有哪些,但无需知道是哪一个参与方提供了哪一个待统计数据。现有技术中,主要采用秘密共享方式实现各参与方的隐私保护,举例来说,当前有参与方1、参与方2、参与方3,统计三者的待统计数据之和,具体实现中,参与方1将数据a分为a1、a2、a3,将a2发送至参与方2,将a3发送至参与方3,a1本地保留;参与方2将数据b分为b1、b2、b3,将b1发送至参与方1,将b3发送至参与方3,b2本地保留;参与方3将数据c分为c1、c2、c3,将c1发送至参与方1,将c2发送至参与方2,c3本地保留;然后,参与方1将a1、b1、c1发送至统计方,参与方2将a2、b2、c2发送至统计方,参与方3将a3、b3、c3发送至统计方,所以统计方不能将各参与方的待统计数据关联起来,但可以确定出三者的待统计数据之和。

但现有技术中,参与方与参与方之间进行多次数据交互,参与方与统计方之间进行多次数据交互,该方式数据交互复杂,还需要各参与方和统计方一直在线。



技术实现要素:

本发明实施例提供一种基于区块链的数据统计的方法及装置,用于提供一种简单易用的数据统计方法,且保护各参与方隐私。

本发明实施例提供的一种基于区块链的数据统计的方法,包括:

统计服务器接收转发服务器转发的来自数据服务器的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据;所述第一公钥是所述统计服务器生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述统计服务器使用所述第一公钥对应的第一私钥解密所述加密数据,得到所述待统计数据和所述签名信息;

所述统计服务器使用所述第二私钥对应的第二公钥对所述签名信息验证通过后,统计所述待统计数据得到统计结果;所述第二公钥是所述监管服务器发送至所述统计服务器的所述数据服务器所在统计群的群公钥。

上述技术方案中,转发服务器接收各数据服务器发送的加密数据,并发送加密数据至统计服务器,通过该方式,统计服务器不能获取到发送数据的数据服务器的身份信息,同时统计服务器也不能根据各数据服务器发送数据的发送时间推断出数据服务器的身份信息,通过设置转发服务器,可以做到高效的隐藏数据服务器的身份信息。本发明实施例通过权限分离的方式实现数据服务器和待统计数据之间关联关系的隐私保护。

可选的,所述统计服务器在得到所述待统计数据和所述签名信息之后,还包括:

所述统计服务器将所述签名信息和所述待统计数据对应写入区块链中,以使所述监管服务器对所述数据服务器所提供的待统计数据进行验证。

上述技术方案中,统计服务器将签名信息和待统计数据对应写入区块链中,利用区块链的不易篡改性,保障签名信息和待统计数据的准确性,为监管服务器提供未被篡改过的数据。

可选的,所述统计服务器在得到统计结果之后,还包括:

所述统计服务器将所述统计结果写入区块链中,并在接收到查询服务器发送的数据查询请求后,根据所述查询请求从所述区块链中获取查询结果,将所述查询结果反馈至所述查询服务器。

上述技术方案中,统计服务器将统计结果写入区块链中,并为查询服务器提供查询服务,利用区块链的不易篡改性,保障统计结果的准确性,为查询服务器提供未被篡改过的数据。

可选的,所述统计服务器使用所述第二私钥对应的第二公钥对所述签名信息验证,包括:

所述统计服务器使用所述第二公钥验证所述数据服务器是否为所述统计群中的数据服务器,若是,则确定所述签名信息通过验证。

上述技术方案中,统计服务器使用第二公钥验证签名信息,确定是否对该数据服务器所提供的待统计数据进行统计,保障数据统计的准确性,避免非统计群里的数据服务器提交错误的待统计数据污染统计结果。

可选的,所述统计服务器在接收所述转发服务器转发的来自数据服务器的加密数据之前,还包括:

生成所述第一私钥和所述第一公钥,将所述第一公钥发送至所述数据服务器;以及接收所述监管服务器发送的所述第二公钥。

上述技术方案中,统计服务器将第一公钥发送至数据服务器,数据服务器可以使用第一公钥对待统计数据和签名信息加密,且该加密数据可以被统计服务器使用第一私钥解密但不能被转发服务器解密。统计服务器接收监管服务器发送的第二公钥,统计服务器可以使用第二公钥验证数据服务器是否属于待统计的统计群。

相应的,本发明实施例还提供了一种基于区块链的数据统计的方法,包括:

转发服务器接收数据服务器发送的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据,所述第一公钥是统计服务器生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述转发服务器将所述加密数据发送至所述统计服务器,以使所述统计服务器使用所述第一公钥对应的第一私钥,对所述加密数据解密,并在使用所述第二私钥对应的第二公钥对解密后的签名信息验证通过后,统计解密后的待统计数据;所述第二公钥是所述监管服务器发送至所述统计服务器的所述数据服务器所在统计群的群公钥。

上述技术方案中,转发服务器只可以知道发送数据的数据服务器的身份信息,但不知道加密数据中的待统计数据,转发服务器将该加密数据转发至统计服务器,统计服务器仅可以获取到转发服务器的身份信息,但不能获取到发送数据的数据服务器的身份信息,同时统计服务器也不能根据各数据服务器发送数据的发送时间推断出数据服务器的身份信息,通过设置转发服务器,可以做到高效的隐藏数据服务器的身份信息。本发明实施例通过权限分离的方式实现数据服务器和待统计数据之间关联关系的隐私保护。

可选的,所述统计群中包括n个数据服务器,n大于等于1;所述数据服务器向所述转发服务器发送的加密数据有m个,m大于等于1,每一个加密数据对应一个数据属性;

所述转发服务器接收数据服务器发送的加密数据,包括:

所述转发服务器接收所述n个数据服务器中各数据服务器发送的m个加密数据;

所述转发服务器将所述加密数据发送至所述统计服务器,包括:

所述转发服务器在确定接收完成所述n个数据服务器中各数据服务器发送的m个加密数据之后,确定出m组具有相同属性的加密数据,每组有n个加密数据;

所述转发服务器在预设时间将m组加密数据发送至所述统计服务器。

上述技术方案中,转发服务器可以接收预设时间段内的该统计群中各数据服务器发送的加密数据,且各数据服务器分别向该转发服务器发送多个数据属性的加密数据,转发服务器可以根据各待统计数据的数据属性将接收到的加密数据进行分组,且将分组后的待统计数据分别发送至统计服务器。

相应的,本发明实施例还提供了一种基于区块链的数据统计的方法,包括:

所述数据服务器使用第二私钥对待统计数据进行签名后生成签名信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述数据服务器使用第一公钥对所述签名信息和所述待统计数据加密后生成加密数据;所述第一公钥是统计服务器生成并发送至所述数据服务器的;

所述数据服务器将所述加密数据发送至所述转发服务器,以使所述转发服务器将所述加密数据转发至所述统计服务器进行数据统计。

上述技术方案中,数据服务器使用第二私钥对待统计数据进行签名后生成签名信息,使用第一公钥对签名信息和待统计数据加密后生成加密数据,转发服务器接收到该加密数据,但由于没有解密该加密数据的第一私钥,则只可以知道发送数据的数据服务器的身份信息,但不知道加密数据中的待统计数据,转发服务器将该加密数据转发至统计服务器,统计服务器仅可以获取到转发服务器的身份信息,但不能获取到发送数据的数据服务器的身份信息,同时统计服务器也不能根据各数据服务器发送数据的发送时间推断出数据服务器的身份信息,通过该方式,可以做到高效的隐藏数据服务器的身份信息。本发明实施例通过权限分离的方式实现数据服务器和待统计数据之间关联关系的隐私保护。

可选的,所述待统计数据为m个,m大于等于1;

所述数据服务器使用第一公钥对所述签名信息和所述待统计数据加密后生成加密数据,包括:

所述数据服务器针对每一个待统计数据,使用所述第一公钥对所述签名信息和所述待统计数据加密后生成加密数据。

可选的,所述数据服务器在所述生成签名信息之前,还包括:

所述数据服务器接收所述监管服务器发送的第二私钥;

所述数据服务器在所述生成加密数据之前,还包括:

所述数据服务器接收所述统计服务器发送的第一公钥。

上述技术方案中,数据服务器接收监管服务器发送的第二私钥,用于对待统计数据进行签名从而生成签名信息,数据服务器接收统计服务器发送的第一公钥,用于对待统计数据和签名信息进行加密。

相应的,本发明实施例还提供了一种基于区块链的数据统计的方法,包括:

监管服务器从区块链上获取待验证信息,所述待验证信息包括待统计数据和签名信息;所述签名信息是提供所述待统计数据的数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是所述监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述监管服务器使用待验证数据服务器所在统计群的群私钥解密所述签名信息,确定所述待验证数据服务器的签名信息和对应的待统计数据;

所述监管服务器根据所述待验证数据服务器的签名信息和对应的待统计数据,对所述待验证数据服务器所提供的待统计数据进行验证。

上述技术方案中,监管服务器可以采用统计群的群私钥解密各签名信息,从而可以从区块链中获取待验证数据服务器所提供的待统计数据,从而对待验证数据服务器提供数据的真实性和合理性进行验证,保证数据统计过程中的数据有效性。将签名信息和待统计数据对应写入区块链中,为监管服务器提供未被篡改过的数据。

可选的,所述监管服务器在从区块链上获取待验证信息之前,还包括:

监管服务器生成统计群的群私钥和群公钥;

所述监管服务器根据所述统计群的群私钥和群公钥,生成所述统计群中各数据服务器的第二私钥,并发送至各数据服务器,以使所述数据服务器使用所述第二私钥对待统计数据签名并生成签名信息;所述签名信息用于所述数据服务器使用第一公钥对所述签名信息和待统计数据加密;所述第一公钥是统计服务器生成并发送至所述数据服务器的;

所述监管服务器将所述群公钥作为所述第二私钥对应的第二公钥发送至所述统计服务器,以使所述统计服务器使用所述第二公钥对所述签名信息验证。

上述技术方案中,数据服务器可以采用各自的私钥生成针对所在统计群的签名信息,其它数据服务器或者统计服务器仅能使用群公钥验证签名,将该签名信息定位至哪一个群,但不能定位至哪一个数据服务器,而仅有监管服务器可以使用群私钥将该签名信息定位至哪一个数据服务器,通过该方式,可以保证统计服务器对待统计数据的统计以及监管服务器对数据服务器提供待统计数据的验证。

相应的,本发明实施例还提供了一种基于区块链的数据统计的装置,包括:

收发单元、解密单元、处理单元;

所述收发单元用于接收转发服务器转发的来自数据服务器的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据;所述第一公钥是所述处理单元生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述解密单元用于使用所述第一公钥对应的第一私钥解密所述加密数据,得到所述待统计数据和所述签名信息;

所述处理单元用于使用所述第二私钥对应的第二公钥对所述签名信息验证通过后,统计所述待统计数据得到统计结果;所述第二公钥是所述监管服务器发送至所述处理单元的所述数据服务器所在统计群的群公钥。

可选的,所述处理单元还用于:

在得到所述待统计数据和所述签名信息之后,将所述签名信息和所述待统计数据对应写入区块链中,以使所述监管服务器对所述数据服务器所提供的待统计数据进行验证。

可选的,所述处理单元还用于:

在得到统计结果之后,将所述统计结果写入区块链中,并在接收到查询服务器发送的数据查询请求后,根据所述查询请求从所述区块链中获取查询结果,将所述查询结果反馈至所述查询服务器。

可选的,所述处理单元具体用于:

使用所述第二公钥验证所述数据服务器是否为所述统计群中的数据服务器,若是,则确定所述签名信息通过验证。

可选的,所述处理单元还用于:

在所述收发单元接收所述转发服务器转发的来自数据服务器的加密数据之前,生成所述第一私钥和所述第一公钥;

所述收发单元还用于:

将所述第一公钥发送至所述数据服务器;以及接收所述监管服务器发送的所述第二公钥。

相应的,本发明实施例还提供了一种基于区块链的数据统计的装置,包括:

接收单元和发送单元;

所述接收单元用于接收数据服务器发送的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据,所述第一公钥是统计服务器生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述发送单元用于将所述加密数据发送至所述统计服务器,以使所述统计服务器使用所述第一公钥对应的第一私钥,对所述加密数据解密,并在使用所述第二私钥对应的第二公钥对解密后的签名信息验证通过后,统计解密后的待统计数据;所述第二公钥是所述监管服务器发送至所述统计服务器的所述数据服务器所在统计群的群公钥。

可选的,所述统计群中包括n个数据服务器,n大于等于1;所述数据服务器向所述接收单元发送的加密数据有m个,m大于等于1,每一个加密数据对应一个数据属性;

所述接收单元具体用于:

接收所述n个数据服务器中各数据服务器发送的m个加密数据;

所述发送单元具体用于:

在确定接收完成所述n个数据服务器中各数据服务器发送的m个加密数据之后,确定出m组具有相同属性的加密数据,每组有n个加密数据;

在预设时间将m组加密数据发送至所述统计服务器。

相应的,本发明实施例还提供了一种基于区块链的数据统计的装置,包括:

加密单元和收发单元;

所述加密单元用于使用第二私钥对待统计数据进行签名后生成签名信息;所述第二私钥是监管服务器根据数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述收发单元;

所述加密单元还用于使用第一公钥对所述签名信息和所述待统计数据加密后生成加密数据;所述第一公钥是统计服务器生成并发送至所述收发单元的;

所述收发单元用于将所述加密数据发送至所述转发服务器,以使所述转发服务器将所述加密数据转发至所述统计服务器进行数据统计。

可选的,所述待统计数据为m个,m大于等于1;

所述加密单元具体用于:

针对每一个待统计数据,使用所述第一公钥对所述签名信息和所述待统计数据加密后生成加密数据。

可选的,所述收发单元还用于:

在所述加密单元生成签名信息之前,接收所述监管服务器发送的第二私钥;

所述收发单元还用于:

在所述加密单元生成加密数据之前,接收所述统计服务器发送的第一公钥。

相应的,本发明实施例还提供了一种基于区块链的数据统计的装置,包括:

获取单元、解密单元、验证单元;

所述获取单元用于从区块链上获取待验证信息,所述待验证信息包括待统计数据和签名信息;所述签名信息是提供所述待统计数据的数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述解密单元用于使用待验证数据服务器所在统计群的群私钥解密所述签名信息,确定所述待验证数据服务器的签名信息和对应的待统计数据;

所述验证单元用于根据所述待验证数据服务器的签名信息和对应的待统计数据,对所述待验证数据服务器所提供的待统计数据进行验证。

可选的,所述装置还包括生成单元和收发单元;

所述生成单元用于:

在从所述获取单元区块链上获取待验证信息之前,生成统计群的群私钥和群公钥;

根据所述统计群的群私钥和群公钥,生成所述统计群中各数据服务器的第二私钥;

所述收发单元用于:

将所述各数据服务器的第二私钥发送至各数据服务器,以使所述数据服务器使用所述第二私钥对待统计数据签名并生成签名信息;所述签名信息用于所述数据服务器使用第一公钥对所述签名信息和待统计数据加密;所述第一公钥是统计服务器生成并发送至所述数据服务器的;

将所述群公钥作为所述第二私钥对应的第二公钥发送至所述统计服务器,以使所述统计服务器使用所述第二公钥对所述签名信息验证。

相应的,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于区块链的数据统计的方法。

相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述基于区块链的数据统计的方法。

附图说明

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

图1为本发明实施例提供的一种系统架构的示意图;

图2为本发明实施例提供的一种基于区块链的数据统计方法流程示意图;

图3为本发明实施例提供的第一种基于区块链的数据统计装置结构示意图;

图4为本发明实施例提供的第二种基于区块链的数据统计装置结构示意图;

图5为本发明实施例提供的第三种基于区块链的数据统计装置结构示意图;

图6为本发明实施例提供的第四种基于区块链的数据统计装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1示例性的示出了本发明实施例提供基于区块链的数据统计的方法所适用的系统架构,该系统架构可以包括数据服务器、转发服务器、统计服务器、监管服务器、区块链。多个数据服务器组成一个统计群,本发明实施例用于对一个统计群中多个数据服务器提供的待统计数据进行统计。

数据服务器,也叫统计参与方、参与方,是参与统计标准计算并贡献待统计数据的主体,数据服务器将待统计数据发送至转发服务器。每个数据服务器都有一系列的原子属性,原子属性可以按事先约定的方式任意组合成新的复合属性,每个数据服务器发送的待统计数据可以是原子属性值或复合属性值。

转发服务器,也叫数据转发方,用于在预设时段内接收统计群中各数据服务器发送的待统计数据,并将这些待统计数据汇总后,在一个特定时间点(预设时间)将汇总后的数据发送至统计服务器。

统计服务器,也叫标准发布方、统计方,用于接收转发服务器转发的数据,并将接收到的数据根据某种约定的统计函数进行统计,以及将该统计后的数据存储至区块链中。统计服务器还用于将接收到的数据存储至区块链中。此处,数据服务器的属性值的类型可以是任意类型,约定的统计函数也可以是任意可以通过聚合属性值获得的统计函数。

监管服务器,也叫监管方,用于读取统计服务器存储至区块链中的数据,并根据读取的数据对数据服务器提供的待统计数据进行验证。

区块链,是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希值,通过这种方式组成一条链。区块链用于存储数据,保障数据的防篡改性。

实际使用中,转发服务器、统计服务器和监管服务器是相互独立的实体,三者之间的数据传输仅限于本发明实施例中所涉及的数据,不会发送除本发明实施例以外的数据。其中,统计服务器可以是制定统计标准的行业协会所提供的服务器,转发服务器可以是协会和协会成员之外的第三方网络服务商所提供的服务器,监管服务器可以是监管部门所提供的服务器。

需要说明的是,本发明实施例在实际使用中,可以同时对多个统计群进行数据统计。可以设置每个数据服务器提供的待统计数据中记录数据服务器所在统计群的标识(如统计群的id(identification,身份标识号)),以使得统计服务器在接收到待统计数据后,可以识别出该待统计数据是哪一个统计群中数据服务器发送的。

基于上述描述,图2示例性的示出了本发明实施例提供的一种基于区块链的数据统计的方法的流程,该流程可以由上述数据服务器、转发服务器、统计服务器共同执行。

在描述图2示出的数据统计流程之前,先对数据统计流程中涉及的加密、解密详细说明如下。

统计服务器生成用于加解密数据的密钥对,分别是第一公钥和第一私钥,统计服务器将第一公钥发送至数据服务器,数据服务器接收该第一公钥,并使用该第一公钥对数据(包括待统计数据和签名信息)进行加密,从而统计服务器在接收到转发服务器转发的数据服务器发送的加密数据后,统计服务器可以使用第一私钥对该加密数据进行解密。

监管服务器(相当于统计群中的群管理员)针对一个统计群生成该统计群的群私钥和群公钥,并根据该统计群的群私钥和群公钥,生成该统计群中各数据服务器的第二私钥(每个数据服务器对应一个第二私钥),并发送至各数据服务器,各数据服务器接收到各自的第二私钥后,会根据各自的第二私钥对待统计数据签名并生成签名信息,从而各数据服务器会使用第一公钥对签名信息和待统计数据加密,以生成加密数据。监管服务器还会将该统计群的群公钥作为第二私钥对应的第二公钥发送至统计服务器或者其它数据服务器,其中,统计服务器可以使用第二公钥对签名信息验证,具体的,统计服务器可以使用第二公钥验证该签名信息对应的数据服务器是否属于当前正在统计的统计群。

本发明实施例中,数据服务器可以采用各自的私钥生成针对所在统计群的签名信息,其它数据服务器或者统计服务器仅能使用群公钥验证签名,将该签名信息定位至哪一个群,但不能定位至哪一个数据服务器,而仅有监管服务器可以使用群私钥将该签名信息定位至哪一个数据服务器,通过该方式,可以保证统计服务器对待统计数据的统计以及监管服务器对数据服务器提供待统计数据的验证。

换个角度说,在数据统计流程之前,统计服务器会接收到监管服务器针对每一个统计群生成并发送的群公钥;数据服务器会接收到监管服务器针对该统计群中该数据服务器生成并发送的第二私钥;数据服务器还会接收到统计服务器生成并发送的第一公钥。

如图2所示,该流程具体包括:

步骤201,数据服务器使用第二私钥对待统计数据进行签名后生成签名信息。

待统计数据即待统计的属性值,数据服务器使用自己的第二私钥对待统计数据进行签名,具体的,可以是计算待统计数据的字符串的哈希值,再根据第二私钥对该哈希值签名,以生成签名信息。

一种实现方式中,数据服务器可以计算待统计数据、统计群标识等所组成字符串的哈希值,进而根据第二私钥对该哈希值签名,以生成签名信息。示例性的,数据服务器的第二私钥为sk_group_j(其中,group_j指的是该统计群中的第j个数据服务器),数据服务器使用sk_group_j对待统计数据v_i和统计群标识id_stat的群签名为sig_group_j_v_i=sig_sk_group_j(hash(v_i||id_stat)。

步骤202,数据服务器使用第一公钥对签名信息和待统计数据加密后生成加密数据。

数据服务器可以有m个待统计数据,其中,m大于等于1,每个待统计数据对应一个数据属性,如数据服务器发送的待统计数据有总资产、负债资产、营业收入、净利润等。

数据服务器针对m个待统计数据中的每一个待统计数据,使用第一公钥对签名信息和该待统计数据进行加密后生成加密数据。以其中一个待统计数据v_i为例,数据服务器使用第一公钥pk_p对该签名信息sig_group_j_v_i和待统计数据v_i加密生成加密数据为pk_p(v_i,sig_group_j_v_i)。

步骤203,数据服务器将加密数据发送至转发服务器。

数据服务器向转发服务器发送加密数据,由于转发服务器并没有对该加密数据进行解密的第一私钥,也就是说,转发服务器不能对该加密数据进行解密,也不能获取到该加密数据中的待统计数据。虽然,转发服务器在接收到数据服务器发送的加密数据时,是可以根据接收到的加密数据确定出该发送数据的数据服务器的身份信息,如ip(internetprotocol,网络之间互连的协议)地址,但并不能知道该加密数据的内容,也即,转发服务器不能将数据服务器和待统计数据关联起来。

步骤204,转发服务器将加密数据发送至统计服务器。

转发服务器将加密数据的数据服务器的身份信息进行隐藏处理后,将隐藏处理后的加密数据发送至统计服务器,本发明实施例中的隐藏处理可以理解如下,转发服务器在接收到加密数据后,只可以知道发送数据的数据服务器的身份信息,但不知道加密数据中的待统计数据,转发服务器将该加密数据转发至统计服务器,统计服务器仅可以获取到转发服务器的身份信息,但不能获取到发送数据的数据服务器的身份信息,从而达到转发服务器对数据服务器的身份信息的隐藏处理。

一种实现方式中,转发服务器可以接收预设时间段内的该统计群中各数据服务器发送的加密数据,且各数据服务器分别向该转发服务器发送多个数据属性的加密数据。具体的,统计群中包括n个数据服务器,n大于等于1,数据服务器向转发服务器发送的加密数据有m个,m大于等于1,每一个加密数据对应一个数据属性,转发服务器接收n个数据服务器中各数据服务器发送的m个加密数据,并在确定接收完成n个数据服务器中各数据服务器发送的m个加密数据之后,确定出m组具有相同属性的加密数据,每组有n个加密数据,在预设时间将m组加密数据发送至统计服务器。此处,转发服务器可以在上述预设时间段之后,即确定接收完成加密数据,也可以在确定n个数据服务器发送完成后,即确定接收完成加密数据,或者采用其他标准确定。转发服务器发送加密数据至统计服务器的预设时间可以是在确定接收完成加密数据之后的某个预先约定的时间点。

举个例子,统计群中包括5个数据服务器,每个数据服务器向转发服务器发送2个待统计数据,分别是总资产、负债资产,转发服务器规定可接受数据的预设时间段为2019/9/200:00至2019/9/223:59,则每个数据服务器可以在该时间段的任一个时间点发送其待统计数据至转发服务器,转发服务器可以在2019/9/300:00结束接收数据,并将接收到的数据进行隐藏处理,且将相同数据属性的待统计数据归为一组,具体的,将5个数据服务器分别发送总资产归为一组,将5个数据服务器分别发送负债资产归为一组,然后将该两组数据分别发送至统计服务器。

本发明实施例中,转发服务器在预设时间段内接收各数据服务器发送的加密数据,并在预设时间发送加密数据,通过该方式,统计服务器不能获取到发送数据的数据服务器的身份信息,同时统计服务器也不能根据各数据服务器发送数据的发送时间推断出数据服务器的身份信息,通过设置转发服务器,可以做到高效的隐藏数据服务器的身份信息。本发明实施例通过权限分离的方式实现数据服务器和待统计数据之间关联关系的隐私保护。

此外,通过转发服务器上述实现方式,转发服务器可以在预设时间段内接收各数据服务器发送的加密数据,整个过程中,仅需要转发服务器实时在线,无需各数据服务器实时在线,且转发服务器和各数据服务器只需要进行一次数据交互,无需进行多次数据交互,相比于现有技术中的多次数据交互和实时在线,更简单易用。

步骤205,统计服务器使用第一公钥对应的第一私钥解密加密数据,得到待统计数据和签名信息。

例如,数据服务器使用第一私钥sk_p对加密数据pk_p(v_i,sig_group_j_v_i)进行解密,分别解密出签名信息sig_group_j_v_i和待统计数据v_i,其中,签名信息用于统计服务器对该数据服务器所在的统计群进行验证,相当于统计服务器验证是否需要对该数据服务器所提供的待统计数据进行统计;待统计数据即用于统计服务器进行数据统计。

步骤206,统计服务器使用第二私钥对应的第二公钥对签名信息验证通过后,统计待统计数据得到统计结果。

统计服务器使用第二公钥验证数据服务器是否为统计群中的数据服务器,若是,则确定签名信息通过验证,对该数据服务器所提供的待统计数据进行统计,否则,确定签名信息不通过验证,不对该数据服务器所提供的待统计数据进行统计。例如,数据服务器使用第二公钥pk_group验证签名信息sig_group_j_v_i所指示的数据服务器是否为该统计群中的数据服务器。

统计服务器在确定签名信息验证通过后,可以进入数据统计阶段,对待统计数据按照预设的统计函数进行统计并确定统计结果,如确定待统计数据的分布曲线,确定待统计数据之和等。在确定统计结果之后,统计服务器可以将统计结果写入区块链中,用于查询服务器(数据使用方)对区块链中的数据查询。具体的,统计服务器可以在接收到查询服务器发送的数据查询请求后,根据查询请求从区块链中获取查询结果,将查询结果反馈至查询服务器,当然查询服务器也可以直接从区块链中获取查询结果,在此不做限制。

一种查询方式中,查询服务器可以将自己的属性值发送至统计服务器,统计服务器将接收到的属性值与对应的统计结果进行比对,并向查询服务器返回比对结果,如返回查询服务器的属性值在分布曲线中的排名。此处,若查询服务器所提供的属性值比较敏感,则统计服务器在结束比对后,应立即删除对应的中间数据和比对结果。

此外,统计服务器在确定签名信息验证通过后,还可以对接收到的加密数据进一步验证,验证接收到的签名信息中是有重复,且接收到的加密数据的总数是否与期望的数据服务器总数相同,若验证通过,则可以进入数据统计阶段,否则需要确定验证未通过的原因。

统计服务器在得到待统计数据和签名信息之后,还可以将签名信息和待统计数据对应写入区块链中,用于监管服务器对数据服务器所提供的待统计数据进行验证。一种可实现方式中,待统计数据为非敏感数据,可以将待统计数据作为明文数据与签名信息对应存储至区块链中;另一种可实现方式中,待统计数据为敏感数据,可以将待统计数据转化为对应的区间值(例如,前30%)与签名信息对应存储至区块链中。示例性的,非敏感数据可以用于计算精确的分布曲线,敏感数据可以用于计算粗略的分布区间(前10%,前30%,前50%,其他)。

本发明实施例中,在统计服务器将数据写入区块链上时,可以调用用于数据存证的智能合约来实现链上数据与链下的数据交互。当然,也可以是其他用于提供数据存证功能的区块链组件。

换个角度,在统计服务器将签名信息和待统计数据对应写入区块链之后,监管服务器可以从区块链上获取信息进行验证,具体的,监管服务器获取待验证信息,该待验证信息中包括多个一一对应的待统计数据和签名信息,监管服务器使用待验证数据服务器所在统计群的群私钥解密各签名信息,从而确定出待验证数据服务器的签名信息和对应的待统计数据,监管服务器根据待验证数据服务器的签名信息和对应的待统计数据,对待验证数据服务器所提供的待统计数据进行验证。此处,监管服务器可以采用公允的方式验证数据服务器所提供的待统计的真伪和合理性。

上述实施例中,监管服务器可以采用统计群的群私钥解密各签名信息,从而可以从区块链中获取待验证数据服务器所提供的待统计数据,从而对待验证数据服务器提供数据的真实性和合理性进行验证,保证数据统计过程中的数据有效性。将签名信息和待统计数据对应写入区块链中,为监管服务器提供未被篡改过的数据。

基于同一发明构思,图3示例性的示出了本发明实施例提供的一种基于区块链的数据统计的装置的结构,该装置可以执行基于区块链的数据统计的方法的流程。

所述装置包括:

收发单元301、解密单元302、处理单元303;

所述收发单元301用于接收转发服务器转发的来自数据服务器的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据;所述第一公钥是所述处理单元303生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述解密单元302用于使用所述第一公钥对应的第一私钥解密所述加密数据,得到所述待统计数据和所述签名信息;

所述处理单元303用于使用所述第二私钥对应的第二公钥对所述签名信息验证通过后,统计所述待统计数据得到统计结果;所述第二公钥是所述监管服务器发送至所述处理单元303的所述数据服务器所在统计群的群公钥。

可选的,所述处理单元303还用于:

在得到所述待统计数据和所述签名信息之后,将所述签名信息和所述待统计数据对应写入区块链中,以使所述监管服务器对所述数据服务器所提供的待统计数据进行验证。

可选的,所述处理单元303还用于:

在得到统计结果之后,将所述统计结果写入区块链中,并在接收到查询服务器发送的数据查询请求后,根据所述查询请求从所述区块链中获取查询结果,将所述查询结果反馈至所述查询服务器。

可选的,所述处理单元303具体用于:

使用所述第二公钥验证所述数据服务器是否为所述统计群中的数据服务器,若是,则确定所述签名信息通过验证。

可选的,所述处理单元303还用于:

在所述收发单元301接收所述转发服务器转发的来自数据服务器的加密数据之前,生成所述第一私钥和所述第一公钥;

所述收发单元301还用于:

将所述第一公钥发送至所述数据服务器;以及接收所述监管服务器发送的所述第二公钥。

基于同一发明构思,图4示例性的示出了本发明实施例提供的一种基于区块链的数据统计的装置的结构,该装置可以执行基于区块链的数据统计的方法的流程。

所述装置,包括:

接收单元401和发送单元402;

所述接收单元401用于接收数据服务器发送的加密数据;所述加密数据是所述数据服务器使用第一公钥对待统计数据和签名信息加密后的数据,所述第一公钥是统计服务器生成并发送至所述数据服务器的;所述签名信息是所述数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述发送单元402用于将所述加密数据发送至所述统计服务器,以使所述统计服务器使用所述第一公钥对应的第一私钥,对所述加密数据解密,并在使用所述第二私钥对应的第二公钥对解密后的签名信息验证通过后,统计解密后的待统计数据;所述第二公钥是所述监管服务器发送至所述统计服务器的所述数据服务器所在统计群的群公钥。

可选的,所述统计群中包括n个数据服务器,n大于等于1;所述数据服务器向所述接收单元401发送的加密数据有m个,m大于等于1,每一个加密数据对应一个数据属性;

所述接收单元401具体用于:

接收所述n个数据服务器中各数据服务器发送的m个加密数据;

所述发送单元402具体用于:

在确定接收完成所述n个数据服务器中各数据服务器发送的m个加密数据之后,确定出m组具有相同属性的加密数据,每组有n个加密数据;

在预设时间将m组加密数据发送至所述统计服务器。

基于同一发明构思,图5示例性的示出了本发明实施例提供的一种基于区块链的数据统计的装置的结构,该装置可以执行基于区块链的数据统计的方法的流程。

所述装置,包括:

加密单元501和收发单元502;

所述加密单元501用于使用第二私钥对待统计数据进行签名后生成签名信息;所述第二私钥是监管服务器根据数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述收发单元502;

所述加密单元501还用于使用第一公钥对所述签名信息和所述待统计数据加密后生成加密数据;所述第一公钥是统计服务器生成并发送至所述收发单元502的;

所述收发单元502用于将所述加密数据发送至所述转发服务器,以使所述转发服务器将所述加密数据转发至所述统计服务器进行数据统计。

可选的,所述待统计数据为m个,m大于等于1;

所述加密单元501具体用于:

针对每一个待统计数据,使用所述第一公钥对所述签名信息和所述待统计数据加密后生成加密数据。

可选的,所述收发单元502还用于:

在所述加密单元501生成签名信息之前,接收所述监管服务器发送的第二私钥;

所述收发单元502还用于:

在所述加密单元501生成加密数据之前,接收所述统计服务器发送的第一公钥。

基于同一发明构思,图6示例性的示出了本发明实施例提供的一种基于区块链的数据统计的装置的结构,该装置可以执行基于区块链的数据统计的方法的流程。

所述装置,包括:

获取单元601、解密单元602、验证单元603;

所述获取单元601用于从区块链上获取待验证信息,所述待验证信息包括待统计数据和签名信息;所述签名信息是提供所述待统计数据的数据服务器使用第二私钥对所述待统计数据签名后的信息;所述第二私钥是监管服务器根据所述数据服务器所在统计群的群公钥和群私钥针对所述数据服务器生成并发送至所述数据服务器;

所述解密单元602用于使用待验证数据服务器所在统计群的群私钥解密所述签名信息,确定所述待验证数据服务器的签名信息和对应的待统计数据;

所述验证单元603用于根据所述待验证数据服务器的签名信息和对应的待统计数据,对所述待验证数据服务器所提供的待统计数据进行验证。

可选的,所述装置还包括生成单元604和收发单元605;

所述生成单元604用于:

在从所述获取单元601区块链上获取待验证信息之前,生成统计群的群私钥和群公钥;

根据所述统计群的群私钥和群公钥,生成所述统计群中各数据服务器的第二私钥;

所述收发单元605用于:

将所述各数据服务器的第二私钥发送至各数据服务器,以使所述数据服务器使用所述第二私钥对待统计数据签名并生成签名信息;所述签名信息用于所述数据服务器使用第一公钥对所述签名信息和待统计数据加密;所述第一公钥是统计服务器生成并发送至所述数据服务器的;

将所述群公钥作为所述第二私钥对应的第二公钥发送至所述统计服务器,以使所述统计服务器使用所述第二公钥对所述签名信息验证。

基于同一发明构思,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于区块链的数据统计的方法。

基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述基于区块链的数据统计的方法。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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