CN108462724B - 数据共享方法、装置、系统、成员节点和可读存储介质 - Google Patents

数据共享方法、装置、系统、成员节点和可读存储介质 Download PDF

Info

Publication number
CN108462724B
CN108462724B CN201810470510.3A CN201810470510A CN108462724B CN 108462724 B CN108462724 B CN 108462724B CN 201810470510 A CN201810470510 A CN 201810470510A CN 108462724 B CN108462724 B CN 108462724B
Authority
CN
China
Prior art keywords
member node
query
risk data
node
information
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
CN201810470510.3A
Other languages
English (en)
Other versions
CN108462724A (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.)
JD Digital Technology Holdings Co Ltd
Jingdong Technology Holding Co Ltd
Original Assignee
JD Digital Technology Holdings 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 JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN201810470510.3A priority Critical patent/CN108462724B/zh
Publication of CN108462724A publication Critical patent/CN108462724A/zh
Application granted granted Critical
Publication of CN108462724B publication Critical patent/CN108462724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

本公开涉及一种数据共享方法、装置、系统、成员节点和可读存储介质,涉及计算机技术领域。本公开的方法包括:第一成员节点接收第二成员节点发送的风险数据查询请求,其中,第一成员节点和第二成员节点为区块链系统中的成员节点;检验第二成员节点的通证状态是否满足本次风险数据查询的条件,通证状态存储于区块链中,用于反映第二成员节点的风险数据查询能力;在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第二成员节点返回风险数据查询结果;根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链,查询信息包括风险数据查询引起的第一成员节点与第二成员节点的通证状态的变化信息。

Description

