背景技术
征信信息,是指由特定机关建立的个人信用数据库所采集、整理、保存的,为商业银行和个人提供信用报告查询服务,为货币政策制定、金融监管和法律、法规规定的其他用途提供有关信息服所使用的个人信用信息。
从征信信息中可以看出个人的借贷、银行、信用等等情况,故而征信信息对于用户是非常重要的私密文件。
而目前的征信信息一般是通过建设中心化系统收集各个机构的业务数据进行统一分析,进而获得电子数据版本的征信信息,由于电子数据非常容易遭到破坏。例如业务数据给建设中心化系统篡改征信信息,就会导致征信信息遭受到破坏,进而无法保证所提取的征信信息的准确性。
说明书内容
本说明书提供了一种处理征信数据的方法及装置、区块链数据共享系统,以解决或者部分解决目前的征信信息数据不准确的技术问题。
为解决上述技术问题,本说明书提供了一种处理征信数据的方法,所述方法包括:
基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文;所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,并且所述第一征信数据密文由所述上传节点上传至所述区块链;
基于所述第一征信数据密文生成解密请求;
将所述解密请求以及查询节点的加密密钥发送给所述上传节点,以使得所述上传节点利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据写入所述区块链;
从所述区块链中获取所述加密数据;
利用和所述查询节点的加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。
本说明书提供了一种处理征信数据的装置,包括:
第一获取模块,用于基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文;所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,并且所述第一征信数据密文由所述上传节点上传至所述区块链;
生成模块,用于基于所述第一征信数据密文生成解密请求;
发送模块,用于将所述解密请求以及查询节点的加密密钥发送给所述上传节点,以使得所述上传节点利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据写入所述区块链;
第二获取模块,用于从所述区块链中获取所述加密数据,所述加密数据仅能够由所述查询节点进行解密;
解密模块,用于利用和所述查询节点的加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。
本说明书公开了一种处理征信数据的方法,所述方法包括:
对第一征信数据进行加密,获得对应的第一征信数据密文;
将所述第一征信数据密文上传至区块链中;使得查询节点基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应;
接收由所述查询节点基于所述第一征信数据密文生成的解密请求以及所述查询节点的加密密钥;
利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据;
将所述加密数据写入所述区块链,以使得所述查询节点从所述区块链中获取所述加密数据,并利用和所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
本说明书公开了第一加密单元,用于对第一征信数据进行加密,获得对应的第一征信数据密文,所述第一征信数据密文仅能够由所述上传节点解密;
上传单元,用于将所述第一征信数据密文上传至区块链中;使得查询节点基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应;
接收单元,用于接收由所述查询节点基于所述第一征信数据密文生成的解密请求以及所述查询节点的加密密钥;
第二加密单元,用于利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据;
写入单元,用于将所述加密数据写入所述区块链,以使得所述查询节点从所述区块链中获取所述加密数据,并利用和所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
本说明书公开了一种区块链数据共享系统,包括:
上传节点,用于对第一征信数据进行加密,获得对应的第一征信数据密文;
所述上传节点,用于将所述第一征信数据密文上传至区块链中;
查询节点,用于基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应;
所述查询节点,用于基于所述第一征信数据密文生成解密请求;
所述上传节点,用于接收所述解密请求和所述查询节点的加密密钥;
所述上传节点,用于利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据;
所述上传节点,用于将所述加密数据写入所述区块链;
所述查询节点,用于从所述区块链中获取所述加密数据,并利用所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
本说明书公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本说明书公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
通过本说明书的一个或者多个技术方案,本说明书具有以下有益效果或者优点:
本说明书中的一个或者多个实施例公开了一种处理征信数据的方法及装置、区块链数据共享系统,为了解决或者部分解决目前的征信信息数据不准确的技术问题,将征信数据引入到区块链数据共享系统中,故而查询节点可基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文;所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,故而查询节点是无法获得第一征信数据密文中的第一征信数据。若查询节点想要获得第一征信数据,可基于所述第一征信数据密文生成解密请求;将所述解密请求和查询节点的加密密钥发送给所述上传节点,以使得上传节点利用查询节点的加密密钥对第一征信数据进行加密形成加密数据写入所述区块链;然后查询节点从所述区块链中获取所述加密数据,并利用和所述查询节点的加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。由此可见,本说明书中的一个或者多个实施例,并没有从建设中心化系统下载第一征信数据,而是上传节点将第一征信数据上传至区块链,通过区块链的作用,查询节点可直接从区块链中下载需要的第一征信数据,避免了建设中心化系统修改数据导致征信数据不准的缺陷,查询节点得到的第一征信数据真实有效。
进一步的,为了保证数据传输的安全性,上传节点利用所述查询节点无法解密的加密密钥对所述第一征信数据进行加密,获得所述第一征信数据密文,第一征信数据密文是通过上传节点加密,任何查询节点都无法对其进行解密。故而查询节点只能够获得第一征信数据密文,而不能够获得其中的内容,需要再次发送给解密请求给上传节点,并发送查询节点的加密密钥发送给上传节点。而为了避免其他查询节点获取到该第一征信数据,上传节点再次利用查询节点的加密密钥对第一征信数据进行加密,得到加密数据,故而该查询节点获得该加密数据之后,能够利用查询节点的加密密钥对应的解密密钥进行解密,进而获得第一征信数据。而其他查询节点获得该加密数据也无法解密,进而能够保证数据传输的安全性。
上述说明仅是本说明书技术方案的概述,为了能够更清楚了解本说明书的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
区块链(英语:blockchain或block chain):区块链是一种分布式数据库,起源自比特币。区块链是一串使用密钥学方法相关联产生的数据块,每一个数据块中都包含了区块链交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块:区块链中一种逻辑上的数据结构,每个区块有自己的一个哈希值,并指向前一个区块的hash值。每一个区块还包含了一系列的交易,这些交易只在一个区块中出现。区块链系统里不断地进行着把交易放入到新生成的区块中的过程。
交易:英文transaction在区块链领域的中文翻译。通常,一次资金的流转,一个资产的变动等,在区块链领域都可以叫做一笔交易。
积分:上传数据得到的奖励用积分表示,积分可以通过数据上传得到,查询数据则消耗积分。
本说明书的一个或者多个实施例提供了一种处理征信数据的方法,该方法应用在区块链数据共享系统中。
本说明书实施例中的区块链数据共享系统,参看图1,本实施例红中的系统包含了两类节点:查询节点,上传节点。上传节点,是用于上传征信数据至区块链的征信机构,征信机构包括借贷机构、银行、金融机构等等。查询节点,是用于从区块链中下载征信数据的征信机构,当然查询节点也具有上传功能。
查询节点和上传节点在区块链数据共享系统中的数目是不定的。例如,在区块链数据共享系统中,查询节点有一个或者多个(图1中的查询节点有1个),上传节点有一个或者多个(图1中的上传节点有3个,分别是上传节点A、上传节点B、上传节点C)。
举例来说,用户A分别向十家小贷机构提出一万元借款申请,小贷机构收到借款申请后根据用户A收入情况评估可以借出一万元,但各家小贷机构并不知晓用户A已经向其他小贷机构提出过借款申请并获批借款,那么各家小贷机构都会生成对于用户A的征信数据,然后将各自生成的针对用户A的征信数据上传至区块链,故而上传征信数据给区块链的各小贷机构就可以看作是上传节点。当然,这些小贷机构除了上传用户A的征信数据,也可以上传其他用户(例如用户B)的征信数据至区块链。假设有某个小贷机构准备贷款给用户A,需要获知用户A的征信情况,那么该小贷机构就可以从区块链中下载关于用户A的征信数据,进而根据用户A的征信数据评价用户A的历史借款以及履约情况。从区块链中下载关于用户A的征信数据的小贷机构则是查询节点。
作为一种可选的实施例,本实施例首先介绍上传节点处理征信数据的过程。本说明书的一个或者多个实施例的上传节点的数量是没有限制的,可以是一个或者多个。如果上传节点不同,则其存储的第一征信数据不同。但是所有的上传节点处理自身的第一征信数据的过程都是类似的,故而本实施例对于上传节点的数量是不做限制的,多个上传节点的处理流程和一个上传节点处理的流程都是类似的。
参看图2,是本实施例中的上传节点处理征信数据的实施过程图,具体包括下述步骤:
步骤21,上传节点对第一征信数据进行加密,获得对应的第一征信数据密文。
在具体的实施过程中,上传节点利用所述查询节点无法解密的加密密钥对所述第一征信数据进行加密,获得所述第一征信数据密文。更进一步的,上传节点利用仅能够由自身解密的加密密钥对第一征信数据进行加密。也就是说,除了上传节点本身,其他任何节点(所有查询节点、其他上传节点等等)都无法对第一征信数据密文加密。为了便于区分,本实施例将上传节点的加密密钥命名为第一加密密钥,相应的,解密密钥命名为第一解密密钥。
故而,上传节点可利用第一加密密钥对第一征信数据进行加密,进而获得对应的第一征信数据密文。进一步的,第一加密密钥对应有第一解密密钥,第一解密密钥用于解密第一征信数据密文,进而获得第一征信数据。也就是说,所述第一加密密钥只能够由所述上传节点利用和所述第一加密密钥对应的第一解密密钥进行解密。而第一解密密钥只有上传节点自身获知,其他节点得不到第一解密密钥,故而第一征信数据密文只能够由上传节点解密,其他节点在获得上传节点对应的第一征信数据密文之后是不能够解密的。如此能够保证第一征信数据在区块链中的安全性。
在上传节点加密的过程中,有两种加密方式:对称加密和非对称加密。
若利用对称加密的方式,则上传节点可以利用自身确定出的第一加密密钥对第一征信数据进行加密。而第一解密密钥和第一加密密钥必须一致才能够解密出第一征信数据,例如第一加密密钥为123,那么第一解密密钥也必须为123。而上传节点确定第一加密密钥的方式有很多种,例如是上传节点接收用户输入的第一加密密钥,或者是上传节点随机生成的第一加密密钥等等。
若利用非对称加密的方式,则上传节点利用对应的公钥(第一加密密钥)对第一征信数据进行加密。一般来说,非对称加密时,上传节点有两把钥匙:公钥和私钥。公钥是公开的,区块链系统的任意节点都能够获知上传节点的公钥。而私钥(第一解密密钥)只有上传节点自身拥有并知晓的密钥。非对称加密的含义,就在于若上传节点利用公钥对第一征信数据进行加密,则必须用上传节点对应的私钥解密,反之亦然。故而,若上传节点利用对应的公钥对第一征信数据进行加密,获得对应的第一征信数据密文之后,除了上传节点本身可以解密第一征信数据密文之外,其他任何节点均无法对第一征信数据密文进行解密,故而能够保证数据传输的安全性。
步骤22,所述上传节点将所述第一征信数据密文上传至区块链中;使得查询节点基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应。
在上传节点将所述第一征信数据密文上传至区块链之后,有可能一个区块包含了多个上传节点上传的第一征信数据密文,参看表1,是区块N(高度N)中包含的第一征信数据密文。表2是区块N+1(高度N+1)中包含的第一征信数据密文。
表1
表2
表1中的区块N,包含了上传节点A的第一征信数据密文(数据1)和上传节点B的第一征信数据密文(数据2)。此处的数据1和2能否在一个区块中由区块链数据层查询系统决定。表1中举例的是已经在同一个区块里面的两条数据。
表2中的N+1,包含了上传节点A的第一征信数据密文(数据1)和上传节点C的第一征信数据密文(数据2)。值得注意的是,表2中的“数据1”和表1中的“数据1”虽然都是上传节点A上传的,但是并不是同一个征信数据,因为各区块中的数据是按照顺序排列的,所以“数据1”实际上表示的是排列在第1位顺序的征信数据。
对于上传节点来说,其内部具有很多个用户的征信数据,例如上传节点A则具有用户A的征信数据(用户身份识别为A),和用户B的征信数据(用户身份识别为B)。
进一步的,在上传节点将所述第一征信数据密文上传至区块链中之后,上传节点可以基于所述第一征信数据密文,获得对应分值的第一积分。也就是说每当上传节点上传一条第一征信数据密文,就可以获得对应的积分奖励,上传的越多,获得的积分越多。故而,在上传了第一征信数据密文之后,上传节点会统计其上传的第一征信数据密文的数量,然后获得对应的积分奖励。而这种奖励机制是得到了区块链数据共享系统中所有节点的共识,故而所有的节点在上传征信数据密文之后,都会得到相应的奖励,此处的目的是为了鼓励所有的上传机构上传征信数据。
进一步的,在上传第一征信数据密文之后,可以统计第一征信数据密文的数量,然后按照第一征信数据密文的数量,获得对应的第一积分。其中,第一积分的分值和第一征信数据密文的数量相等。例如上传了两条第一征信数据密文之后,则获得的第一积分为2分。
作为一种可选的实施例,在上传第一征信数据密文之后,会按照第一征信数据密文的数量,按比例获得第一积分,例如每上传一次第一征信数据获得2积分。
而当所有的节点在在下载了第一征信数据密文之后,也会消耗相应的奖励,这种消耗机制也得到了区块链数据共享系统中所有节点的共识。并且这种消耗机制能够刺激查询节点上传第二征信数据,进而获得对应的第二积分。
而在上传节点上传将所述第一征信数据密文上传至区块链中之后,区块中会呈现出数据编号、用户身份标识、上传机构、数据内容(第一征信数据密文)等等内容。举例来说,区块N中出现的数据1是上传机构A针对用户A上传的征信数据,标识处于区块N中的第一个数据。而用户身份标识则是用户A的身份标识。故而,通过用户身份标识即可以获得对应的第一征信数据密文。
在上传节点上传将所述第一征信数据密文上传至区块链中之后,查询节点会基于用户身份标识,从所述区块链上获取所述第一征信数据密文。由于所述第一征信数据密文和所述用户身份标识对应。故而查询节点基于用户身份标识可从区块链中获取到用户身份标识对应的第一征信数据密文。
而由于第一征信数据密文是由上传节点加密的,故而也只能由上传节点解密,其他节点无法对第一征信数据密文解密。故而对于查询节点来说,在获得第一征信数据密文之后实际上是无法对其进行解密的,故而查询节点会基于该第一征信数据密文生成解密请求,并发送给上传节点。
作为一种可选的实施例,查询节点会发送查询节点的加密密钥给上传节点。
作为一种可选的实施例,查询节点还会发送第一征信数据密文给上传节点。
步骤23,所述上传节点接收由所述查询节点基于所述第一征信数据密文生成的解密请求以及所述查询节点的加密密钥。
作为一种可选的实施例,上传节点还会接收第一征信数据密文。
步骤24,所述上传节点利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据。
作为一种可选的实施例,在执行步骤24之前,如果上传节点接收到第一征信数据密文,会基于该解密请求中携带的第一征信数据密文验证查询节点的解密请求的合法性,判断该解密请求是否真实,若真实有效,则执行步骤24。
作为一种可选的实施例,在利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据之前,可以先基于该解密请求利用和所述第一加密密钥对应的第一解密密钥对该第一征信数据密文进行解密。
进一步的,如果上传节点利用对称加密方法对第一征信数据密文进行加密,那么则用和加密密钥相同的解密密钥对其进行解密即可。如果上传节点利用非对称加密方法中的公钥对第一征信数据密文进行加密,那么则用和公钥对应的私钥对其进行解密即可。
解密之后则会获得第一征信数据,然后再利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据。
作为一种可选的实施例,上传节点本身是存储有第一征信数据的,故而在接收到查询节点的解密请求以及所述查询节点的加密密钥之后,可直接利用所述查询节点的加密密钥对存储在所述上传节点本地的第一征信数据进行加密形成加密数据。
在本说明书的一个或者多个实施例中,查询节点的加密密钥仅能够由查询节点解密,故而利用该加密密钥加密形成的加密数据是其他任何节点(上传节点和其他查询节点等等)无法解密的,进而能够保证数据传输的安全性。
具体的,为了和上传节点的第一加密密钥和第一解密密钥进行区分。本实施例将查询节点对应的加密密钥称为第二加密密钥,将查询节点对应的解密密钥称为第二解密密钥。
作为一种可选的实施例,解密请求可携带有第一征信数据密文、第二加密密钥等等一种或者多种数据。
故而,上传节点可利用第二加密密钥对第一征信数据进行再次加密,进而获得加密数据。进一步的,第二加密密钥对应有第二解密密钥,第二解密密钥用于解密加密数据,进而获得第一征信数据。而第二解密密钥只有查询节点自身获知,其他节点得不到第二解密密钥,故而加密数据只能够由查询节点解密,其他节点即便获得加密数据也是不能够解密的。如此能够保证加密数据在区块链中的安全性。
查询节点的加密方式也有两种:对称加密和非对称加密。
若利用对称加密的方式,则查询节点会在解密请求中携带第二加密密钥,或者将第二加密密钥单独发送给上传节点,进而使得上传节点能够利用查询节点的第二加密密钥对第一征信数据进行加密,进而得到加密数据。
若利用非对称加密的方式,那么查询节点的公钥(第二加密密钥)是公开的,区块链系统的任意节点都能够获知上传节点的公钥。而私钥(第二解密密钥)只有查询节点自身拥有并知晓的密钥。故而,当上传节点利用查询节点对应的公钥对第一征信数据进行加密形成加密数据之后,只有查询节点能够利用自身的私钥对加密数据进行解密,故而能够进一步保证第一征信数据的安全性。
步骤25,所述上传节点将所述加密数据写入所述区块链,以使得所述查询节点从所述区块链中获取所述加密数据,并利用所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
具体的,由于上传节点利用查询节点的加密密钥进行加密形成加密数据,故而即便是其他查询节点获得该加密数据,实际上不能够对该加密数据解密,进而获得其中的内容,而只有查询节点获得该加密数据之后才能够对其进行解密,进而获得第一征信数据。
综上所述,本说明书中的一个或者多个实施例,公开了上传节点处理征信数据的实施过程,本实施例的上传节点在上传至区块链时,和现有的上传节点上传时做的处理不同,现有上传区块链的方式是,上传节点会利用自己的私钥对要上传的数据进行加密,故而其他节点在下载到该数据时,可直接利用上传节点对应的公钥对其进行解密,进而获得数据。而本实施例为了防止业务数据给建设中心化系统篡改征信信息进而导致的所提取的征信信息的准确性,采用了区块链的方式上传征信数据。而为了保证征信数据的安全性,在上传区块链的过程中,并未采用现有的利用自身私钥加密数据然后上传区块链的方式。而是利用对应的加密方式(对称加密,或者非对称加密的公钥)对第一征信数据进行加密形成第一征信数据密文,然后上传至区块链,故而当查询节点获取到该第一征信数据密文,是无法对其进行解密的,进而保证了第一征信数据的私密性和安全性。而若查询节点需要获得第一征信数据,则会发送解密请求给对应的上传节点,上传节点会基于该解密请求对第一征信数据密文进行解密,并利用查询节点对应的加密密钥对第一征信数据再次进行加密(对称加密,或者非对称加密的公钥),并再次上传至区块链。由于利用了查询节点对应的加密密钥进行加密,故而除了查询节点之外,其他节点是无法获得该第一征信数据的,进而能够进一步保证查询节点获得的第一征信数据的私密性和安全性。
进一步的,为了鼓励各上传节点上传征信数据,在上传节点每上传一次征信数据之后,都会获得对应分值的第一积分。
由于积分可以用来作为从区块链下载数据的费用,故而会刺激各上传节点和各查询节点尽可能多的上传征信数据进而获得更多的积分,能够避免各节点因为消极上传征信数据导致的针对单个用户的征信数据不够全面完整的问题,可以使得查询节点下载的针对单个用户的征信数据全面完整真实有效,只有全面完整真实有效的征信数据才能够真实的反应单个用户的征信信用,故而该方法能够刺激各上传节点和各查询节点尽可能多的上传征信数据,进而提高用户征信信用评判的准确性。
以上便是上传节点处理征信数据的实施过程,下面的实施例则会介绍查询节点处理征信数据的实施过程。
参看图3,是本说明书中的一个或者多个实施例中的处理征信数据的实施过程图,具体步骤如下:
步骤31,查询节点基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文。
在具体的实施过程中,所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,并且所述第一征信数据密文由所述上传节点上传至所述区块链。
更进一步的,所述第一征信数据密文是所述上传节点利用所述查询节点无法解密的加密密钥对所述第一征信数据加密后形成的密文。也就是说,第一征信数据密文是上传节点利用仅能够由自身解密的加密密钥对第一征信数据进行加密。故而,除了上传节点本身,其他任何节点(所有查询节点、其他上传节点等等)都无法对第一征信数据密文加密。为了便于区分,本实施例将上传节点的加密密钥命名为第一加密密钥,相应的,解密密钥命名为第一解密密钥。
而第一征信数据密文是由上传节点利用第一加密密钥进行加密的,而第一加密密钥对应的第一解密密钥只有上传节点拥有,故而第一征信数据密文只能由上传节点进行解密。假设第一征信数据密文多有个,那么每个第一征信数据密文只能由各自对应的上传节点进行解密。
而由于区块链上存储第一征信数据密文之外,还有第一征信数据密文对应的用户身份标识,第一征信数据密文对应的上传节点等等。故而查询节点可以基于用户身份标识来获得第一征信数据密文。
进一步的,所述上传节点中具有所述第一征信数据密文对应的第一积分,其中,所述第一积分的分值和所述第一征信数据密文的数量对应。
而由于第一征信数据密文由上传节点对应的第一加密密钥加密,第一征信数据密文只有上传节点能够解密。也即:第一征信数据密文是由上传节点利用只有上传节点能够解密的第一加密密钥进行加密,故而查询节点无法对第一征信数据密文解密,进而能够保证第一征信数据的安全性和私密性。
而在查询节点基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文之前,查询节点也能够上传征信数据至区块链,为了和上传节点上传的第一征信数据密文进行区分,查询节点上传的征信数据称为第二征信数据密文。
而在具体的实施过程中,所述查询节点对用于上传至所述区块链的第二征信数据进行加密,形成第二征信数据密文;所述查询节点将所述第二征信数据密文上传至所述区块链。
而在具体的实施过程中,查询节点也可以利用对应的加密密钥对用于上传至所述区块链的第二征信数据进行加密。进一步的,查询节点利用第二加密密钥对用于上传至所述区块链的第二征信数据进行加密,形成第二征信数据密文然后将形成第二征信数据密文上传至区块链。故而,除了查询节点本身,其他任何节点也是无法对第二征信数据密文进行解密的,能够保证数据传输的安全性。若需要解密,则其他任何需要解密的节点发送解密请求给查询节点,利用其他节点能够解密的加密密钥进行二次加密,此时,查询节点执行的是相当于上传节点的执行过程,和上传节点的功能一致。
作为一种可选的实施例,所述查询节点会统计所述第二征信密文的数量,获得对应的第二积分;其中,所述第二积分的分值和所述第二征信数据密文的数量对应。
步骤32,所述查询节点基于所述第一征信数据密文生成解密请求。
具体来说,该解密请求中携带有第一征信数据密文,用于上传节点验证该解密请求的合法性。作为一种可选的实施例,解密请求中还会携带只有查询节点能够解密的加密密钥(第二加密密钥),也就是说,该加密密钥(也就是第二加密密钥)只有查询节点能够解密。
步骤33,所述查询节点将所述解密请求以及查询节点的加密密钥发送给所述上传节点,以使得所述上传节点利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据写入所述区块链。
在具体的实施过程中,查询节点的加密密钥只有查询节点能够解密,查询节点对应的加密密钥在本实施例中称之为第二加密密钥。故而上传节点将所述第一征信数据密文解密成所述第一征信数据之后,将所述第一征信数据利用所述查询节点对应的加密密钥(也就是第二加密密钥)进行加密形成加密数据写入所述区块链,则只有查询节点能够解密该加密数据,故而其他查询节点即便获得了该加密数据,也不能够获得其中的第一征信数据,进而能够保证第一征信数据的安全性。
步骤34,所述查询节点从所述区块链中获取所述加密数据。
步骤35,所述查询节点利用所述查询节点的加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。
在具体的实施过程中,根据加密方法的不同,解密的方法也会不同。若是对称加密,那么则查询节点利用和第二加密密钥相同的第二解密密钥解密该加密数据即可。
若是非对称加密,则所述查询节点利用对应的私钥(第二解密密钥)对所述加密数据进行解密,获得所述第一征信数据,其中,所述加密数据是所述上传节点利用所述查询节点对应的公钥进行加密获得的数据。
作为一种可选的实施例,查询节点利用对应的解密密钥解密所述加密数据,获得所述第一征信数据之后,所述查询节点统计所述第一征信数据的数量;所述查询节点基于所述第一征信数据的数量,扣除对应分值的所述第二积分。
作为一种可选的实施例,通过上述实施过程的处理,查询节点能够从区块链上获得和用户身份标识对应的所有第一征信数据(这些第一征信数据可能是一个上传节点上传至区块链,也可能是很多个上传节点上传至区块链),然后根据所有第一征信数据判定出用户身份标识对应的用户的征信情况,进而作为评估该用户信用的标准。
基于同一发明构思,下面的实施例介绍一种处理征信数据的装置,该装置针对查询节点侧,具体请参看图4,包括:
在本实施例中,公开了一种处理征信数据的装置,包括:
第一加密单元41,用于对第一征信数据进行加密,获得对应的第一征信数据密文,所述第一征信数据密文仅能够由所述上传节点解密;
上传单元42,用于将所述第一征信数据密文上传至区块链中;使得查询节点基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应;
接收单元43,用于接收由所述查询节点基于所述第一征信数据密文生成的解密请求以及所述查询节点的加密密钥;
第二加密单元44,用于利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据;
写入单元45,用于将所述加密数据写入所述区块链,以使得所述查询节点从所述区块链中获取所述加密数据,并利用和所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
作为一种可选的实施例,该装置还包括:获得单元,用于将所述第一征信数据密文上传至区块链中之后,基于所述第一征信数据密文,获得对应分值的第一积分。
作为一种可选的实施例,所述第一加密单元41,具体用于利用所述查询节点无法解密的加密密钥对所述第一征信数据进行加密,获得所述第一征信数据密文。
基于同一发明构思,参看图5,本实施例公开了一种处理征信数据的装置,包括:
第一获取模块51,用于基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文;所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,并且所述第一征信数据密文由所述上传节点上传至所述区块链;
生成模块52,用于基于所述第一征信数据密文生成解密请求;
发送模块53,用于将所述解密请求以及查询节点的加密密钥发送给所述上传节点,以使得所述上传节点利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据写入所述区块链;
第二获取模块54,用于从所述区块链中获取所述加密数据,所述加密数据仅能够由所述查询节点进行解密;
解密模块55,用于利用和所述查询节点的加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。
作为一种可选的实施例,所述上传节点中具有所述第一征信数据密文对应的第一积分,其中,所述第一积分的分值和所述第一征信数据密文的数量对应。
作为一种可选的实施例,所述装置还包括:
加密模块,用于对用于上传至所述区块链的第二征信数据进行加密,形成第二征信数据密文;
上传模块,用于将所述第二征信数据密文上传至所述区块链;
第一统计模块,用于统计所述第二征信数据密文的数量,获得对应的第二积分;其中,所述第二积分的分值和所述第二征信数据密文的数量对应。
作为一种可选的实施例,所述装置还包括:
第二统计模块,用于利用对应的解密密钥解密所述加密数据,获得所述第一征信数据之后,统计所述第一征信数据的数量;
扣除模块,用于基于所述第一征信数据的数量,扣除对应分值的所述第二积分。
作为一种可选的实施例,所述解密模块55,具体用于利用所述查询节点对应的私钥对所述加密数据进行解密,获得所述第一征信数据,其中,所述加密数据是所述上传节点利用所述查询节点对应的公钥进行加密获得的数据。
作为一种可选的实施例,所述第一征信数据密文是所述上传节点利用所述查询节点无法解密的加密密钥对所述第一征信数据加密后形成的密文。
基于统一发明构思,本实施例还公开了一种区块链数据共享系统,包括:
上传节点,用于对第一征信数据进行加密,获得对应的第一征信数据密文;
所述上传节点,用于将所述第一征信数据密文上传至区块链中;
查询节点,用于基于用户身份标识,从所述区块链上获取所述第一征信数据密文,所述第一征信数据密文和所述用户身份标识对应;
所述查询节点,用于基于所述第一征信数据密文生成解密请求;
所述上传节点,用于接收所述解密请求和所述查询节点的加密密钥;
所述上传节点,用于利用所述查询节点的加密密钥对所述第一征信数据进行加密形成加密数据;
所述上传节点,用于将所述加密数据写入所述区块链;
所述查询节点,用于从所述区块链中获取所述加密数据,并利用所述查询节点的加密密钥对应的解密密钥对所述加密数据进行解密,获得所述第一征信数据。
基于与前述实施例中同样的说明书构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本说明书的实施例还提供一种计算机设备,如图6所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文任一所述方法的步骤。
其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口605在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
通过本说明书的一个或者多个实施例,本说明书具有以下有益效果或者优点:
本说明书中的一个或者多个实施例公开了一种处理征信数据的方法及装置、区块链数据共享系统,为了解决或者部分解决目前的征信信息数据不准确的技术问题,将征信数据引入到区块链数据共享系统中,故而查询节点可基于用户身份标识,从区块链上获取所述用户身份标识对应的第一征信数据密文;所述第一征信数据密文是通过上传节点将存储的第一征信数据加密后形成的密文,并且所述第一征信数据密文由所述上传节点上传至所述区块链。而由于第一征信数据密文是通过上传节点加密,查询节点无法对其进行解密,进而查询节点会基于所述第一征信数据密文生成解密请求;将所述解密请求发送给所述上传节点,以使得所述上传节点将所述第一征信数据密文解密成所述第一征信数据。进一步的,上传节点还会将所述第一征信数据利用查询节点对应的加密密钥进行加密形成加密数据写入所述区块链;因此除了查询节点,其他节点是无法对加密数据进行解密的,故而查询节点从所述区块链中获取所述加密数据;然后利用和所述加密密钥对应的解密密钥解密所述加密数据,获得所述第一征信数据。由此可见,本说明书中的一个或者多个实施例,并没有从建设中心化系统下载第一征信数据,而是上传节点将第一征信数据上传至区块链,通过区块链的作用,查询节点可直接从区块链中下载需要的第一征信数据,避免了建设中心化系统修改数据导致征信数据不准的缺陷,查询节点得到的第一征信数据真实有效。另外,为了保证数据传输的安全性,上传节点在上传数据时对第一征信数据进行了加密形成第一征信数据密文,故而查询节点只能够获得第一征信数据密文,而不能够获得其中的内容,需要再次发送给解密请求给上传节点,使得上传节点对第一征信数据密文进行解密。进一步的,为了避免其他查询节点获取到该第一征信数据,上传节点再次利用查询节点对应的加密密钥对第一征信数据进行加密,得到加密数据,故而该查询节点获得该加密数据之后,能够利用对应的解密密钥进行解密,进而获得第一征信数据。而其他查询节点获得该加密数据也无法解密,进而能够保证数据传输的安全性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本说明书也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本说明书的内容,并且上面对特定语言所做的描述是为了披露本说明书的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本说明书的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个说明书方面中的一个或多个,在上面对本说明书的示例性实施例的描述中,本说明书的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本说明书要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,说明书方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本说明书的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本说明书的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本说明书的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本说明书实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本说明书还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本说明书的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本说明书进行说明而不是对本说明书进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本说明书可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。