数据共享方法、装置、系统、成员节点和可读存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种数据共享方法、装置、系统、成员节点和可读存储介质。
背景技术
风险控制对于企业的运营有着重要的影响。企业在开展各类风险控制相关业务的过程中,需要收集风险数据,构建风险控制体系,并最终服务于相关业务场景。在开展风险控制业务的过程中,各家企业往往会产生数据共享的需求,用以提高相应的风控能力。
目前风险数据共享的主要方式是,各企业之间通过查询接口共享数据,被查询方根据查询流量进行计价收费。
发明内容
发明人发现:基于接口查询技术的风险数据共享机制,缺乏统一的数据定价机制,价格完全由数据提供方制定,在信息不对称的前提下,数据使用方无法确认其付费价格是否合理,不利于各企业间公平查询,以使数据更好的在企业间共享。发明人希望提出一种基于区块链技术实现企业间透明、安全的风险数据共享的方案。但是,风险数据的查询一般要求实时性较高,例如,互联网金融平台基于个人信用记录批准贷款时,需要实时查询用户信用记录。因此,如何基于区块链技术实现企业间实时、透明、安全的风险数据共享是本发明所要解决的技术问题之一。
本公开所要解决的一个技术问题是:如何基于区块链技术实现企业间实时、透明、安全的风险数据共享。
根据本公开的一些实施例,提供的一种数据共享方法,包括:第一成员节点接收第二成员节点发送的风险数据查询请求,第一成员节点和第二成员节点为区块链系统中的成员节点;第一成员节点检验第二成员节点的通证状态是否满足本次风险数据查询的条件,通证状态存储于区块链中,用于反映第二成员节点的风险数据查询能力;第一成员节点在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第二成员节点返回风险数据查询结果;第一成员节点根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链,查询信息包括风险数据查询引起的第一成员节点与第二成员节点的通证状态的变化信息。
在一些实施例中,通证状态包括:通证数量;第一成员节点向第二成员节点返回风险数据查询结果包括:第一成员节点在第二成员节点的通证数量达到阈值的情况下,根据第二成员节点的通证数量向第二成员节点返回风险数据查询结果,风险数据查询结果中包含的风险数据的条数不大于第二成员节点的通证数量。
在一些实施例中,第一成员节点的区块链服务器接收第二成员节点的区块链服务器发送的风险数据查询请求,风险数据查询请求由第二成员节点的业务服务器发送至第二成员节点的区块链服务器;第一成员节点的区块链服务器检验第二成员节点的通证状态是否满足本次风险数据查询的条件;第一成员节点的区块链服务器在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第一成员节点的业务服务器转发风险数据查询请求,并接收第一成员节点的业务服务器返回的风险数据查询结果;第一成员节点的区块链服务器通过第二成员节点的区块链服务器向第二节点的业务服务器返回风险数据查询结果;第一成员节点的区块链服务器根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链。
在一些实施例中,该方法还包括:第二成员节点的业务服务器向第二成员节点的区块链服务器发送地址查询请求;第二成员节点的业务服务器接收第二成员节点的区块链服务器返回的最新版本的各个成员节点的区块链服务器的地址,以便第二成员节点的业务服务器选取第一成员节点的区块链服务器的地址,并发起风险数据查询请求。
在一些实施例中,该方法还包括:第二成员节点对区块链中存储的第一成员节点与第二成员节点的查询信息进行审计,确定查询信息是否正确;第二成员节点响应于查询信息错误,向区块链系统中的成员节点发起通证冲正请求,以便区块链系统中的成员节点将通证冲正信息写入区块链,对错误的查询信息进行冲正;第一成员节点响应于通证冲正信息写入区块链,根据正确的风险数据的查询信息重新发起查询确认请求。
在一些实施例中,通证冲正查询请求包括:错误的查询信息对应的查询ID,平台节点对查询ID的签名;区块链系统中的成员节点将通证冲正信息写入区块链包括:区块链系统中的成员节点根据平台节点的公钥验证平台节点对查询ID的签名;区块链系统中的成员节点根据查询ID查询对应的错误的查询信息,根据错误的查询信息中记录的第一成员节点和第二成员节点的通证状态的变化,验证第一成员节点和第二成员节点当前的通证数量是否足够进行冲正。
在一些实施例中,区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链包括:区块链系统中的成员节点接收第一成员节点发送的查询确认请求,查询确认请求包括风险数据的查询信息;区块链系统中的成员节点根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;区块链系统中的成员节点接收根据风险数据的查询信息生成的区块,将区块加入区块链,其中,区块中包括风险数据查询双方的通证的状态变化信息。
在一些实施例中,通证状态包括:通证数量;通证数量的变化是根据成员节点查询命中的风险数据的条数确定的,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量。
在一些实施例中,通证包括查询通证和权益通证;风险数据请求方根据查询命中的风险数据的条数扣减相应的查询通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的查询通证数量和权益通证数量;权益通证用于反映预设周期内各个成员节点提供的风险数据的价值,根据智能合约规定的当前周期的兑换汇率兑换查询通证。
根据本公开的另一些实施例,提供的一种成员节点,该成员节点为区块链系统中的第一成员节点,包括:查询请求接收模块,用于接收第二成员节点发送的风险数据查询请求,第二成员节点为区块链系统中的成员节点;检验模块,用于检验第二成员节点的通证状态是否满足本次风险数据查询的条件,通证状态存储于区块链中,用于反映第二成员节点的风险数据查询能力;查询结果发送模块,用于在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第二成员节点返回风险数据查询结果;查询确认模块,用于根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链,查询信息包括风险数据查询引起的第一成员节点与第二成员节点的通证状态的变化信息。
在一些实施例中,通证状态包括:通证数量;查询结果发送模块用于在第二成员节点的通证数量达到阈值的情况下,根据第二成员节点的通证数量向第二成员节点返回风险数据查询结果,风险数据查询结果中包含的风险数据的条数不大于第二成员节点的通证数量。
在一些实施例中,第一成员节点包括:业务服务器和区块链服务器;查询请求接收模块设置于区块链服务器,用于接收第二成员节点的区块链服务器发送的风险数据查询请求,风险数据查询请求由第二成员节点的业务服务器发送至第二成员节点的区块链服务器;检验模块设置于区块链服务器,用于在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第一成员节点的业务服务器转发风险数据查询请求,并接收第一成员节点的业务服务器返回的风险数据查询结果;查询结果发送模块设置于区块链服务器,用于通过第二成员节点的区块链服务器向第二节点的业务服务器返回风险数据查询结果;查询确认模块设置于区块链服务器,用于根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链。
在一些实施例中,通证状态包括:通证数量;通证数量的变化是根据成员节点查询命中的风险数据的条数确定的,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量。
在一些实施例中,通证包括查询通证和权益通证;风险数据请求方根据查询命中的风险数据的条数扣减相应的查询通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的查询通证数量和权益通证数量;权益通证用于反映预设周期内各个成员节点提供的风险数据的价值,根据智能合约规定的当前周期的兑换汇率兑换查询通证。
根据本公开的又一些实施例,提供的一种数据共享系统,包括:前述任意实施例中的被配置为第一成员节点的成员节点;以及第二成员节点,用于向第一成员节点发送风险数据查询请求,在第二成员节点通证状态满足本次风险数据查询的条件的情况下,接收第一成员节点返回的风险数据查询结果。
在一些实施例中,第二成员节点包括:业务服务器和区块链服务器;第二成员节点的业务服务器用于向第二成员节点的区块链服务器发送地址查询请求,接收第二成员节点的区块链服务器返回的最新版本的各个成员节点的区块链服务器的地址,选取第一成员节点的区块链服务器的地址,并发起风险数据查询请求。
在一些实施例中,第二成员节点还用于对区块链中存储的第一成员节点与第二成员节点的查询信息进行审计,确定查询信息是否正确,响应于查询信息错误,向区块链系统中的成员节点发起通证冲正请求,以便区块链系统中的成员节点将通证冲正信息写入区块链,对错误的查询信息进行冲正;第一成员节点还用于响应于通证冲正信息写入区块链,根据正确的风险数据的查询信息重新发起查询确认请求。
在一些实施例中,通证冲正查询请求包括:错误的查询信息对应的查询ID,平台节点对查询ID的签名;该系统还包括:至少一个其他成员节点;其他成员节点,用于根据平台节点的公钥验证平台节点对查询ID的签名,根据查询ID查询对应的错误的查询信息,根据错误的查询信息中记录的第一成员节点和第二成员节点的通证状态的变化,验证第一成员节点和第二成员节点当前的通证数量是否足够进行冲正。
在一些实施例中,该系统还包括:至少一个其他成员节点;其他成员节点用于接收第一成员节点发送的查询确认请求,查询确认请求包括风险数据的查询信息;根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;接收根据风险数据的查询信息生成的区块,将区块加入区块链,其中,区块中包括风险数据查询双方的通证的状态变化信息。
根据本公开的再一些实施例,提供的一种数据共享装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器设备中的指令,执行如前述任意实施例的数据共享方法。
根据本公开的又一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据共享方法。
本公开中基于区块链技术实现联盟成员之间风险数据的共享。区块链系统中成员节点的通证状态被记录在区块链中,用于反映的风险数据查询能力。第一成员节点在接收到第二成员节点发送的风险数据查询请求后,首先基于区块链中记录的第二成员节点的通证状态对其进行验证,在验证第二成员节点通证状态满足本次风险数据查询的条件的情况下,实时向第二成员节点返回风险数据查询结果。之后第一成员节点可以根据本次风险数据的查询发起查询确认请求,以便区块链系统中的成员节点将本次查询信息写入区块链。本公开中通证作为风险数据查询的凭证,通过各个成员节点通证的状态变化可以反映风险数据的查询过程,也可以验证成员节点的查询能力。成员节点之间采取先验证查询能力、实时查询风险数据、事后记账的方法,提高了风险数据查询的实时性,同时,各个企业之间的风险数据的查询对于其他企业是公开、透明的,并且查询信息安全的被记录下来,不可篡改,便于追溯,实现了各企业间透明、安全的风险数据共享。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的数据共享方法的流程示意图。
图2示出本公开的另一些实施例的数据共享方法的流程示意图。
图3示出本公开的又一些实施例的数据共享方法的流程示意图。
图4示出本公开的再一些实施例的数据共享方法的流程示意图。
图5示出本公开的一些实施例的成员节点的结构示意图。
图6示出本公开的一些实施例的数据共享系统的结构示意图。
图7示出本公开的一些实施例的数据共享装置的结构示意图。
图8示出本公开的另一些实施例的数据共享装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的数据共享方法基于区块链技术实现。风险数据共享的各个联盟成员可以在区块链系统中设置成员节点,联盟成员之间通过成员节点查询风险数据,并在区块链中记录查询信息。
每个成员节点都可以被配置为具有相同的功能。例如,每个成员节点可以存储相同的区块链(或账本),区块链中记录着成员节点之间的查询信息。每个成员节点可以配置有相同的智能合约(或链码),智能合约中规定了查询信息的验证方式、执行步骤等。成员节点执行各种动作都可以通过调用智能合约来执行,同时智能合约相当于规定了各个节点可以执行的动作,超出合约范围的动作是不允许的。每个成员节点还可以设置有区块链状态数据库,记录着区块链的最新状态,还可以记录每个成员节点的通证状态。区块链状态数据库可以随着查询信息和区块链的更新而变化。
下面结合图1描述本公开的数据共享方法的一些实施例。
图1为本公开数据共享方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S108。
步骤S102,第一成员节点接收第二成员节点发送的风险数据查询请求。
第一成员节点为风险数据被查询方,即风险数据提供方,第二成员节点为风险数据查询方,也就是风险数据请求方。风险数据例如包括:用户黑名单、用户白名单和用户灰名单中至少一种。
风险数据查询请求中例如包括:欲查询的风险数据所属用户的标识。例如,第二成员节点欲查询用户A的信用记录,可以在风险数据查询请求中携带用户A的姓名、身份证号、电话号码等唯一标识该用户的标识。第二成员节点可以进行个体查询也可以进行批量(多个用户)查询。风险数据查询请求中还可以包括:时间戳、第二成员节点(查询方)的标识、查询类型(个人或批量)等。
为进一步提高风险数据查询的安全性,保护用户隐私。可以对欲查询的风险数据所属用户的标识进行加密,可以采用协商一致的加密方法进行加密,便于后续第一成员节点解密。例如,可以采用第一成员节点的公钥对欲查询的风险数据所属用户的标识进行加密得到加密结果,以便第一成员节点后续利用自己的私钥对该加密结果进行解密。进一步,第二成员节点还可以利用自己的私钥对欲查询的风险数据所属用户的标识的加密结果进行签名,以便第一成员节点后续能够验证该信息属于第二成员节点发送的,以进一步增强风险数据查询的安全性。
步骤S104,第一成员节点检验第二成员节点的通证状态是否满足本次风险数据查询的条件。
成员节点的通证状态包括:持有通证的数量,可以用于反映成员节点的风险数据查询能力,风险数据查询能力例如,可以请求的风险数据的条数,成员节点的通证状态还可以包括:每笔次查询对应的通证数量的变化信息等。通证的状态变化反映查询双方的查询行为以及查询风险数据的条数。
通证的设计是为了保护风险数据的隐私性,同时便于通过区块链记录查询信息。出于隐私性考虑,风险数据不能直接记录于区块链中,因此使用通证作为查询行为的反映,风险数据在查询双方直接进行加密传输,同时将反映风险数据查询行为的通证状态变化在区块链上进行记录,既保证查询安全性又能够将查询信息公开安全的记录下来。通证与风险数据量的表征关系可以通过智能合约进行约定。例如,1个通证的变化表示查询一条风险数据。通证的状态还可以用来衡量成员节点是否具备查询风险数据的资格或能力。如果成员节点不具有通证,则无法查询风险数据。通证数量的变化根据成员节点查询命中的风险数据的条数确定,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量
第一成员节点可以采取前置检验的方式,首先在区块链上或者区块链状态数据库中获取第二成员节点的通证数量,检验第二成员节点的通证数量是否达到阈值,如果达到阈值,则进行后续的风险数据的查询过程,否则拒绝第二成员节点的风险数据查询请求。成员节点通过前置校验可以在一定程度上避免其他成员节点非法获得风险数据。
步骤S106,第一成员节点在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第二成员节点返回风险数据查询结果。
风险数据查询结果中可以包括:查询得到的风险数据(包括对应的用户标识),查询ID。进一步,风险数据查询结果中还可以包括:时间戳、第一成员节点(被查询方)的标识、查询类型(个人或批量)等。
为进一步提高风险数据查询的安全性,保护用户隐私。可以对查询得到的风险数据进行加密,可以采用协商一致的加密方法进行加密,便于后续第一成员节点解密。例如,可以采用第二成员节点的公钥对查询得到的风险数据进行加密得到加密结果,以便第二成员节点后续利用自己的私钥对该加密结果进行解密。进一步,第一成员节点还可以利用自己的私钥对查询得到的风险数据的加密结果进行签名,以便第二成员节点后续能够验证该信息属于第一成员节点发送的,以进一步增强风险数据查询的安全性。
通过前述实施例的前置校验的方式,第一成员节点可以验证第二成员节点具备一定的风险数据查询能力,而实际查询信息需要根据第一成员节点返回的风险数据的条数确定。在一些实施例中,第一成员节点在第二成员节点的通证数量达到阈值的情况下,根据第二成员节点的通证数量向第二成员节点返回风险数据查询结果,风险数据查询结果中包含的风险数据的条数不大于第二成员节点的通证数量。
例如,第二成员节点欲查询10个用户的风险数据信息,第一成员节点检验第二成员节点当前持有5个通证,超过预设阈值1个通证,则根据第二成员节点的请求进行查询。之后第一成员节点虽然查询得到6个用户的风险数据信息,但是第一成员节点只向第二成员节点返回其中5个用户的风险数据。
步骤S108,第一成员节点根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链。
查询信息包括风险数据查询引起的双方通证状态的变化。第一成员节点可以在风险数据查询完成之后随时发起查询确认请求。区块链系统的记账方式导致查询不能实时进行记账,采用上述方案实时查询风险数据,事后记账,平衡了风险数据查询的实时性与安全性。
风险数据虽然实时进行查询,事后才记录到区块链中,但是,成员节点之间对于相互之间的查询能力,以及查询信息都是公开、透明且不可篡改的。风险数据的被查询方(提供方)不可能随意发起查询信息,因为查询信息被记录到区块链中风险数据的查询方(请求方)可以随时查询到,可以进行审计。风险数据的查询方(请求方)不能赖账,因为风险数据的被查询方(提供方)在区块链系统中发起查询确认请求后,根据智能合约查询信息会被各个成员节点确认,风险数据的查询方(请求方)的通证数量会自动进行相应的扣减。
通证的设计既便于实现上述事后记账的方案,又可以保护了风险数据查询的隐私性。通证可以看作是一种共识机制,联盟成员之间约定的查询信息的表征方式,通证可以与法币进行兑换,即可实现真正的查询。
上述实施例的方法中基于区块链技术实现联盟成员之间风险数据的共享。区块链系统中成员节点的通证状态被记录在区块链中,用于反映的风险数据查询能力。第一成员节点在接收到第二成员节点发送的风险数据查询请求后,首先基于区块链中记录的第二成员节点的通证状态对其进行验证,在验证第二成员节点通证状态满足本次风险数据查询的条件的情况下,实时向第二成员节点返回风险数据查询结果。之后第一成员节点可以根据本次风险数据的查询发起查询确认请求,以便区块链系统中的成员节点将本次查询信息写入区块链。上述实施例的方法中通证作为风险数据查询的凭证,通过各个成员节点通证的状态变化可以反映风险数据的查询过程,也可以验证成员节点的查询能力。成员节点之间采取先验证查询能力、实时查询风险数据、事后记账的方法,提高了风险数据查询的实时性,同时,各个企业之间的风险数据的查询对于其他企业是公开、透明的,并且查询信息安全的被记录下来,不可篡改,便于追溯,实现了各企业间透明、安全的风险数据共享。
为进一步促进联盟成员之间公平、透明、安全的查询风险数据,避免成员节点绕过区块链系统,形成无偿使用。本公开提供一种将成员节点划分为业务服务器和区块链服务器的实施例,业务服务器主要用于存储风险数据,业务服务器的接口多样性,由区块链服务器来统一处理,屏蔽接口多样性,将数据组装成区块链服务器之间交互的接口格式进行交互。下面结合图2描述本公开数据共享方法另一些实施例。
图2为本公开数据共享方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S216。
步骤S202,第二成员节点的业务服务器发送地址查询请求到第二成员节点的区块链服务器。
步骤S204,第二成员节点的区块链服务器向第二成员节点的业务服务器返回最新版本的各个成员节点的区块链服务器的地址。例如,IP地址。
各成员节点的接口都存储于区块链服务器中,业务服务器不能直接调用其他成员节点的接口进行交互。
步骤S206,第二成员节点的业务服务器通过第二成员节点的区块链服务器向第一成员节点的区块链服务器发起风险数据查询请求。
步骤S208,第一成员节点的区块链服务器检验第二成员节点的通证状态是否满足本次风险数据查询的条件。
步骤S210,第一成员节点的区块链服务器在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第一成员节点的业务服务器转发风险数据查询请求。
步骤S212,第一成员节点的业务服务器向第一成员节点的区块链服务器返回风险数据查询结果。
步骤S214,第一成员节点的区块链服务器通过第二成员节点的区块链服务器向第二节点的业务服务器返回风险数据查询结果。
步骤S216,第一成员节点的区块链服务器根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链。
上述实施例的方法中成员节点的业务服务器的接口对其他成员节点是不可见的,区块链服务器则基于共识机制实现查询信息加入区块链的过程,避免业务服务器之间直接调用对方的接口,绕过区块链系统,形成无偿使用。上述实施例能够进一步促进联盟成员之间公平、透明、安全的查询风险数据。
下面结合图3描述本公开中在区块链中记录查询信息的过程。
图3为本公开数据共享方法另一些实施例的流程图。如图3所示,该实施例的方法包括:步骤S302~S306。
步骤S302,第一成员节点向区块链系统中成员节点发送查询确认请求,查询确认请求包括风险数据的查询信息。
第一成员节点即风险数据被查询方或提供方。
步骤S304,区块链系统中成员节点根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果。
查询信息包括:查询ID、风险数据提供数量(可以包括查询条数、命中条数)、待清算通证数量、第一成员节点的签名信息、第二成员节点的签名、请求类型、请求时间戳、结果返回时间戳、查询确认请求时间戳等。
各成员节点执行以下验证内容:验证查询ID是否已存在,如果存在则返回查询无效的验证结果。根据风险数据请求方和提供方的公钥,验证双方的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。
步骤S306,区块链系统中成员节点接收根据风险数据的查询信息生成的区块,将区块加入区块链。
在一些实施例中,第一成员节点收集其他成员节点的验证结果和查询信息一起发送至排序节点。排序节点根据智能合约和验证结果判断查询是否有效(例如,超过50%的成员节点验证通过,则认为查询有效)进行标记,将预设时间段内查询信息按顺序划分为多组,每组生成区块发送至各个成员节点。各个接收到区块后可以根据查询信息是否有效重新更新区块链状态数据库中各个成员节点的通证的状态。
在一些实施例中,上述方法中还可以包括:步骤S305,区块链系统中成员节点根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。
通过上述实施例的方法,将风险数据的查询信息存储于区块链中,确保了查询信息的透明、安全、可追溯。
为进一步提高联盟成员之间风险数据查询的公平、透明、安全,本公开还提供一种审计方法,成员节点可以对已经加入区块链的查询信息进行审计和修改,下面结合图4进行描述。
图4为本公开数据共享方法另一些实施例的流程图。如图4所示,该实施例的方法包括:步骤S402~S410。
步骤S402,第二成员节点对区块链中存储的第一成员节点与第二成员节点的查询信息进行审计。
第二成员节点可以随时对区块链中的查询信息进行审计,审计是否与实际的查询信息一致。第二成员节点也可以根据区块链状态数据库中各成员节点的通证状态进行审计。
步骤S404,第二成员节点响应于查询信息错误,向区块链系统中的成员节点发起通证冲正请求。
通证冲正请求包括:错误的查询信息对应的查询ID,平台节点对查询ID的签名。
例如,第二成员节点与第一成员节点发生了一次风险数据查询过程,应当支付5个通证,而第一成员节点发起的查询确认请求中记录了第二成员节点支付6个通证,导致查询信息被确认后第二成员节点减少了6个通证。第二成员节点发现查询信息错误以后可以发起通证冲正请求。
第二成员节点可以首先向区块链系统中的平台节点发起通证冲正申请,平台节点接收第一成员节点和第二成员节点关于该次查询的证据进行审查。平台节点审查认为查询信息确实错误,向第二平台节点返回通证冲正允许指令,其中携带台节点对查询ID的签名。平台节点可以是区块链系统中任一个成员节点,其具备附加的功能由智能合约规定,例如,发放通证、验证通证冲正申请等。
步骤S406,区块链系统中的成员节点根据智能合约对接收到的通证冲正请求进行验证并返回验证结果。
区块链系统中的成员节点例如需要验证以下内容:根据平台节点的公钥验证平台节点对查询ID的签名;根据查询ID在区块链或区块链状态数据库中查询对应的错误的查询信息,根据错误的查询信息中记录的第一成员节点和第二成员节点的通证状态的变化,验证第一成员节点和第二成员节点当前的通证数量是否足够进行冲正。还可以验证通证冲正请求的发起方是否为错误查询信息对应的风险数据查询方。
通证冲正即将双方成员节点的通证状态修改为查询未发生的情况下应有的状态。例如,第一成员节点与第二成员节点查询风险数据导致第一成员节点扣减6个通证,第二成员节点增加6个通证,如果第一成员节点进行了通证冲正,则相应的在当前通证状态下为第一成员节点增加6个通证,第二成员节点扣减6个通证。因此,各成员节点需要验证双方当前通证数量是否足够进行冲正。
步骤S408,区块链系统中的成员节点接收根据通证冲正信息生成的区块,将区块加入区块链。
生成新的区块中查询ID应采用之前的查询ID,即错误查询信息对应的查询ID,同时,新的区块中的冲正信息打上冲正的标签,避免区块链中记录出现混乱。
在一些实施例中,上述方法中还可以包括:步骤S407,区块链系统中成员节点根据通证冲正的信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。具体的,在区块链状态数据库中读取并重新写入查询ID对应的value值,添加冲正字段,冲正ID签名,冲正原因,冲正时间戳等。
步骤S410,第一成员节点响应于通证冲正信息写入区块链,根据风险数据查询信息重新发起查询确认请求。
查询确认请求发起过程和查询信息加入区块链的过程,如前述实施例中描述的,在此不再赘述。错误的查询信息会引起通证冲正两笔请求和查询确认请求的发起和记账:通证冲正请求和重新发起的风险数据的查询确认请求,相应的查询信息都会被记录到区块链中。
上述实施例的方法中,风险数据查询双方随时可以对历史的查询信息进行审计,针对错误查询信息可以进行通证冲正,生成通证冲正记录在区块链中。由于查询的各种信息或修改都被记录在区块链中,针对任意一次查询通过上述方法都可以完整、准确的追溯过程,进一步提高了联盟成员之间风险数据查询的公平、透明、安全性。
由于风险数据的查询在不断发生,查询信息采取事后记账的方法,可能会导致记账时查询双方的通证状态不能满足通证状态的变化需求,或者进行通证冲正时双方的通证状态不能满足通证状态的变化需求。针对这一问题,本公开还提出一种重发机制。上述实施例中提到针对任意一次查询、通证发放或通证冲正,在加入区块链之前各个成员节点都会对相关信息验证有效或无效,针对最终确定为无效的相关信息会被打上无效的标签写入区块链中。查询确认请求、通证冲正请求等的发起方,可以根据重发机制在每隔预设周期重新发起请求,直至查询信息或通证冲正信息被确定为有效写入区块链中。
具体的,在一些实施例中,在第一成员节点或第二成员节点的通证数量无法满足风险数据查询引起的双方通证数量的变化的情况下,风险数据的查询信息在区块链中被标记为无效,第一成员节点按照预设周期重新发起查询确认请求,直至第一成员节点或第二成员节点的通证数量满足风险数据查询引起的双方通证数量的变化,生成有效的风险数据查询信息;
在另一些实施例中,在第一成员节点或第二成员节点的通证数量无法满足通证冲正引起的双方通证数量的变化的情况下,通证冲正在区块链中被标记为无效,第二成员节点按照预设周期重新发起通证冲正请求,直至第一成员节点或第二成员节点的通证数量满足通证冲正引起的双方通证数量的变化,生成有效的通证冲正信息。
在一些实施例中,同一个成员节点的所有操作串行执行,即前序查询生成区块后后续查询再次发送才能成功,可以在一定程度上避免同一成员节点的通证被多次用于查询,提高查询的公平和安全性。但不同成员节点的不相关操作,可以并行,并在同一个区块中确认。
本公开还提供一种双层通证的设计方案,以共识的方式发行两种通证。即通证可以包括用于查询风险数据的查询通证,以及用于反映成员节点提供的风险数据的价值或反映成员节点对于整个联盟贡献的权益通证。查询通证的状态变化可以直接用于反映查询双方的查询行为以及查询风险数据的条数,即查询行为首先引起的是查询通证的状态变化。同时,查询通证用来反映成员节点是否具备查询的能力,以及能够查询风险数据的条数。权益通证的状态变化主要用于反映在查询过程中成员节点作为风险数据提供方所提供的风险数据的条数。权益通证相当于提供一种平等、合理、安全的反馈机制用于对各个成员提供的风险数据做出评价。
在一些实施例中,区块中包括风险数据查询双方的查询通证的状态变化。根据智能合约中查询通证与风险数据查询数量的表征关系,区块中可以包括风险数据提供方增加的查询通证的数量和风险数据请求方减少的查询通证的数量。进一步,区块链系统中的成员节点在区块链状态数据库中增加风险数据提供方的成员节点的查询通证数量,并减少风险数据接收方(请求方或查询方)的成员节点的查询通证数量。例如,1个查询通证的变化表示查询一条风险数据,A节点向B节点查询10条风险数据,B节点向A节点返回了相应的风险数据,区块中则可以记录表示A节点减少了10个查询通证,B节点增加了10个查询通证的信息。各个成员节点还可以在区块链状态数据库中更新A节点和B节点当前查询通证的数量。
为保证联盟中各个成员地位的平等,在区块链系统初始成立时,各个成员节点被配置为具有同等数量的查询通证,即各个成员节点具备平等的查询机会。成员节点之一可以被配置为平台节点,用于执行区块链系统中针对其他成员节点的通证发放操作,这些操作也是事先写入智能合约的。成员节点可以在初始加入区块链系统的情况下,根据智能合约发起初始化请求,初始化请求包括发放预设数量的查询通证到本成员节点,以便各个成员节点将向该成员节点发放查询通证的信息写入区块链。具体过程如下。
(1)第一成员节点加入区块链系统,向区块链系统中其他成员节点发起初始化请求。
(2)其他成员节点根据智能合约对接收到的初始化请求进行验证并返回验证结果。
(3)各个成员节点根据初始化信息在区块链状态数据库中更新第一成员节点的查询通证的状态。
(4)各个成员节点接收排序节点返回的区块,将区块加入区块链。区块包含初始化相关信息。
为进一步对各个成员提供的风险数据做出评价,促进成员节点提供更有价值的风险数据,成员节点在提供风险数据之后可以获得一定数量的权益通证。
在一些实施例中,平台节点在预设周期结束的情况下,查询各个成员节点的权益通证的状态,确定在该预设周期内各个成员节点提供的风险数据的价值,并将预设周期内各个成员节点提供的风险数据的价值通过权益通证的状态变化形式写入区块链。权益通证的数量用于反映成员节点向风险数据请求方所提供的风险数据条数。成员节点向风险数据请求方所提供的风险数据条数越多,表示其提供的风险数据被其他成员节点查询的次数越多,其提供的风险数据越有价值,对联盟数据共享的贡献越大。
进一步,每次风险数据的查询过程中,除了变更查询双方成员节点的查询通证的状态,还需要确定查询双方成员节点的权益通证的待结算数量。各个成员节点在区块链状态数据库中更新风险数据提供方的待结算权益通证数量,平台节点根据各个成员节点的待结算权益通证的数量,确定在该预设周期内各个成员节点提供的风险数据的价值,并根据待结算权益通证的数量向各个成员节点发放权益通证,将发放权益通证的信息写入区块链。
可以根据智能合约约定权益通证与风险数据提供方在查询过程中提供的风险数据条数之间的表征关系。例如,1个权益通证表示查询中提供一条风险数据。每个成员节点在收到查询确认请求后,根据智能合约在区块链状态数据库中更新风险数据提供方的待结算权益通证数量。之后平台节点可以在区块链状态数据库中查询各个成员节点的待结算权益通证的数量,从而确定各个成员节点提供的风险数据的价值。
为保证平台节点查询的各个成员节点的待结算权益通证的数量的准确性,平台节点可以在区块链中根据查询通证的状态变化验证待结算权益通证的数量的准确性。由于各个成员节点都存储区块链状态数据库,平台节点也可以向其他成员节点请求验证待结算权益通证的数量的准确性。平台节点在与预设周期结束时,将各个成员节点待结算的权益通证进行结算。通过区块链系统来记录通证的状态,不可篡改,使得对于各个成员提供的风险数据的价值的评价更加准确合理。
平台节点发放权益通证的过程如下。
(1)平台节点响应于预设周期结束,查询各个成员节点的权益通证的状态。
(2)平台节点发起权益通证结算指令。权益通证结算指令包括各个成员节点的权益通证的状态变化信息。
(3)各个成员节点根据智能合约对接收到的权益通证结算指令进行验证并返回验证结果。
权益通证结算指令包括:查询ID、通证发放的签名、指令类型、请求时间戳;成员节点被配置为根据指令类型和平台节点的公钥验证权益通证结算指令的签名是否为平台节点的签名。成员节点可以获取平台节点的公钥对权益通证结算指令的签名解密,从而验证是否为平台节点的签名。
(4)各个成员节点在区块链状态数据库中更新各个成员节点的权益通证的状态。
(5)各个成员节点接收根据权益通证结算指令生成的区块,将区块加入区块链。
在一些实施例中,权益通证可以与查询通证实现兑换,这样可以使提供风险数据价值更高的成员拥有更强的查询能力,促进联盟内成员共享数据的良性循环,促进各个成员提供更有价值的风险数据。可以将1个权益通证兑换查询通证的数量定义为汇率。为保证系统中查询通证的数量能够满足各个成员节点的查询需求,可以设置动态汇率。
在一些实施例中,平台节点在预设查询周期结束的情况下,根据各个成员节点的查询通证总数量和权益通证的总数量,确定查询通证和权益通证的兑换汇率,并将兑换汇率写入智能合约。进一步,下一个预设周期内的汇率可以为本周期结束日各个成员节点的查询通证总量与权益通证总量的比值。
在一些实施例中,成员节点可以发起通证兑换请求,其他成员节点,根据智能合约对接收到的通证兑换请求进行验证并返回验证结果;接收根据通证兑换请求生成的区块,将区块加入区块链,区块中包括通证兑换请求发起方的查询通证和权益通证的状态变化。同时,各个成员节点还可以被配置为根据通证兑换请求在区块链状态数据库中更新通证兑换请求发起方的通证的状态。
为促进各个成员提供更有价值的风险数据,可以向各个成员节点发放查询通证。各个成员节点在查询风险数据的过程中,可以由风险数据接收方向平台节点提供预设比例的查询通证,即向平台节点提供的查询通证的数量根据查询双方的查询通证的变化数量和预设比例确定。平台节点的通证的状态变化也会被记录在区块链中。在预设查询结束时,平台节点还被配置为在预设周期结束的情况下,根据各个成员节点的权益通证的数量、平台节点的查询通证数量以及智能合约,向各个成员节点发放查询通证,将发放查询通证的信息写入区块链。
例如,智能合约中约定根据各个成员节点的权益通证的数量之间比例,将平台节点的全部查询通证发放给各个成员节点。例如,平台节点持有5个查询通证,A节点和B节点持有的权益通证的数量之比为2:3,则平台节点向A节点发放2个查询通证,向B节点发放3个查询通证。可以首先执行前述实施例中对各个成员节点的待结算权益通证的结算之后,再执行本实施例中查询通证的发放过程。
上述各实施例中,平台节点可以向成员节点发放查询通证、权益通证等。具体的,平台节点发起通证发放指令,通证发放指令包括通证发放对象和发放通证的数量;成员节点被配置为根据智能合约对接收到的通证发放指令进行验证并返回验证结果,接收根据通证发放指令生成的区块,将区块加入区块链。
进一步,通证发放指令包括:查询ID、通证发放的签名、指令类型、请求时间戳;成员节点被配置为根据指令类型和平台节点的公钥验证通证发放的签名是否为平台节点的签名。成员节点可以获取平台节点的公钥对通证发放的签名解密,从而验证是否为平台节点的签名。
在风险数据查询过程中,成员节点发起查询确认请求中查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳。还可以包括:查询确认请求时间戳、风险数据请求数量等。相应的,成员节点被配置为验证以下内容:根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。例如,不同的请求类型可以对应于不同的风险数据提供数量和通证数量的兑换比例。
上述各实施例形成一套完整的基于区块链技术实现各个成员风险数据共享的方案。所有风险数据的查询、通证的发放都被记录于区块链中,公开透明,并且具有不可篡改的性质。此外,双层通证的设计不仅能够保证风险数据的隐私性,便于记录查询信息,还能够促进数据共享的良性循环,促进成员提供更有价值的风险数据。
本公开还提供一种成员节点,该成员节点可以为前述实施例中的区块链系统中的第一成员节点,下面结合图5进行描述。
图5为本公开成员节点的一些实施例的结构图。如图5所示,该实施例的成员节点50包括:查询请求接收模块502,检验模块504,查询结果发送模块506,查询确认模块508。
查询请求接收模块502,用于接收第二成员节点发送的风险数据查询请求,第二成员节点为区块链系统中的成员节点。
检验模块504,用于检验第二成员节点的通证状态是否满足本次风险数据查询的条件,通证状态存储于区块链中,用于反映第二成员节点的风险数据查询能力。
在一些实施例中,通证状态包括:通证数量;通证数量的变化是根据成员节点查询命中的风险数据的条数确定的,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量。
在一些实施例中,通证包括查询通证和权益通证;风险数据请求方根据查询命中的风险数据的条数扣减相应的查询通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的查询通证数量和权益通证数量;权益通证用于反映预设周期内各个成员节点提供的风险数据的价值,根据智能合约规定的当前周期的兑换汇率兑换查询通证。具体可以参考前述的实施例中的描述。
查询结果发送模块506,用于在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第二成员节点返回风险数据查询结果。
通证状态包括:通证数量。在一些实施例中,查询结果发送模块506用于在第二成员节点的通证数量达到阈值的情况下,根据第二成员节点的通证数量向第二成员节点返回风险数据查询结果,风险数据查询结果中包含的风险数据的条数不大于第二成员节点的通证数量。
查询确认模块508,用于根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链,查询信息包括风险数据查询引起的第一成员节点与第二成员节点的通证状态的变化信息。
在一些实施例中,第一成员节点可以包括:业务服务器和区块链服务器。查询请求接收模块502设置于区块链服务器,用于接收第二成员节点的区块链服务器发送的风险数据查询请求,风险数据查询请求由第二成员节点的业务服务器发送至第二成员节点的区块链服务器;检验模块504设置于区块链服务器,用于在第二成员节点通证状态满足本次风险数据查询的条件的情况下,向第一成员节点的业务服务器转发风险数据查询请求,并接收第一成员节点的业务服务器返回的风险数据查询结果;查询结果发送模块506设置于区块链服务器,用于通过第二成员节点的区块链服务器向第二节点的业务服务器返回风险数据查询结果;查询确认模块508设置于区块链服务器,用于根据风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将第一成员节点与第二成员节点的查询信息写入区块链。
本公开还提供一种数据共享系统,下面结合图6进行描述。
图6为本公开数据共享系统的一些实施例的结构图。如图6所示,该实施例的系统6包括:前述任意实施例的被配置为第一成员节点的成员节点50;以及第二成员节点60。
第二成员节点60,用于向第一成员节点50发送风险数据查询请求,在第二成员节点60通证状态满足本次风险数据查询的条件的情况下,接收第一成员节点50返回的风险数据查询结果。
在一些实施例中,第二成员节点60包括:业务服务器和区块链服务器;第二成员节点的业务服务器用于向第二成员节点的区块链服务器发送地址查询请求,接收第二成员节点的区块链服务器返回的最新版本的各个成员节点的区块链服务器的地址,选取第一成员节点的区块链服务器的地址,并发起风险数据查询请求。
在一些实施例中,第二成员节点60还用于对区块链中存储的第一成员节点50与第二成员节点60的查询信息进行审计,确定查询信息是否正确,响应于查询信息错误,向区块链系统中的成员节点发起通证冲正请求,以便区块链系统中的成员节点将通证冲正信息写入区块链,对错误的查询信息进行冲正;
第一成员节点60还用于响应于通证冲正信息写入区块链,根据正确的风险数据查询信息重新发起查询确认请求。
在一些实施例中,通证冲正请求包括:错误的查询信息对应的查询ID,平台节点对查询ID的签名。数据共享系统6还包括:至少一个其他成员节点70。
其他成员节点70,用于根据平台节点的公钥验证平台节点对查询ID的签名,根据查询ID查询对应的错误的查询信息,根据错误的查询信息中记录的第一成员节点和第二成员节点的通证状态的变化,验证第一成员节点和第二成员节点当前的通证数量是否足够进行冲正。
在一些实施例中,其他成员节点70用于接收第一成员节点50发送的查询确认请求,查询确认请求包括风险数据的查询信息;根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;接收根据风险数据的查询信息生成的区块,将区块加入区块链,其中,区块中包括风险数据查询双方的通证的状态变化信息。
需要说明的是,本公开中“第一”、“第二”等描述只用于区分不同场景中不同节点,不用于限制特定的某种节点。事实上,本公开中区块链系统中的成员节点可以配置为具有相同的功能,均可以实现上述实施例中的功能。
本公开的实施例中的数据共享装置可各由各种计算设备或计算机系统来实现,下面结合图7以及图8进行描述。
图7为本公开数据共享装置的一些实施例的结构图。如图7所示,该实施例的装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行本公开中任意一些实施例中的数据共享方法。存储器和处理器可以有多个分别配置于不同的成员节点中。
其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图8为本公开数据共享装置的另一些实施例的结构图。如图8所示,该实施例的装置80包括:存储器810以及处理器820,分别与存储器710以及处理器720类似。还可以包括输入输出接口780、网络接口840、存储接口850等。这些接口830,840,250以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据共享方法。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (19)

1.一种数据共享方法,包括:
第一成员节点接收第二成员节点发送的风险数据查询请求,所述第一成员节点和第二成员节点为区块链系统中的成员节点;
所述第一成员节点检验所述第二成员节点的通证状态是否满足本次风险数据查询的条件,所述通证状态存储于区块链中,用于反映所述第二成员节点的风险数据查询能力;其中,所述通证状态包括:通证数量;
所述第一成员节点在所述第二成员节点通证状态满足本次风险数据查询的条件的情况下,向所述第二成员节点返回风险数据查询结果;
所述第一成员节点根据所述风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将所述第一成员节点与所述第二成员节点的查询信息写入所述区块链,所述查询信息包括风险数据查询引起的所述第一成员节点与所述第二成员节点的通证状态的变化信息;
其中,所述通证数量的变化信息是根据成员节点查询命中的风险数据的条数确定的,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量。
2.根据权利要求1所述的数据共享方法,其中,
所述第一成员节点向所述第二成员节点返回风险数据查询结果包括:
所述第一成员节点在所述第二成员节点的通证数量达到阈值的情况下,根据所述第二成员节点的通证数量向所述第二成员节点返回风险数据查询结果,所述风险数据查询结果中包含的风险数据的条数不大于所述第二成员节点的通证数量。
3.根据权利要求1所述的数据共享方法,其中,
所述第一成员节点的区块链服务器接收第二成员节点的区块链服务器发送的风险数据查询请求,所述风险数据查询请求由第二成员节点的业务服务器发送至第二成员节点的区块链服务器;
所述第一成员节点的区块链服务器检验所述第二成员节点的通证状态是否满足本次风险数据查询的条件;
所述第一成员节点的区块链服务器在所述第二成员节点通证状态满足本次风险数据查询的条件的情况下,向所述第一成员节点的业务服务器转发所述风险数据查询请求,并接收所述第一成员节点的业务服务器返回的风险数据查询结果;
所述第一成员节点的区块链服务器通过所述第二成员节点的区块链服务器向所述第二节点的业务服务器返回风险数据查询结果;
所述第一成员节点的区块链服务器根据所述风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将所述第一成员节点与所述第二成员节点的查询信息写入所述区块链。
4.根据权利要求3所述的数据共享方法,还包括:
所述第二成员节点的业务服务器向所述第二成员节点的区块链服务器发送地址查询请求;
所述第二成员节点的业务服务器接收所述第二成员节点的区块链服务器返回的最新版本的各个成员节点的区块链服务器的地址,以便所述第二成员节点的业务服务器选取所述第一成员节点的区块链服务器的地址,并发起风险数据查询请求。
5.根据权利要求1所述的数据共享方法,还包括:
所述第二成员节点对区块链中存储的所述第一成员节点与所述第二成员节点的查询信息进行审计,确定所述查询信息是否正确;
所述第二成员节点响应于所述查询信息错误,向区块链系统中的成员节点发起通证冲正请求,以便区块链系统中的成员节点将通证冲正信息写入区块链,对错误的查询信息进行冲正;
所述第一成员节点响应于通证冲正信息写入区块链,根据正确的风险数据查询信息重新发起所述查询确认请求。
6.根据权利要求5所述的数据共享方法,其中,
所述通证冲正请求包括:错误的查询信息对应的查询ID,平台节点对所述查询ID的签名;
所述区块链系统中的成员节点将通证冲正信息写入区块链包括:
所述区块链系统中的成员节点根据所述平台节点的公钥验证所述平台节点对所述查询ID的签名;
所述区块链系统中的成员节点根据所述查询ID查询对应的所述错误的查询信息,根据所述错误的查询信息中记录的所述第一成员节点和所述第二成员节点的通证状态的变化,验证所述第一成员节点和所述第二成员节点当前的通证数量是否足够进行冲正。
7.根据权利要求1所述的数据共享方法,其中,
所述区块链系统中的成员节点将所述第一成员节点与所述第二成员节点的查询信息写入所述区块链包括:
所述区块链系统中的成员节点接收所述第一成员节点发送的查询确认请求,所述查询确认请求包括风险数据的查询信息;
所述区块链系统中的成员节点根据智能合约对接收到的所述风险数据的查询信息进行验证并返回验证结果;
所述区块链系统中的成员节点接收根据所述风险数据的查询信息生成的区块,将所述区块加入区块链,其中,所述区块中包括所述风险数据查询双方的通证的状态变化信息。
8.根据权利要求1-7任一项所述的数据共享方法,其中,
所述通证包括查询通证和权益通证;
风险数据请求方根据查询命中的风险数据的条数扣减相应的查询通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的查询通证数量和权益通证数量;
所述权益通证用于反映预设周期内各个成员节点提供的风险数据的价值,根据智能合约规定的当前周期的兑换汇率兑换查询通证。
9.一种成员节点,其中,所述成员节点为区块链系统中的第一成员节点,包括:
查询请求接收模块,用于接收第二成员节点发送的风险数据查询请求,所述第二成员节点为区块链系统中的成员节点;
检验模块,用于检验所述第二成员节点的通证状态是否满足本次风险数据查询的条件,所述通证状态存储于区块链中,用于反映所述第二成员节点的风险数据查询能力;其中,所述通证状态包括:通证数量;
查询结果发送模块,用于在所述第二成员节点通证状态满足本次风险数据查询的条件的情况下,向所述第二成员节点返回风险数据查询结果;
查询确认模块,用于根据所述风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将所述第一成员节点与所述第二成员节点的查询信息写入所述区块链,所述查询信息包括风险数据查询引起的所述第一成员节点与所述第二成员节点的通证状态的变化信息;
其中,所述通证数量的变化信息是根据成员节点查询命中的风险数据的条数确定的,风险数据请求方根据查询命中的风险数据的条数扣减相应的通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的通证数量。
10.根据权利要求9所述的成员节点,其中,
所述查询结果发送模块用于在所述第二成员节点的通证数量达到阈值的情况下,根据所述第二成员节点的通证数量向所述第二成员节点返回风险数据查询结果,所述风险数据查询结果中包含的风险数据的条数不大于所述第二成员节点的通证数量。
11.根据权利要求9所述的成员节点,其中,所述第一成员节点包括:业务服务器和区块链服务器;
所述查询请求接收模块设置于所述区块链服务器,用于接收第二成员节点的区块链服务器发送的风险数据查询请求,所述风险数据查询请求由第二成员节点的业务服务器发送至第二成员节点的区块链服务器;
所述检验模块设置于所述区块链服务器,用于在所述第二成员节点通证状态满足本次风险数据查询的条件的情况下,向所述第一成员节点的业务服务器转发所述风险数据查询请求,并接收所述第一成员节点的业务服务器返回的风险数据查询结果;
所述查询结果发送模块设置于所述区块链服务器,用于通过所述第二成员节点的区块链服务器向所述第二节点的业务服务器返回风险数据查询结果;
所述查询确认模块设置于所述区块链服务器,用于根据所述风险数据查询结果发起查询确认请求,以便区块链系统中的成员节点将所述第一成员节点与所述第二成员节点的查询信息写入所述区块链。
12.根据权利要求9-11任一项所述的成员节点,其中,
所述通证包括查询通证和权益通证;
风险数据请求方根据查询命中的风险数据的条数扣减相应的查询通证数量,风险数据提供方根据查询命中的风险数据的条数增加相应的查询通证数量和权益通证数量;
所述权益通证用于反映预设周期内各个成员节点提供的风险数据的价值,根据智能合约规定的当前周期的兑换汇率兑换查询通证。
13.一种数据共享系统,其中,所述数据共享系统为区块链系统,包括:权利要求9-12任一项所述的被配置为第一成员节点的成员节点;以及
第二成员节点,用于向所述第一成员节点发送风险数据查询请求,在所述第二成员节点通证状态满足本次风险数据查询的条件的情况下,接收所述第一成员节点返回的风险数据查询结果。
14.根据权利要求13所述的数据共享系统,其中,所述第二成员节点包括:业务服务器和区块链服务器;
所述第二成员节点的业务服务器用于向所述第二成员节点的区块链服务器发送地址查询请求,接收所述第二成员节点的区块链服务器返回的最新版本的各个成员节点的区块链服务器的地址,选取所述第一成员节点的区块链服务器的地址,并发起风险数据查询请求。
15.根据权利要求13所述的数据共享系统,其中,
所述第二成员节点还用于对区块链中存储的所述第一成员节点与所述第二成员节点的查询信息进行审计,确定所述查询信息是否正确,响应于所述查询信息错误,向区块链系统中的成员节点发起通证冲正请求,以便区块链系统中的成员节点将通证冲正信息写入区块链,对错误的查询信息进行冲正;
所述第一成员节点还用于响应于通证冲正信息写入区块链,根据正确的风险数据的查询信息重新发起所述查询确认请求。
16.根据权利要求15所述的数据共享系统,其中,所述通证冲正请求包括:错误的查询信息对应的查询ID,平台节点对所述查询ID的签名;
所述系统还包括:至少一个其他成员节点;
所述其他成员节点,用于根据所述平台节点的公钥验证所述平台节点对所述查询ID的签名,根据所述查询ID查询对应的所述错误的查询信息,根据所述错误的查询信息中记录的所述第一成员节点和所述第二成员节点的通证状态的变化,验证所述第一成员节点和所述第二成员节点当前的通证数量是否足够进行冲正。
17.根据权利要求13所述的数据共享系统,还包括:至少一个其他成员节点;
所述其他成员节点用于接收所述第一成员节点发送的查询确认请求,所述查询确认请求包括风险数据的查询信息;根据智能合约对接收到的所述风险数据的查询信息进行验证并返回验证结果;接收根据所述风险数据的查询信息生成的区块,将所述区块加入区块链,其中,所述区块中包括所述风险数据查询双方的通证的状态变化信息。
18.一种数据共享装置,包括:
处理器;以及
耦接至所述处理器的存储器,所述存储器中存储有计算机程序,所述计算机程序能由所述处理器执行实现权利要求1-8任一项所述的数据共享方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
CN201810470510.3A 2018-05-17 2018-05-17 数据共享方法、装置、系统、成员节点和可读存储介质 Active CN108462724B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810470510.3A CN108462724B (zh) 2018-05-17 2018-05-17 数据共享方法、装置、系统、成员节点和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810470510.3A CN108462724B (zh) 2018-05-17 2018-05-17 数据共享方法、装置、系统、成员节点和可读存储介质

Publications (2)

Publication Number Publication Date
CN108462724A CN108462724A (zh) 2018-08-28
CN108462724B true CN108462724B (zh) 2020-07-31

Family

ID=63215406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810470510.3A Active CN108462724B (zh) 2018-05-17 2018-05-17 数据共享方法、装置、系统、成员节点和可读存储介质

Country Status (1)

Country Link
CN (1) CN108462724B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345390A (zh) * 2018-09-25 2019-02-15 深圳市元征科技股份有限公司 一种智能合约访问方法、系统、设备及计算机存储介质
CN110309259B (zh) 2018-10-10 2021-09-03 腾讯科技(深圳)有限公司 审计结果数据存储、查询方法、审计项存储方法及装置
CN109361688B (zh) * 2018-11-16 2021-01-22 大唐高鸿信息通信(义乌)有限公司 一种基于5g架构和区块链的存证方法及系统
CN111245877A (zh) * 2018-11-29 2020-06-05 北京京东尚科信息技术有限公司 用户风险指数的查询方法、装置、电子设备及介质
CN109636402B (zh) * 2018-12-14 2021-08-03 泰康保险集团股份有限公司 基于区块链的信用信息处理方法、装置、设备、存储介质
CN109583905A (zh) * 2018-12-21 2019-04-05 众安信息技术服务有限公司 基于区块链网络的利用通证来实现数据共享的方法和设备
CN109685674A (zh) * 2018-12-21 2019-04-26 众安信息技术服务有限公司 基于区块链的订单通证化、赔付、查询的方法、装置及存储介质
CN111723060B (zh) * 2019-03-18 2023-04-21 南京星云数字技术有限公司 基于区块链的黑名单数据共享方法及系统
CN109886695A (zh) * 2019-03-26 2019-06-14 阿里巴巴集团控股有限公司 不同区块链之间的信息共享方法及装置和电子设备
CN109995791B (zh) * 2019-04-11 2020-11-03 清华大学 一种数据授权方法及系统
CN110493190B (zh) * 2019-07-15 2022-07-08 平安科技(深圳)有限公司 数据信息的处理方法、装置、计算机设备和存储介质
CN112243047B (zh) * 2019-07-19 2022-04-01 傲为有限公司 基于公链的区块链网络寻址方法
CN110533286B (zh) * 2019-07-23 2023-04-18 平安科技(深圳)有限公司 基于区块链的联盟成员管理方法、装置以及计算机设备
CN112019599A (zh) * 2020-03-16 2020-12-01 支付宝(杭州)信息技术有限公司 在区块链共识处理时进行处理消息同步的方法及装置
CN111292093B (zh) * 2020-05-09 2020-12-04 支付宝(杭州)信息技术有限公司 一种基于双区块链的风险控制方法和系统
CN111797142A (zh) * 2020-07-06 2020-10-20 北京荷月科技有限公司 一种链上数据审计方法和系统
CN112800071A (zh) * 2020-08-24 2021-05-14 支付宝(杭州)信息技术有限公司 基于区块链的业务处理方法、装置、设备及存储介质
CN111770198B (zh) * 2020-08-31 2020-12-18 支付宝(杭州)信息技术有限公司 一种信息共享方法、装置及设备
CN112163034B (zh) * 2020-09-03 2023-06-16 中国联合网络通信集团有限公司 一种模型共享方法、节点及区块链系统
CN112447291B (zh) * 2020-11-23 2023-03-28 四川大学华西医院 基于区块链的医联体数据之间的共享方法
CN113037497B (zh) * 2021-03-15 2023-08-01 中国工商银行股份有限公司 一种基于区块链的风险数据共享方法及系统
CN114625899B (zh) * 2022-03-14 2023-09-08 北京百度网讯科技有限公司 信息处理方法、装置、电子设备以及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490304B2 (en) * 2012-01-26 2019-11-26 Netspective Communications Llc Device-driven non-intermediated blockchain system over a social integrity network
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
CN108885748A (zh) * 2016-02-23 2018-11-23 区块链控股有限公司 用于区块链的加密货币的通用令牌化系统
EP3296913B1 (en) * 2016-09-15 2020-10-21 Accenture Global Solutions Limited Method and system for secure communication of a token and aggregation of the same
CN106412037A (zh) * 2016-09-19 2017-02-15 中国银联股份有限公司 基于区块链结构的安全性电子文件处理系统及方法
CN107979590B (zh) * 2017-11-02 2020-01-17 财付通支付科技有限公司 数据共享方法、客户端、服务器、计算设备及存储介质

Also Published As

Publication number Publication date
CN108462724A (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
CN108462724B (zh) 数据共享方法、装置、系统、成员节点和可读存储介质
CN108717443B (zh) 数据共享方法、区块链系统和计算机可读存储介质
US20200272619A1 (en) Method and system for audit and payment clearing of electronic trading systems using blockchain database
CN109981679B (zh) 在区块链网络中执行事务的方法和装置
Niranjanamurthy et al. Analysis of Blockchain technology: pros, cons and SWOT
CN108667632B (zh) 基于区块链的信用记录共享方法及装置、电子设备
CN108604344B (zh) 用于使用数字签名创建可信数字资产转移的方法和系统
CN111034114B (zh) 具有记录安全性的区块链架构
US20200058023A1 (en) Decentralized Data Marketplace
CN109102269B (zh) 基于区块链的转账方法及装置、区块链节点及存储介质
CN107240001B (zh) 一种数字资产的交易方法和系统
Pasdar et al. Connect api with blockchain: A survey on blockchain oracle implementation
US9032204B2 (en) Methods and systems for providing a signed digital certificate in real time
CN113537984A (zh) 基于区块链的内容验证方法及装置、电子设备
CN110741599A (zh) 基于有序智能合约创建多个记录的系统和方法
US11568401B2 (en) Digital payment system
CN116671087A (zh) 用于构建区块链以验证智能合约资产的系统和方法
Pasdar et al. Blockchain oracle design patterns
US20220391887A1 (en) Systems and Methods for Maintenance of NFT Assets
Salah et al. A blockchain-based system for online consumer reviews
CN111095863A (zh) 在区块链网络上通信、存储和处理数据的基于区块链的系统和方法
CN111429191A (zh) 基于区块链的电子发票流转管理方法、装置及系统
Menges et al. DEALER: decentralized incentives for threat intelligence reporting and exchange
CN112232828A (zh) 一种电网数据交易方法、系统
Dash et al. Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100176 Beijing Daxing District Beijing Economic Development Zone, Chuang Chuang eleven Street 18 hospital C block 2 floor, 221 rooms.

Applicant after: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address before: 100176 Beijing Daxing District Beijing Economic Development Zone, Chuang Chuang eleven Street 18 hospital C block 2 floor, 221 rooms.

Applicant before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 221, 2nd floor, C Block, 18 Kechuang 11th Street, Beijing Daxing District, Beijing

Patentee after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2nd floor, C Block, 18 Kechuang 11th Street, Beijing Daxing District, Beijing

Patentee before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: Room 221, 2nd floor, C Block, 18 Kechuang 11th Street, Beijing Daxing District, Beijing

Patentee after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: Room 221, 2nd floor, C Block, 18 Kechuang 11th Street, Beijing Daxing District, Beijing

Patentee before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.