CN114417377B - 基于区块链的数据交互方法 - Google Patents

基于区块链的数据交互方法 Download PDF

Info

Publication number
CN114417377B
CN114417377B CN202111662720.0A CN202111662720A CN114417377B CN 114417377 B CN114417377 B CN 114417377B CN 202111662720 A CN202111662720 A CN 202111662720A CN 114417377 B CN114417377 B CN 114417377B
Authority
CN
China
Prior art keywords
data
pledge
redemption
transaction request
payment
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
CN202111662720.0A
Other languages
English (en)
Other versions
CN114417377A (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.)
Changchun Jida Zhengyuan Information Technology Co ltd
Original Assignee
Changchun Jida Zhengyuan Information Technology 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 Changchun Jida Zhengyuan Information Technology Co ltd filed Critical Changchun Jida Zhengyuan Information Technology Co ltd
Priority to CN202111662720.0A priority Critical patent/CN114417377B/zh
Publication of CN114417377A publication Critical patent/CN114417377A/zh
Application granted granted Critical
Publication of CN114417377B publication Critical patent/CN114417377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请实施例公开了一种基于区块链的数据交互方法,包括:获取数据提供方构建的质押事务请求和质押赎回事务请求;质押事务请求响应于数据需求方的数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据生成;质押赎回事务请求基于质押事务请求和质押赎回期限生成;响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;获取数据提供方提供的密钥密文,并根据密钥验证数据验证密钥密文;密钥密文基于数据获取请求中数据需求方的公钥对待获取数据的密钥加密得到;响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。

Description

基于区块链的数据交互方法
技术领域
本申请实施例涉及区块链技术,尤其涉及一种基于区块链的数据交互方法。
背景技术
区块链技术以及其上支持的智能合约的出现与逐步应用,为构建去中心化的数据供需方之间的数据交互,提供了一种新的技术手段。
但是,区块链中由于缺乏可信第三方对于数据交互过程提供监督和管理,基于区块链智能合约的数据交互过程还面临诸多公平性问题。
发明内容
本申请提供一种基于区块链的数据交互方法,以提高在区块链上进行数据交互的公平性。
第一方面,本申请实施例提供了一种基于区块链的数据交互方法,应用于区块链节点,包括:
获取数据提供方构建的质押事务请求和质押赎回事务请求;质押事务请求响应于数据需求方的数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据生成;质押赎回事务请求基于质押事务请求和质押赎回期限生成;
响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
获取数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证;密钥密文基于数据获取请求中数据需求方的公钥对待获取数据的密钥加密得到;
响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
第二方面,本申请实施例还提供了一种基于区块链的数据交互方法,应用于数据提供方,包括:
响应于数据需求方的数据获取请求,确定待获取数据;
根据待获取数据的密文和待获取数据的密钥验证数据,构造质押事务请求;
根据质押事务请求和质押赎回期限,构造质押赎回事务请求;
向区块链节点发送质押事务请求和质押赎回事务请求,以使区块链节点响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
根据数据获取请求中数据提供方的公钥对待获取数据的密钥加密,得到密钥密文,并向区块链节点发送密钥密文,以使区块链节点根据密钥验证数据对密钥密文进行验证;由数据需求方根据链上获取待获取数据的密文和密钥密文,生成获取反馈结果,指示区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
第三方面,本申请实施例还提供了一种基于区块链的数据交互方法,应用于数据需求方,包括:
发送对待获取数据的数据获取请求,以使数据提供方响应于数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据,构造指示从数据提供方账户转移设定质押金额的激励元素至数据需求方账户的质押事务请求,并根据质押事务请求和质押赎回期限,构造质押赎回事务请求;
从区块链上获取质押事务请求中的待获取数据的密文;
从区块链上获取根据密钥验证数据验证通过的密钥密文;密钥密文基于数据获取请求中数据提供方的公钥对待获取数据的密钥加密得到;
根据密钥密文和待获取数据的密文,生成获取反馈结果,以使区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
本申请通过引入数据提供方构建的质押事务请求和质押赎回事务请求,使得在数据需求方具备待获取数据的获取需求时,响应于质押事务请求,将数据提供方的设定质押金额的激励元素转移至数据需求方,并在数据需求方获取到待获取数据的密文和密钥密文之后,响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制将设定质押金额的激励元素退还给数据提供方,从而通过押金赎回机制,对数据提供方的待获取数据的提供过程加以约束,避免了数据提供方提供虚假数据的情况发生,提高了数据交换过程的公平性。同时,区块链节点在获取到数据提供方提供的密钥密文后,根据密钥验证数据对密钥密文进行验证,从而提高了链上存储的密钥密文的准确性,为数据需求方获取正确的待获取数据奠定了基础。
附图说明
图1是本申请实施例一提供的一种基于区块链的数据交互方法的流程图;
图2是本申请实施例二提供的一种基于区块链的数据交互方法的流程图;
图3是本申请实施例三提供的一种基于区块链的数据交互方法的流程图;
图4是本申请实施例四提供的一种基于区块链的数据交互方法的流程图;
图5是本申请实施例五提供的一种基于区块链的数据交互方法的流程图;
图6是本申请实施例六提供的一种基于区块链的数据交互方法的流程图;
图7是本申请实施例七提供的一种基于区块链的数据交互装置的结构图;
图8是本申请实施例八提供的一种基于区块链的数据交互装置的结构图;
图9是本申请实施例九提供的一种基于区块链的数据交互装置的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1是本申请实施例一提供的一种基于区块链的数据交互方法的流程图,本实施例可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中,该电子设备可以是承载有区块链节点的计算设备。
参见图1所示的一种基于区块链的数据交互方法,应用于区块链节点,包括:
S110、获取数据提供方构建的质押事务请求和质押赎回事务请求。
其中,质押事务请求用于表征将数据提供方的部分激励元素作为数据提供方与数据需求方之间的数据交互押金的事务请求。质押事务请求可以响应于数据需求方的数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据生成。
示例性的,数据需求方向数据提供方发送对待获取数据的数据获取请求;数据提供方响应于该数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据,构造质押事务请求。
可选的,数据需求方可以直接向数据提供方发送对待获取数据的数据获取请求;还可以通过区块链节点向数据提供方发送对待获取数据的数据获取请求。
其中,待获取数据的密文由数据提供方根据加密密钥对待获取数据加密得到,本申请对具体的加密实际和加密密钥的生成方法不作任何限定。例如,加密密钥可以是随机生成的对称密钥。
示例性的,待获取数据可以是完整数据M,或者是将完整数据M划分n(n≥2)份后得到的数据分片mi,其中i=1,2,…,n。需要说明的是,当数据提供方存在至少两个待获取数据时,各待获取数据的加密密钥可以相同或不同。为了避免密钥泄露带来的数据安全隐患,通常不同待获取数据对应加密密钥不同。
其中,待获取数据的密钥验证数据可以基于待获取数据的加密密钥生成。为了避免待获取数据的加密密钥的逆向破解,同时便于数据需求方进行密钥验证,可以采用数据需求方的公钥对加密密钥进行加密,并将加密结果的哈希值生成密钥验证数据。
举例说明,针对待获取数据mx(或M)的加密密钥kx(或M对应的加密密钥k),可以采用以下方式确定密钥验证数据:
Figure BDA0003450519870000031
其中,pkB为数据需求方B的公钥,
Figure BDA0003450519870000032
为通过pkB对kx的加密结果,H()为哈希运算。
其中,质押赎回事务请求用于表征将数据提供方质押的激励元素退回给数据提供方的事务请求。质押赎回事务请求可以基于质押事务请求和质押赎回期限生成。
示例性的,当数据提供方构造质押事务请求之后,根据质押事务请求和质押赎回期限,构造质押赎回事务请请求,从而建立质押赎回事务请求和质押事务请求之间的事务关联。其中,质押赎回期限用于对数据提供方所质押的设定质押金额的激励元素的赎回时间加以约束。质押赎回期限的数值大小可以由技术人员根据需要或经验值进行确定或调整。通常情况下,待获取数据存在一定的获取期限,用于表征待获取数据的生命周期;质押赎回期限通常不大于该获取期限。
数据提供方通过向区块链节点发送质押事务请求和质押赎回事务请求;相应的,区块链节点获取质押事务请求和质押赎回事务请求,并触发响应质押事务请求和质押赎回事务请求。
一般的,区块链节点为了保证两事务请求的响应过程的有效性和准确性,还会对质押事务请求和质押赎回事务请求进行验证,并在验证通过后在区块链网络生效。例如,可以通过质押事务请求和质押赎回事务请求中的发起方签名,对发起方是否为数据提供方进行验证、对请求时限的合理性进行验证。
S120、响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户。
其中,设定质押金额不小于待获取数据对应的设定支付金额,从而在数据提供方提供虚假数据的情况下,保证数据需求方的利益。激励元素可以是在区块链网络中具备激励和流通作用的元素,例如可以是能量、星钻或数字资产等。
需要说明的是,通过在区块链节点获取到质押事务请求;或者,质押事务请求生效后,响应于质押事务请求,将数据提供方账户中设定质押金额的激励元素转移至数据需求方。采用上述方案,对数据提供方提供待获取数据的行为加以约束,避免数据提供方提供不匹配数据或虚假数据的情况发生,为数据提供方和数据需求方两者之间数据交互行为的公平性奠定了基础。
在一个可选实施例中,为了便于区块链节点获知数据提供方和数据需求方之间的供需关系,还可以由数据需求方参与质押赎回事务请求的构建。
示例性的,质押赎回事务请求中可以包括数据需求方对质押赎回基础数据的需求方质押签名;质押赎回基础数据基于质押事务请求和质押赎回期限构造得到。相应的,在响应于质押赎回事务请求之前,对质押赎回事务请求中的需求方质押签名进行验签;若验签通过,则触发执行对质押赎回事务请求的响应操作。进一步的,若验签不通过,则禁止触发执行对质押赎回事务请求的响应操作。
具体的,数据提供方首先基于质押事务请求和质押赎回期限,构造质押赎回基础数据,用于作为质押赎回事务请求的构造基础;数据提供方将质押赎回基础数据发送至数据需求方;数据需求方在接收到质押赎回基础数据后,对质押赎回基础数据进行签名,得到需求方质押签名,并将需求方质押签名反馈至数据提供方;数据提供方基于质押赎回基础数据和需求方质押签名,构造质押赎回事务请求,并向区块链节点发送该质押赎回事务请求;区块链节点对质押赎回事务请求中的需求方质押签名进行验签;若验签通过,则质押赎回事务请求生效;否则,质押赎回事务请求无效;在质押赎回事务请求生效的情况下,触发执行对质押赎回事务请求的响应操作;在质押赎回事务请求无效的情况下,禁止触发对质押赎回事务请求的响应操作。
示例性的,质押赎回基础数据中可以包括数据提供方的签名;相应的,数据需求方在接收到质押赎回基础数据时,对数据提供方的签名进行验签;若验签通过,则进行需求方质押签名的生成。相应的,区块链节点获取到质押赎回事务请求后,还会对质押赎回事务请求中数据提供方的签名进行验签,从而保证质押赎回事务请求的发起方与数据提供方相一致,且此质押赎回请求是基于双方协商的操作,有助于提高质押赎回事务请求的有效性,减少操作纠纷,进而为数据提供方和数据需求方之间的数据交互过程的安全性和公平性奠定基础。
S130、获取数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证。
其中,密钥密文基于数据获取请求中数据需求方的公钥,对待获取数据的密钥加密得到。需要说明的是,此处的待获取数据的密钥,即为前述待获取数据的加密密钥。
需要说明的是,通过区块链节点根据密钥验证数据对密钥密文进行验证,从而保证了数据提供方所通过的密钥密文的准确性,为数据提供方和数据需求方之间的数据交互过程的安全性和公平性奠定基础。
S140、响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
需要说明的是,区块链节点在获取到质押事务请求、质押赎回事务请求和密钥密文后,会将获取到的上述数据上链存储;相应的,数据需求方可以链上获取质押事务请求和质押赎回事务请求中的待获取数据的密文和待获取数据的密钥验证数据;数据需求方还可以链上获取密钥密文,从而根据密钥验证数据,验证链上获取的密钥密文是否与质押事务请求中的密钥验证数据相匹配;根据密钥密文和待获取数据的密文,确定是否能获取到待获取数据的明文。
其中,数据反馈结果用于表征数据需求方对待获取数据的明文的获取情况。例如,可以包括获取成功的正向反馈结果(也即成功反馈结果),或者获取失败的反向反馈结果(也即失败反馈结果)。需要说明的是,失败反馈结果中通常还会包括数据需求方提供的举证材料,用于作为数据提供方作假的证据。
示例性的,可以根据质押赎回期限和数据获取方的获取反馈结果,确定是否需要从数据需求方账户退还设定质押金额的激励元素至数据提供方账户。
在一个可选实施例中,根据质押赎回期限和数据需求方的获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户,可以包括:若在质押赎回期限内接收到数据需求方的失败反馈结果,则验证失败反馈结果,并根据验证结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户;若在质押赎回期限内未接收到数据需求方的失败反馈结果,则直接从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可以理解的是,当质押赎回期限内未接收到数据需求方的失败反馈结果,则表明数据提供方提供给数据需求方的待获取数据的密文和密钥密文相匹配,能够根据密钥密文成功解析得到待获取数据的明文,满足质押赎回请求中定义的质押赎回期限规定的时间时,可以直接将数据提供方质押给数据需求方的设定质押金额的激励元素,退还给数据提供方。当质押赎回期限内接收到数据需求方的失败反馈结果时,为了避免数据需求方恶意作假,还需要对数据需求方的失败反馈结果进行验证,从而根据验证情况,确定是否需要将数据提供方质押给数据需求方的设定质押金额的激励元素,退还给数据提供方。
示例性的,若在质押赎回期限内接收到验证通过的失败反馈结果,则禁止从数据需求方账户转移设定质押金额的激励元素至数据提供方账户;若在质押赎回期限内未接收到验证通过的失败反馈结果,则直接从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
在一个具体实现方式中,失败反馈结果的举证材料中可以包括数据需求方提供的密钥明文;相应的,对失败反馈结果的验证,可以包括:验证数据需求方提供的密钥明文是否基于数据提供方所提供的密钥密文解析得到;根据密钥明文对待获取数据的密文进行解析,得到明文数据;验证明文数据是否与待获取数据明文相匹配;若均验证通过,则表明对失败反馈结果验证通过;否则,对失败反馈结果验证不通过。
可选的,数据提供方构建的质押事务请求中,携带有待获取数据的哈希值,从而通过该哈希值与上述明文数据的哈希值的一致性,验证明文数据是否与待获取数据明文相匹配。
在一个具体示例中,待获取数据的哈希值,可以携带在默克尔树的叶子节点中。该默克尔树中的其他叶子节点所携带的哈希值,可以是与待获取数据关联的其他数据的哈希值。例如,待获取数据为某一完整数据中的数据分片时,可以将该完整数据中的全部数据分配的哈希值作为默克尔树的叶子节点,进而构建默克尔树。从而可在举证过程中使得区块链借助默克尔树完成需求方提供的失败反馈结果的验证。
本申请通过引入数据提供方构建的质押事务请求和质押赎回事务请求,使得在数据需求方具备待获取数据的获取需求时,响应于质押事务请求,将数据提供方的设定质押金额的激励元素转移至数据需求方,并在数据需求方获取到待获取数据的密文和密钥密文之后,响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制将设定质押金额的激励元素退还给数据提供方,从而通过押金赎回机制,对数据提供方的待获取数据的提供过程加以约束,避免了数据提供方数据提供作假的情况发生,提高了数据交换过程的公平性。同时,区块链节点在获取到数据提供方提供的密钥密文后,根据密钥验证数据对密钥密文进行验证,从而提高了链上存储的密钥密文的准确性,为数据需求方获取正确的待获取数据奠定了基础。
在上述各技术方案的基础上,在获取数据提供方构建的质押事务请求和质押赎回事务请求之前,还可以获取数据提供方构造的数据获取事务请求;数据获取事务请求包括待获取数据的描述信息和获取期限;响应于数据获取事务请求,将数据获取事务请求上链存储,以供数据需求方生成数据获取请求;其中,获取期限不小于质押赎回期限。
其中,待获取数据的描述信息可以包括对待获取数据的内容描述、待获取数据的哈希值、数据提供方提供的待获取数据的发布地址和待获取数据对描述信息和获取期限的签名等中的至少一种。
其中,获取期限即为前述待获取数据的生命周期。为了避免数据需求方在获取待获取数据的过程中,待获取数据生命周期提前终止给数据需求方带来时间损失和物质损失,通常获取期限不小于前述质押赎回期限。
可以理解的是,数据提供方根据待获取数据的描述信息和获取期限,构造数据获取事务请求;将获取事务请求发送至区块链节点;区块链节点接收获取事务请求,并将获取事务请求上链存储;数据需求方链上获取待获取数据的描述信息和获取期限,进行数据获取请求的生成,从而避免了线下交易无法查证带来的安全隐患。
为了保证数据交互过程的安全性,数据获取事务请求中还可以包括数据提供方对待获取数据的描述信息和获取期限的签名;相应的,数据需求方对该签名进行验签;若验签通过,则数据获取事务请求生效;否则,数据获取事务请求无效;仅在数据获取事务请求生效的情况下,对数据获取事务请求上链,以供数据需求方查看。
在一个可选实施例中,在响应于质押赎回事务请求之前,该方法还包括:根据质押赎回期限和数据获取期限,对质押赎回事务请求进行验证;若验证通过,则触发执行对质押赎回事务请求的响应操作;否则,禁止触发执行对质押赎回事务请求的响应操作。
可以理解的是,由于质押赎回事务请求的构建时间,晚于数据获取事务请求的构建时间,为了避免数据提供方所构建的质押赎回事务请求中的质押赎回期限不合规,还可以通过区块链节点对质押赎回期限和获取期限之间的大小关系进行验证;若质押赎回期限不大于获取期限,则验证通过;否则,验证不通过。
可选的,数据获取事务请求中携带有待获取数据的哈希值,用于通过该哈希值与前述明文数据的哈希值的一致性,验证明文数据是否与待获取数据明文相匹配。在一个具体示例中,待获取数据的哈希值,可以携带在默克尔树的叶子节点中。相应的验证过程可参见前述实施例的相关表述,在此不再赘述。
实施例二
图2是本申请实施例二提供的一种基于区块链的数据交互方法的流程图,本实施例在上述各实施例的技术方案基础上,进行了优化改进。
进一步的,将步骤“获取数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证”细化为“获取数据需求方构造的支付事务请求和支付赎回事务请求;支付事务请求包括设定支付金额;支付赎回事务请求基于支付事务请求和支付赎回期限生成;响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户”,相应的,追加“响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素;其中,支付赎回期限不大于质押赎回期限”,从而完善密钥密文的获取和验证机制。需要说明的是,在本申请实施例中未详述部分,可参见前述实施例的相关表述。
参见图2所示的基于区块链的数据交互方法,包括:
S210、获取数据提供方构建的质押事务请求和质押赎回事务请求。
S220、响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户。
S230、获取数据需求方构造的支付事务请求和支付赎回事务请求。
其中,支付事务请求用于表征将数据需求方获取待获取数据所需支付的激励元素,转移至数据提供方的事务请求。其中,支付事务请求中通常包括设定支付金额,其中,为了保证数据需求方的利益,通常设定支付金额不大于质押事务请求中的设定质押金额。
示例性的,数据获取请求中可以包括待获取数据的请求支付金额,支付事务请求中的设定支付金额可与数据获取请求中的请求支付金额相等。
在一个可选实施例中,可以根据数据需求方地址、待获取数据对应的账户地址和密钥验证数据中的至少一种,构造支付事务请求。其中,待获取数据对应的账户地址可以是数据提供方账户,或数据需求方和数据提供方之间的中间账户。可选的,在支付事务请求中还可以包括支付期限,数据需求方仅在支付期限内进行设定支付金额的激励元素的支付才会保证数据供需双方的交互过程有效。
其中,支付赎回事务请求用于表征将数据需求方向数据提供方支付的激励元素退回给数据需求方的事务请求。支付赎回事务请求可以基于支付事务请求和支付赎回期限生成。
示例性的,当数据提供方构造支付事务请求之后,根据支付事务请求和支付赎回期限,构造支付赎回事务请求,从而建立支付赎回事务请求和支付事务请求之间的事务关联。其中,支付赎回期限用于对数据需求方所支付的设定支付金额的激励元素的赎回时间加以约束。其中,支付赎回期限的数值大小可以由技术人员根据需要或经验值进行设定或调整。为了避免数据需求方在支付后未能获取到数据提供方的密钥密文,通常情况下,支付赎回期限不小于支付期限,且不大于质押赎回期限。
数据需求方通过向区块链节点发送支付事务请求和支付赎回事务请求;相应的,区块链节点接收支付事务请求和支付赎回事务请求,并触发响应支付事务请求和支付赎回事务请求。
一般的,区块链节点为例保证支付事务请求和支付赎回事务请求的响应过程的有效性和准确性,还会对支付事务请求和支付赎回事务请求进行验证,并在验证通过后在区块链网络生效。例如,可以通过支付事务请求和支付赎回事务请求中的发起方签名,对发起方是否为数据需求方进行验证。例如,可对设定支付金额是否与数据获取请求中的请求支付金额一致进行验证。
在一个可选实施例中,在响应于支付赎回事务请求之前,该方法还包括:根据支付赎回期限和质押赎回期限,对支付赎回事务请求进行验证;若验证通过,则触发执行对支付赎回事务请求的响应操作;否则,禁止触发执行对质押赎回事务请求的响应操作。
可以理解的是,由于支付赎回事务请求的构建时间,晚于质押赎回事务请求的构建时间,为了避免数据需求方所构建的支付赎回事务请求中的支付赎回期限不合规,还可以通过区块链节点对支付赎回期限和质押赎回期限之间的大小关系进行验证;若支付赎回期限不大于质押赎回期限,则验证通过;否则,验证不通过。
在一个可选实施例中,为了便于区块链节点获知数据提供方和数据需求方之间的供需关系,还可以由数据提供方参与支付赎回事务请求的构建。
示例性的,支付赎回事务请求中可以包括数据提供方对支付赎回基础数据的提供方支付签名;支付赎回基础数据基于支付事务请求和支付赎回期限构造得到;相应的,在响应于支付赎回事务请求之前,该方法还包括:对支付赎回事务请求中的提供方支付签名进行验签;若验签通过,则触发执行对支付赎回事务请求的响应操作。进一步的,如验证不通过,则禁止触发执行对支付赎回事务请求的响应操作。
具体的,数据需求方首先基于支付事务请求和支付赎回期限,构造支付赎回基础数据,用于作为支付赎回事务请求的构造基础;数据需求方将支付赎回基础数据发送至数据提供方;数据提供方在接收到支付赎回基础数据后,对支付赎回基础数据进行签名,得到提供方支付签名,并将提供方质押签名反馈至数据需求方;数据需求方在基于支付赎回基础数据和提供方支付签名,构造支付赎回事务请求,并向区块链节点发送该支付赎回事务请求;区块链节点对支付赎回事务请求中的提供方支付签名进行验签;若验签通过,则支付赎回事务请求生效;否则,支付赎回事务请求无效;在支付赎回事务请求生效的情况下,触发执行对支付赎回事务请求的响应操作;在支付赎回事务请求无效的情况下,禁止触发执行对支付赎回事务请求的响应操作。
示例性的,支付赎回基础数据中可以包括数据需求方的签名;相应的,数据提供方在接收到支付数据基础数据时,对数据需求方的签名进行验签;若验签通过,则进行提供方支付签名的生成。相应的,区块链节点获取到支付赎回事务请求后,还会对支付赎回事务请求中数据需求方的签名进行验签,从而保证支付赎回事务请求的发起方与数据需求方相一致,有助于提高支付数据事务请求的有效性,进而为数据提供方和数据需求方之间的数据交互过程的安全性和公平性奠定基础。
S240、响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户。
其中,密钥密文基于数据获取请求中数据需求方的公钥对待获取数据的密钥加密得到。
在一个可选实施例中,可以直接从数据需求方账户向数据提供方账户转移设定支付金额的激励元素;或者还可以先从数据需求方账户向中间账户转移设定支付金额的激励元素,再从中间账户向数据提供方账户转移相应设定支付金额的激励元素。
示例性的,响应于支付事务请求,从数据需求方账户转移设定支付金额的激励元素至待获取数据的中间账户;接收数据提供方提供的密钥密文,并根据密钥验证数据将对密钥密文进行验证;若验证通过,则从中间账户转移设定支付金额的激励元素至数据提供方账户。可以理解的是,通过中间账户作为缓冲,增加了数据提供方的数据作假的障碍,同时保证了数据交互过程的原子性,为数据提供方和数据需求方之间的数据交互过程的公平性奠定了基础。
在一个可选实施例中,接收数据提供方提供的密钥密文,可以是接收数据提供方基于支付事务请求和密钥密文构造的收款事务请求。
具体的,数据提供方基于数据需求方的支付事务请求和待获取数据的密钥密文,构造收款事务请求;数据提供方向区块链节点发送收款事务请求;区块链节点接收该收款事务请求,并响应于该收款事务请求,在根据密钥验证数据对密钥密文进行验证,若验证通过,则从数据需求方账户向数据提供方账户转移设定支付金额的激励元素,或者,在存在中间账户的情况下,从中间账户向数据提供方账户转移设定支付金额的激励元素。
S250、响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素。
示例性的,根据在支付赎回期限内密钥密文的接收情况,确定是否向数据需求方账户退还设定支付金额的激励元素,并根据确定结果加以响应。
可选的,若在支付赎回期限内未接收到密钥密文,则从数据提供方账户转移设定支付金额的激励元素至数据需求方账户,从而实现已支付金额退还,避免数据需求方的财产损失。或者可选的,若在支付赎回期限内接收到密钥密文,且经区块链验证通过,则禁止从数据提供方账户转移设定支付金额的激励元素至数据需求方账户,也即禁止执行已支付金额退还。或者可选的,若在支付赎回期限内接收到密钥密文,且区块链验证失败,则从数据提供方账户转移设定支付金额的激励元素至数据需求方账户,实现已支付金额的退还。
S260、响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
本申请实施例通过在数据需求方引入支付事务请求和支付赎回事务请求,使得在数据需求方进行待获取数据的费用支付时,响应于支付事务请求,接收数据提供方提供的密钥密文,并验证密钥密文与密钥验证数据之间的匹配性,避免了数据提供方提供不符合密钥验证数据的密钥密文,有助于提高密钥密文的准确性。通过响应于支付赎回事务请求,根据支付赎回期限内密钥密文的接收情况,控制向数据需求方进行设定支付金额的激励元素的退还,从而通过支付赎回机制,保障了数据需求方能够得到正确且能解密待获取数据的密钥密文,避免数据需求方利益受损,提高了数据交互过程的公平性,减少了数据交互过程中的交互漏洞。
实施例三
图3是本申请实施例三提供的一种基于区块链的数据交互方法的流程图,本实施例可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于数据提供方对应电子设备中。需要说明的是,在本申请实施例中未详述部分,可参见前述实施例的相关表述。
参见图3所示的一种基于区块链的数据交互方法,应用于数据提供方,包括:
S310、响应于数据需求方的数据获取请求,确定待获取数据。
其中,数据获取请求中包括待获取数据的标识信息,数据提供方可以根据该标识信息进行数据需求方的待获取数据的定位。
数据提供方可以直接接收数据需求方发送的数据获取请求,或者从区块链上获取数据需求方链上存储的数据获取请求。
S320、根据待获取数据的密文和待获取数据的密钥验证数据,构造质押事务请求。
其中,待获取数据的密文由数据提供方根据加密密钥对待获取数据加密得到,本申请对具体的加密实际和加密密钥的生成方法不作任何限定。例如,加密密钥可以是随机生成的对称密钥。
示例性的,待获取数据可以是完整数据M,或者是将完整数据M划分n(n≥2)份后得到的数据分片mi,其中i=1,2,…,n。需要说明的是,当数据提供方存在至少两个待获取数据时,各待获取数据的加密密钥可以相同或不同。为了避免密钥泄露带来的数据安全隐患,通常不同待获取数据对应加密密钥不同。
其中,待获取数据的密钥验证数据可以基于待获取数据的加密密钥生成。为了避免待获取数据的加密密钥的逆向破解,同时便于数据需求方进行密钥验证,可以采用数据需求方的公钥对加密密钥进行加密,并将加密结果的哈希值生成密钥验证数据。
举例说明,针对待获取数据mx的加密密钥kx,可以采用以下方式确定密钥验证数据:
Figure BDA0003450519870000111
Figure BDA0003450519870000112
其中,pkB为数据需求方B的公钥,/>
Figure BDA0003450519870000113
为通过pkB对kx的加密结果,H()为哈希运算。
其中,质押事务请求用于表征将数据提供方的部分激励元素作为数据提供方与数据需求方之间的数据交互押金的事务请求。
具体的,可以根据第x个待获取数据的密文ex和待获取数据的密钥验证数据sx,构造质押事务请求txdep,x,A→B。为了便于进行质押事务请求发起方定位,在构造txdep,x,A→B时,还可以携带数据提供方对待获取数据的密文ex和密钥验证数据sx的签名σdep_A。以在构造的质押事务请求及质押赎回请求上链后,供数据需求方获取。
在一个具体实现方式中,可以采用以下方式构建质押事务请求:txdep,x,A→B=(addrA,addrB,v/n,x,ex,sx,T2dep_A);其中,T2为质押赎回期限,也即质押有效期;σdep_A=sigskA(addrA,addrB,v/n,x,ex,sx,T2)为数据提供方基于自身私钥skA对数据的签名。
S330、根据质押事务请求和质押赎回期限,构造质押赎回事务请求。
其中,质押赎回事务请求用于表征将数据提供方质押的激励元素退回给数据提供方的事务请求。
示例性的,当数据提供方构造质押事务请求之后,根据质押事务请求txdep,x,A→B和质押赎回期限T2,构造质押赎回事务请请求txref,x,A→B,从而建立质押赎回事务请求txref,x,A→B和质押事务请求txdep,x,A→B之间的事务关联。其中,质押赎回期限T2用于对数据提供方所质押的设定质押金额的激励元素的赎回时间加以约束。其中,质押赎回期限的数值大小可以由技术人员根据需要或经验值进行确定或调整。通常情况下,待获取数据存在一定的获取期限T1,用于表征待获取数据的生命周期;质押赎回期限通常不大于该获取期限(T2≤T1)。
在一个可选实施例中,为了便于区块链节点获知数据提供方和数据需求方之间的供需关系,还可以由数据需求方参与质押赎回事务请求的构建。
示例性的,根据质押事务请求和质押赎回期限,构造质押赎回事务请求,可以包括:根据质押事务请求和质押赎回期限,构造质押赎回基础数据;将质押赎回基础数据发送至数据需求方,并接收数据需求方对质押赎回基础数据签名得到的需求方质押签名;根据质押赎回基础数据和需求方质押签名,构造质押赎回事务请求。相应的,区块链节点在响应于质押赎回事务请求之前,对质押赎回事务请求中的需求方质押签名进行验签。
具体的,数据提供方首先基于质押事务请求txdep,x,A→B和质押赎回期限T2,构造质押赎回基础数据(txdep,x,A→B,T2),用于作为质押赎回事务请求的构造基础;数据提供方将质押赎回基础数据(txdep,x,A→B,T2)发送至数据需求方;数据需求方在接收到质押赎回基础数据(txdep,x,A→B,T2)后,对质押赎回基础数据(txdep,x,A→B,T2)进行签名,得到需求方质押签名σref_B,并将需求方质押签名σref_B反馈至数据提供方;数据提供方基于质押赎回基础数据(txdep,x,A→B,T2)和需求方质押签名σref_B,构造质押赎回事务请求txref,x,A→B,并向区块链节点发送该质押赎回事务请求txref,x,A→B
在一个具体实现方式中,质押赎回基础数据还可以包括数据需求方地址addrB,便于进行数据需求方定位;质押赎回基础数据还可以包括数据提供方的签名σref_A,便于数据需求方对质押赎回基础数据进行验签;若验签通过,则生成需求方质押签名。相应的,质押赎回基础数据为(txdep,x,A→B,addrB,T2ref_A);数据提供方的签名
Figure BDA0003450519870000131
构建的质押赎回事务请求为:txref,x,A→B=(txdep,x,A→B,addrB,T2ref_Aref_B)。
S340、向区块链节点发送质押事务请求和质押赎回事务请求,以使区块链节点响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户。
数据提供方通过向区块链节点发送质押事务请求和质押赎回事务请求;相应的,区块链节点获取质押事务请求和质押赎回事务请求,并触发响应质押事务请求和质押赎回事务请求。
若质押赎回事务请求中包括需求方质押签名,则区块链节点还会对质押赎回事务请求中的需求方质押签名进行验签。
若质押赎回事务请求中包括数据提供方的签名,区块链节点获取到质押赎回事务请求后,还会对质押赎回事务请求中数据提供方的签名进行验签。
在一个具体实现方式中,区块链节点接收到质押事务请求txdep,x,A→B和质押赎回事务请求txref,x,A→B之后,需要进行以下验证:1)对σdep_A、σref_A、σref_B进行验签;2)数据提供方的账户激励元素余额是否不小于v/n;3)T2≤T1是否成立。若上述验证均通过,则将txdep,x,A→B和txref,x,A→B上链,表征两个事务请求生效;若验证不通过,则直接丢弃,事务请求响应终止。
S350、根据数据获取请求中数据提供方的公钥对待获取数据的密钥加密,得到密钥密文,并向区块链节点发送密钥密文,以使区块链节点根据密钥验证数据对密钥密文进行验证;由数据需求方根据链上获取待获取数据的密文和密钥密文,生成获取反馈结果,指示区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
其中,设定质押金额不小于待获取数据对应的设定支付金额。
需要说明的是,通过在数据获取请求中携带数据需求方的公钥,从而基于数据需求方的公钥对待获取数据的密钥加密,避免密钥密文泄露,增强了数据传输过程的安全性。
本申请实施例通过数据提供方根据待获取数据的密文和密钥验证数据,构造质押事务请求,并根据质押事务请求和质押赎回期限,构造质押赎回事务请求,从而在数据需求方获取到密钥密文之前,响应于质押事务请求,质押数据提供方的设定质押金额的激励元素;根据数据需求方的获取反馈结果,响应于质押赎回事务请求,控制将设定质押金额的激励元素退还给数据提供方,从而通过押金赎回机制,对数据提供方的待获取数据的提供过程加以约束,避免了数据提供方数据提供作假的情况发生,提高了数据交换过程的公平性。同时,区块链节点在获取到数据提供方提供的密钥密文后,根据密钥验证数据对密钥密文进行验证,为数据需求方获取正确的待获取数据奠定了基础。
在上述各技术方案的基础上,在响应于数据需求方的数据获取请求,确定待获取数据之前,还可以根据待获取数据的描述信息和获取期限,构造数据获取事务请求;向区块链节点发送数据获取事务请求,以供数据需求方根据链上的待获取数据的描述信息,生成数据获取请求。其中,获取期限不小于质押赎回期限。
其中,待获取数据的描述信息可以包括对待获取数据的内容描述、待获取数据的哈希值、待获取数据对应数据提供方的地址和待获取数据对描述信息和获取期限的签名等中的至少一种。
其中,获取期限即为前述待获取数据的生命周期。为了避免数据需求方在获取待获取数据的过程中,待获取数据生命周期提前终止给数据需求方带来时间损失和物质损失,通常获取期限不小于前述质押赎回期限。
可以理解的是,数据提供方根据待获取数据的描述信息info和获取期限T1,构造数据获取事务请求txtry,M;将获取事务请求发送至区块链节点;区块链节点接收获取事务请求,并将获取事务请求上链存储;数据需求方链上获取待获取数据的描述信息和获取期限,进行数据获取请求的生成,从而避免了线下交易无法查证带来的安全隐患。
为了保证数据交互过程的安全性,数据获取事务请求txtry,M中还可以包括数据提供方对待获取数据的描述信息和获取期限的签名σtry_A;相应的,区块链节点对该签名进行验签;若验签通过,则数据获取事务请求生效;否则,数据获取事务请求无效;仅在数据获取事务请求生效的情况下,对数据获取事务请求上链,以供数据需求方查看。
在一个具体实现方式中,可以分别构造完整数据获取事务请求txpub,A和分片数据获取事务请求txtry,M。完整数据获取事务请求如下:txpub,A=(addrA,H(M),MTR,n,v,Tend,info,σpub_A);分片数据获取事务请求如下:
Figure BDA0003450519870000141
其中,addrA为数据提供方的地址;M为完整数据;H(M)为完整数据的哈希值;mi为完整数据的第i个数据分片;hi=H(mi)为数据分片mi的哈希值;MTR为将各hi作为叶子节点构造默克尔树的根;n为数据分片mi的总数量;v为完整数据M的激励元素金额;Tend为完整数据M的有效期(也即获取期限,生命周期);T1为数据分片mi的有效期,其中T1≤Tend;cmi=H(ki),ki为数据分片mi对应的加密密钥,cmi为加密密钥ki的哈希值;info为完整数据M的描述信息;
Figure BDA0003450519870000142
为数据提供方基于自身私钥ski对数据(addrA,H(M),MTR,n,v,Tend,info)的签名;addri为数据分片mi对应的中间账户地址;/>
Figure BDA0003450519870000143
Figure BDA0003450519870000144
为基于自身私钥ski对数据
Figure BDA0003450519870000145
的签名。
相应的,区块链节点接收到完整数据获取事务请求txpub,A和分片数据获取事务请求txtry,M之后,需要进行以下验证:1)对σpub_A和σtry_A进行验签;2)验证
Figure BDA0003450519870000146
是否可以重构以MTR为根的默克尔树;3)T1≤Tend是否成立。若上述验证均通过,则将txpub,A和txtry,M上链,表征两个事务请求生效;若验证不通过,则直接丢弃,事务请求响应终止。
实施例四
图4是本申请实施例四提供的一种基于区块链的数据交互方法的流程图,本实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步的,将步骤“向区块链节点发送密钥密文”细化为“在数据需求方构造的支付事务请求和支付赎回事务请求上链后,向区块链节点发送密钥密文;支付赎回事务请求基于支付事务请求和支付赎回期限生成;其中,支付赎回期限不大于质押赎回期限”,以完善密钥密文的发送机制。需要说明的是,在本申请实施例中未详述部分,可参见前述实施例的相关表述。
参见图4所示的一种基于区块链的数据交互方法,包括:
S410、响应于数据需求方的数据获取请求,确定待获取数据。
S420、根据待获取数据的密文和待获取数据的密钥验证数据,构造质押事务请求。
S430、根据质押事务请求和质押赎回期限,构造质押赎回事务请求。
S440、向区块链节点发送质押事务请求和质押赎回事务请求,以使区块链节点响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户。
其中,设定质押金额不小于待获取数据对应的设定支付金额。
S450、根据数据获取请求中数据提供方的公钥对待获取数据的密钥加密,得到密钥密文。
S460、在数据需求方构造的支付事务请求和支付赎回事务请求上链后,向区块链节点发送密钥密文,以使区块链节点根据密钥验证数据对密钥密文进行验证;由数据需求方根据链上获取待获取数据的密文和密钥密文,生成获取反馈结果,指示区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户
其中,支付事务请求用于表征将数据需求方获取待获取数据所需支付的激励元素,转移至数据提供方的事务请求。其中,支付事务请求中通常包括设定支付金额,其中,为了保证数据需求方的利益,通常设定支付金额不大于质押事务请求中的设定质押金额。
示例性的,数据获取请求中可以包括待获取数据的请求支付金额,支付事务请求中的设定支付金额可与数据获取请求中的请求支付金额相等。可选的,在支付事务请求中还可以包括支付期限,数据需求方仅在支付期限内进行设定支付金额的激励元素的支付才会保证数据供需双方的交互过程有效。
在一个可选实施例中,可以根据数据需求方地址addrB、待获取数据对应的账户地址
Figure BDA0003450519870000151
和密钥验证数据sx中的至少一种,构造支付事务请求/>
Figure BDA0003450519870000152
其中,待获取数据对应的账户地址可以是数据提供方账户,或数据需求方和数据提供方之间的中间账户。
当区块链节点响应于支付事务请求向中间账户
Figure BDA0003450519870000153
转移设定支付金额的激励元素后,数据提供方可以通过构造收款事务请求的方式,指示区块链节点响应于收款事务请求,从中间账户/>
Figure BDA0003450519870000161
中转移相应设定支付金额的激励元素至自身账户,完成收款。
示例性的,可以根据支付事务请求txspe,x,B→Ax和密钥密文tx,构造收款事务请求
Figure BDA0003450519870000162
并向区块链节点发送收款事务请求/>
Figure BDA0003450519870000163
在一个具体实现方式中,可以采用以下方式构造收款事务请求:
Figure BDA0003450519870000164
其中,/>
Figure BDA0003450519870000165
为支付事务请求,addrA为数据提供方账户;v/n为设定支付金额;/>
Figure BDA0003450519870000166
为基于/>
Figure BDA0003450519870000167
的数据签名结果;/>
Figure BDA0003450519870000168
为密钥密文,对应/>
Figure BDA0003450519870000169
若H(tx)=sx,则对tx验证通过。
相应的,区块链节点接收到收款事务请求
Figure BDA00034505198700001610
之后,需要进行以下验证:1)对
Figure BDA00034505198700001611
进行验签;2)H(tx)=sx是否成立;3)当前时间≤T3,是否成立。若上述验证均通过,则将/>
Figure BDA00034505198700001612
上链,表征该事务请求生效;若验证不通过,则直接丢弃,事务请求响应终止。
其中,支付赎回事务请求用于表征将数据需求方向数据提供方支付的激励元素退回给数据需求方的事务请求。支付赎回事务请求可以基于支付事务请求和支付赎回期限生成。其中,支付赎回期限不大于质押赎回期限。
示例性的,当数据需求方构造支付事务请求之后,根据支付事务请求
Figure BDA00034505198700001613
和支付赎回期限T3,构造支付赎回事务请求/>
Figure BDA00034505198700001614
从而建立支付赎回事务请求和支付事务请求之间的事务关联。其中,支付赎回期限用于对数据需求方所支付的设定支付金额的激励元素的赎回时间加以约束。其中,支付赎回期限的数值大小可以由技术人员根据需要或经验值进行设定或调整。为了避免数据需求方在支付后未能获取到数据提供方的密钥密文,通常情况下,支付期限不大于支付赎回期限,且均不大于质押赎回期限(T3≤T2)。
数据需求方通过向区块链节点发送支付事务请求
Figure BDA00034505198700001615
和支付赎回事务请求
Figure BDA00034505198700001616
相应的,区块链节点接收支付事务请求和支付赎回事务请求,并触发响应支付事务请求和支付赎回事务请求。其中,区块链节点对支付事务请求和支付赎回事务请求的响应操作,可参见其他实施例的相关表述,在此不再赘述。
在一个可选实施例中,为了便于区块链节点获知数据提供方和数据需求方之间的供需关系,还可以由数据提供方参与支付赎回事务请求的构建。
示例性的,在向区块链节点发送密钥密文之前,该方法还包括:获取数据需求方发送的支付赎回基础数据;对支付赎回基础数据进行签名,得到提供方支付签名;向数据需求方发送提供方支付签名,以使数据需求方根据提供方支付签名,构造支付赎回事务请求。
具体的,数据需求方首先基于支付事务请求
Figure BDA00034505198700001617
和支付赎回期限T3,构造支付赎回基础数据/>
Figure BDA0003450519870000171
用于作为支付赎回事务请求的构造基础;数据需求方将支付赎回基础数据/>
Figure BDA0003450519870000172
发送至数据提供方;数据提供方在接收到支付赎回基础数据/>
Figure BDA0003450519870000173
后,对支付赎回基础数据/>
Figure BDA0003450519870000174
进行签名,得到提供方支付签名
Figure BDA0003450519870000175
其中,/>
Figure BDA0003450519870000176
为/>
Figure BDA0003450519870000177
对应私钥;将提供方质押签名/>
Figure BDA0003450519870000178
反馈至数据需求方;数据需求方在基于支付赎回基础数据/>
Figure BDA0003450519870000179
和提供方支付签名/>
Figure BDA00034505198700001710
构造支付赎回事务请求/>
Figure BDA00034505198700001711
并向区块链节点发送该支付赎回事务请求/>
Figure BDA00034505198700001712
在一个具体实现方式中,支付赎回基础数据还可以包括待获取数据对应的账户地址
Figure BDA00034505198700001713
便于进行激励元素转移定位;支付赎回基础数据还可以包括数据需求方的签名σspe_B,便于数据提供方对支付赎回基础数据/>
Figure BDA00034505198700001714
进行验签;若验签通过,则生成提供方支付签名。相应的,支付赎回基础数据为/>
Figure BDA00034505198700001715
构建的支付赎回事务请求为:/>
Figure BDA00034505198700001716
本申请实施例通过数据需求方构造支付事务请求和支付赎回事务请求,使得在数据需求方进行待获取数据的费用支付时,响应于支付事务请求,接收数据提供方提供的密钥密文,并验证密钥密文与密钥验证数据之间的匹配性,避免了数据提供方提供不符合密钥验证数据的密钥密文,有助于提高密钥密文的准确性。通过响应于支付赎回事务请求,根据支付赎回期限内密钥密文的接收情况,控制向数据需求方进行设定支付金额的激励元素的退还,从而通过支付赎回机制,保障了数据需求方能够得到正确且能解密待获取数据的密钥密文,避免数据需求方利益受损,提高了数据交互过程的公平性,减少了数据交互过程中的交互漏洞。
实施例五
图5是本申请实施例五提供的一种基于区块链的数据交互方法的流程图,可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于数据需求方对应电子设备中。需要说明的是,在本申请实施例中未详述部分,可参见前述实施例的相关表述。
参见图5所示的一种基于区块链的数据交互方法,应用于数据需求方,包括:
S510、发送对待获取数据的数据获取请求,以使数据提供方响应于数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据,构造指示从数据提供方账户转移设定质押金额的激励元素至数据需求方账户的质押事务请求,并根据质押事务请求和质押赎回期限,构造质押赎回事务请求。
其中,设定质押金额不小于待获取数据对应的设定支付金额。
示例性的,数据需求方可以从区块链中获取数据获取事务请求;数据获取事务请求可以包括待获取数据的描述信息和获取期限;生成对待获取数据的数据获取请求,并向数据提供方发送数据获取请求。其中,获取期限不小于质押赎回期限。
其中,数据获取事务请求的生成方式可参见前述实施例的相关表述。
示例性的,生成对待获取数据的数据获取请求,可以是数据需求方随机选取数据获取事务请求中的数据分片mx,其中x∈R[1,n];根据需求方公钥pkB和数据分片标识x,构造数据获取请求(x,pkB)。
示例性的,向数据提供方发送数据获取请求,可以是:直接将数据获取请求发送至数据提供方;或者,将数据获取请求发送至区块链节点,以使数据提供方可以链上获取该数据获取请求。
其中,数据提供方构建质押事务请求和质押赎回事务请求的具体构建方式,可参见前述实施例的相关表述。
在一个可选实施例中,当数据需求方共同参与数据提供方的质押赎回事务请求时,数据需求方还可以获取数据提供方发送的质押赎回基础数据;质押赎回基础数据基于质押事务请求和质押赎回期限构造得到;对质押赎回基础数据进行签名,得到需求方质押签名;向数据提供方反馈需求方质押签名,以使数据提供方根据需求方质押签名构造质押赎回事务请求。
需要说明的是,数据需求方进行需求方质押签名的生成过程可参见前述实施例,在此不再赘述。
S520、从区块链上获取质押事务请求中的待获取数据的密文。
可以理解的是,从区块链上获取质押事务请求中的待获取数据的密文,由于区块链中的数据均为遵守区块链共识机制验证通过的数据,因此,为数据需求方所获取数据的准确性奠定了基础。在区块链中存储待获取数据的密文,避免了数据提供方的数据泄露,维护了数据提供方的利益。
S530、从区块链上获取根据密钥验证数据验证通过的密钥密文。
其中,密钥密文基于数据获取请求中数据提供方的公钥对待获取数据的密钥加密得到,便于数据需求方进行密钥明文的获取,同时,避免了数据提供方的密钥泄露。
从区块链中进行密钥密文的获取,区块链节点在接收到密钥密文后,根据密钥验证数据对密钥密文进行验证,仅将密钥验证数据验证通过的密钥密文,上链存储,从而保证了数据提供方提供的密钥密文与密钥验证数据的匹配度,进而为数据需求方获取正确的密钥密文提供了保证,为数据需求方后续基于密钥密文进行待获取数据的有效获取,奠定了基础。
S540、根据密钥密文和待获取数据的密文,生成获取反馈结果,以使区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
数据需求方采用自身私钥skB对密钥密文tx进行解密,得到密钥明文
Figure BDA0003450519870000181
进而采用密钥明文kx,对待获取数据的密文ex进行解密,得到待获取数据明文/>
Figure BDA0003450519870000182
可以通过对mx进行哈希运算,结合默克尔数据验证得到的所述密文是否为数据请求事务中的数据的一部分。数据需求方可以对mx进行预览,或通过其他质量检测手段对mx进行质量评估,从而确定是否购买其他待获取数据,如获取完整数据M。/>
值得注意的是,本发明中由于受区块链系统本身进行数据交易的限制(只能获取数据密文,且无需求方私钥),区块链只能对待获取数据的密钥密文进行验证,由于并不具有需求方所具有的私钥,无法验证待获取数据明文的正确性,因此通过时间期限的设置(T1+Δ>T2+Δ>T3+Δ),给需求方预留了二次验证或称之为举证的时间,增加对接收到的数据密文进行私钥验证以及对解密得到的数据明文进行哈希比对的过程,且整个系统设置上,保证了当需求方耍赖(谎称接收到的数据和密钥不匹配)时,区块链利用需求方提供的密文密钥和明文数据进行验证(将密钥密文还原为sx以及计算明文数据的哈希值与默克尔树进行比对)消除了现有区块链交易中的数据提供方及数据需求方存在的交易漏洞。提升了交易的公平性。
其中,Δ为区块链交易处理响应时间(交易发布到记录在区块链上达成共识的时间),由区块链平台确定。T1为获取期限,也即待获取数据的获取有效期;T2为质押赎回期限,也即设定质押金额的赎回有效期;T3为支付赎回期限,也即设定支付金额的赎回有效期。
数据需求方可以根据数据明文mx的实际获取情况,确定获取反馈结果,可以包括获取成功对应的正向反馈结果(也即成功反馈结果),或者获取失败对应的反向反馈结果(也即失败反馈结果)。需要说明的是,失败反馈结果中通常还会包括数据需求方提供的举证材料,用于作为数据提供方作假的证据。
本申请通过引入数据提供方构建的质押事务请求和质押赎回事务请求,使得在数据需求方具备待获取数据的获取需求时,响应于质押事务请求,将数据提供方的设定质押金额的激励元素转移至数据需求方,并在数据需求方获取到待获取数据的密文和密钥密文之后,响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取反馈结果,控制将设定质押金额的激励元素退还给数据提供方,从而通过押金赎回机制,对数据提供方的待获取数据的提供过程加以约束,避免了数据提供方数据提供作假的情况发生,提高了数据交换过程的公平性。同时,区块链节点在获取到数据提供方提供的密钥密文后,根据密钥验证数据对密钥密文进行验证,从而提高了链上存储的密钥密文的准确性,为数据需求方获取正确的待获取数据奠定了基础。
实施例六
图6是本申请实施例六提供的一种基于区块链的数据交互方法的流程图,本实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步的,在步骤“从区块链上获取根据密钥验证数据验证通过的密钥密文”之前,追加“根据待获取数据,构造支付事务请求;根据支付事务请求和支付赎回期限,生成支付赎回事务请求;向区块链节点发送支付事务请求和支付赎回事务请求,以使区块链节点响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户,以及响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素;其中,支付赎回期限不大于质押赎回期限”,从而完善数据需求方的支付赎回机制。需要说明的是,在本申请实施例未详述部分,可参见前述实施例的相关表述。
参见图6所示的一种基于区块链的数据交互方法,包括:
S610、发送对待获取数据的数据获取请求,以使数据提供方响应于数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据,构造指示从数据提供方账户转移设定质押金额的激励元素至数据需求方账户的质押事务请求,并根据质押事务请求和质押赎回期限,构造质押赎回事务请求。
S620、从区块链上获取质押事务请求中的待获取数据的密文。
S630、根据待获取数据,构造支付事务请求。
其中,支付事务请求用于表征将数据需求方获取待获取数据所需支付的激励元素,转移至数据提供方的事务请求。其中,支付事务请求中通常包括设定支付金额,其中,为了保证数据需求方的利益,通常设定支付金额不大于质押事务请求中的设定质押金额。
具体的,可以根据数据需求方地址addrB、待获取数据mx对应的账户地址
Figure BDA0003450519870000201
和密钥验证数据sx中的至少一种,构造支付事务请求/>
Figure BDA0003450519870000202
其中,待获取数据对应的账户地址可以是数据提供方账户,或数据需求方和数据提供方之间的中间账户。为了便于进行支付事务请求发起方定位,在构造/>
Figure BDA0003450519870000203
时,还可以携带数据需求方的签名σspe_B
在一个具体实现方式中,可以采用以下方式构建支付事务请求:
Figure BDA0003450519870000204
其中,T3为支付赎回期限,也即支付有效期;
Figure BDA0003450519870000205
为数据需求方基于自身私钥skB对数据的签名。
S640、根据支付事务请求和支付赎回期限,生成支付赎回事务请求。
其中,支付赎回事务请求用于表征将数据需求方向数据提供方支付的激励元素退回给数据需求方的事务请求。其中,支付赎回期限不大于质押赎回期限。
示例性的,当数据提供方构造支付事务请求之后,根据支付事务请求
Figure BDA0003450519870000206
和支付赎回期限T3,构造支付赎回事务请求/>
Figure BDA0003450519870000207
从而建立支付赎回事务请求和支付事务请求之间的事务关联。其中,支付赎回期限用于对数据需求方所支付的设定支付金额的激励元素的赎回时间加以约束。其中,支付赎回期限的数值大小可以由技术人员根据需要或经验值进行设定或调整。为了避免数据需求方在支付后未能获取到数据提供方的密钥密文,通常情况下,支付赎回期限不大于质押赎回期限(T3≤T2)。
数据需求方通过向区块链节点发送支付事务请求
Figure BDA0003450519870000208
和支付赎回事务请求
Figure BDA0003450519870000209
相应的,区块链节点接收支付事务请求和支付赎回事务请求,并触发响应支付事务请求和支付赎回事务请求。其中,区块链节点对支付事务请求和支付赎回事务请求的响应操作,可参见其他实施例的相关表述,在此不再赘述。
在一个可选实施例中,为了便于区块链节点获知数据提供方和数据需求方之间的供需关系,还可以由数据提供方参与支付赎回事务请求的构建。
示例性的,根据支付事务请求和支付赎回期限,生成支付赎回事务请求,可以包括:根据支付事务请求和支付赎回期限,生成支付赎回基础数据;将支付赎回基础数据发送至数据提供方,并接收数据提供方对支付赎回基础数据签名得到的提供方支付签名;根据支付赎回基础数据和提供方支付签名,构造支付赎回事务请求。
具体的,数据需求方首先基于支付事务请求
Figure BDA0003450519870000211
和支付赎回期限T3,构造支付赎回基础数据/>
Figure BDA0003450519870000212
用于作为支付赎回事务请求的构造基础;数据需求方将支付赎回基础数据/>
Figure BDA0003450519870000213
发送至数据提供方;数据提供方在接收到支付赎回基础数据/>
Figure BDA0003450519870000214
后,对支付赎回基础数据/>
Figure BDA0003450519870000215
进行签名,得到提供方支付签名
Figure BDA0003450519870000216
其中,/>
Figure BDA0003450519870000217
为/>
Figure BDA0003450519870000218
对应私钥;将提供方质押签名/>
Figure BDA0003450519870000219
反馈至数据需求方;数据需求方在基于支付赎回基础数据/>
Figure BDA00034505198700002110
和提供方支付签名/>
Figure BDA00034505198700002111
构造支付赎回事务请求/>
Figure BDA00034505198700002112
并向区块链节点发送该支付赎回事务请求/>
Figure BDA00034505198700002113
在一个具体实现方式中,支付赎回基础数据还可以包括待获取数据对应的账户地址
Figure BDA00034505198700002114
便于进行激励元素转移定位;支付赎回基础数据还可以包括数据需求方的签名σspe_B,便于数据提供方对支付赎回基础数据/>
Figure BDA00034505198700002115
进行验签;若验签通过,则生成提供方支付签名。相应的,支付赎回基础数据为/>
Figure BDA00034505198700002116
构建的支付赎回事务请求为:/>
Figure BDA00034505198700002117
S650、向区块链节点发送支付事务请求和支付赎回事务请求,以使区块链节点响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户,以及响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素。
数据需求方通过向区块链节点发送支付事务请求和支付赎回事务请求;相应的,区块链节点获取支付事务请求和支付赎回事务请求,并触发响应支付事务请求和支付赎回事务请求。
若支付赎回事务请求中包括提供方支付签名,则区块链节点对支付赎回事务请求中的提供方支付签名进行验签;若验签通过,则支付赎回事务请求生效;否则,支付赎回事务请求无效;在支付赎回事务请求生效的情况下,触发执行对支付赎回事务请求的响应操作;在支付赎回事务请求无效的情况下,禁止触发对支付赎回事务请求的响应操作。
若支付赎回事务请求中包括数据需求方的签名,区块链节点获取到支付赎回事务请求后,还会对支付赎回事务请求中数据需求方的签名进行验签,从而保证支付赎回事务请求的发起方与数据需求方相一致,有助于提高支付赎回事务请求的有效性,进而为数据提供方和数据需求方之间的数据交互过程的安全性和公平性奠定基础。
在一个具体实现方式中,区块链节点接收到支付事务请求
Figure BDA0003450519870000221
和支付赎回事务请求/>
Figure BDA0003450519870000222
之后,需要进行以下验证:1)对σspe_B、/>
Figure BDA0003450519870000223
σspe_B进行验签;2)数据需求方的账户激励元素余额是否不小于v/n;3)T3≤T2是否成立。若上述验证均通过,则将
Figure BDA0003450519870000224
和/>
Figure BDA0003450519870000225
上链,表征两个事务请求生效;若验证不通过,则直接丢弃,事务请求响应终止。
S660、从区块链上获取根据密钥验证数据验证通过的密钥密文。
其中,密钥密文基于数据获取请求中数据提供方的公钥对待获取数据的密钥加密得到。
示例性的,可以从区块链中获取基于支付事务请求和密钥密文构造的收款事务请求,从而实现密钥密文的获取。其中,收款事务请求用于在数据需求方向数据提供方进行设定支付金额的激励元素转账时,先从数据需求方账户向中间账户转移设定支付金额的激励元素,再从中间账户向数据提供方账户转移相应设定支付金额的激励元素的情况下,指示区块节点从中间账户转移相应设定支付金额的激励元素至自身账户,完成收款。
其中,收款事务请求的构建操作可参见前述实施例,本申请在此不再赘述。
S670、根据密钥密文和待获取数据的密文,生成获取反馈结果,以使区块链节点根据质押赎回期限和获取反馈结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
本申请实施例通过在数据需求方引入支付事务请求和支付赎回事务请求,使得在数据需求方进行待获取数据的费用支付时,响应于支付事务请求,接收数据提供方提供的密钥密文,并验证密钥密文与密钥验证数据之间的匹配性,避免了数据提供方提供不符合密钥验证数据的密钥密文,有助于提高密钥密文的准确性。通过响应于支付赎回事务请求,根据支付赎回期限内密钥密文的接收情况,控制向数据需求方进行设定支付金额的激励元素的退还,从而通过支付赎回机制,保障了数据需求方能够得到正确且能解密待获取数据的密钥密文,避免数据需求方利益受损,提高了数据交互过程的公平性,减少了数据交互过程中的交互漏洞。
实施例七
图7是本申请实施例七提供的一种基于区块链的数据交互装置的结构图,本实施例可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中,该电子设备可以是承载有区块链节点的计算设备。
参见图7所示的一种基于区块链的数据交互装置,配置于区块链节点,包括:质押事务请求获取模块710、质押事务请求响应模块720、密钥密文获取模块730和质押赎回事务请求响应模块740。其中,
质押事务请求获取模块710,用于获取数据提供方构建的质押事务请求和质押赎回事务请求;质押事务请求响应于数据需求方的数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据生成;质押赎回事务请求基于质押事务请求和质押赎回期限生成;
质押事务请求响应模块720,用于响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
密钥密文获取模块730,用于获取数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,并上链存储;密钥密文基于数据获取请求中数据需求方的公钥对待获取数据的密钥加密得到;
质押赎回事务请求响应模块740,用于响应于质押赎回事务请求,根据质押赎回期限和数据需求方的获取失败反馈数据,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可选的,质押赎回事务请求响应模块740,包括:
接收响应单元,用于若在质押赎回期限内接收到数据需求方的失败反馈结果,则验证失败反馈结果,并根据验证结果,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户;
未接收响应单元,用于若在质押赎回期限内未接收到数据需求方的失败反馈结果,则直接从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可选的,接收响应单元,包括:
禁止转移子单元,用于若在质押赎回期限内接收到验证通过的失败反馈结果,则禁止从数据需求方账户转移设定质押金额的激励元素至数据提供方账户;
转移子单元,用于若在质押赎回期限内未接收到验证通过的失败反馈结果,则直接从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可选的,该装置还包括:
数据获取事务请求获取模块,用于在获取数据提供方构建的质押事务请求和质押赎回事务请求之前,获取数据提供方构造的数据获取事务请求;数据获取事务请求包括待获取数据的描述信息和获取期限;
数据获取事务请求响应模块,用于响应于数据获取事务请求,将数据获取事务请求上链存储,以供数据需求方生成数据获取请求;
其中,获取期限不小于质押赎回期限。
可选的,质押赎回事务请求中包括数据需求方对质押赎回基础数据的需求方质押签名;质押赎回基础数据基于质押事务请求和质押赎回期限构造得到;
相应的,该装置还包括:
需求方质押签名验签模块,用于在响应于质押赎回事务请求之前,对质押赎回事务请求中的需求方质押签名进行验签;
验签结果响应模块,用于若验签通过,则触发执行对质押赎回事务请求的响应操作。
可选的,密钥密文获取模块730,包括:
支付事务请求获取单元,用于获取数据需求方构造的支付事务请求和支付赎回事务请求;支付事务请求包括设定支付金额;支付赎回事务请求基于支付事务请求和支付赎回期限生成;
支付事务请求响应单元,用于响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户;
相应的,密钥密文获取模块730,还包括:
支付赎回事务请求响应单元,用于响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素;
其中,支付赎回期限不大于质押赎回期限。
可选的,支付赎回事务请求中包括数据提供方对支付赎回基础数据的提供方支付签名;支付赎回基础数据基于支付事务请求和支付赎回期限构造得到;
相应的,支付赎回事务请求响应单元,还包括:
提供方支付签名验签子单元,用于在响应于支付赎回事务请求之前,对支付赎回事务请求中的提供方支付签名进行验签;
验签结果响应子单元,用于若验签通过,则触发执行对支付赎回事务请求的响应操作。
上述基于区块链的数据交互装置可执行本申请任意实施例所提供的基于区块链的数据交互方法,具备执行基于区块链的数据交互方法相应的功能模块和有益效果。
实施例八
图8是本申请实施例八提供的一种基于区块链的数据交互装置的结构图,本实施例可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于数据提供方对应电子设备中。
参见图8所示的一种基于区块链的数据交互装置,配置于数据提供方,包括:待获取数据确定模块810、质押事务请求构造模块820、质押赎回事务请求构造模块830和质押事务请求发送模块840和密钥密文得到模块850。其中,
待获取数据确定模块810,用于响应于数据需求方的数据获取请求,确定待获取数据;
质押事务请求构造模块820,用于根据待获取数据的密文和待获取数据的密钥验证数据,构造质押事务请求;
质押赎回事务请求构造模块830,用于根据质押事务请求和质押赎回期限,构造质押赎回事务请求;
质押事务请求发送模块840,用于向区块链节点发送质押事务请求和质押赎回事务请求,以使区块链节点响应于质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
密钥密文得到模块850,用于根据数据获取请求中数据提供方的公钥对待获取数据的密钥加密,得到密钥密文,并向区块链节点发送密钥密文,以使区块链节点根据密钥验证数据对密钥密文进行验证,并上链存储;由数据需求方根据链上获取待获取数据的密文和密钥密文,生成获取失败反馈数据,指示区块链节点根据质押赎回期限和获取失败反馈数据,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可选的,该装置还包括:
数据获取事务请求构造模块,用于在响应于数据需求方的数据获取请求,确定待获取数据之前,根据待获取数据的描述信息和获取期限,构造数据获取事务请求;
数据获取事务请求发送模块,用于向区块链节点发送数据获取事务请求,以供数据需求方根据链上的待获取数据的描述信息,生成数据获取请求;
其中,获取期限不小于质押赎回期限。
可选的,质押赎回事务请求构造模块830,包括:
质押赎回基础数据构造单元,用于根据质押事务请求和质押赎回期限,构造质押赎回基础数据;
质押赎回基础数据发送单元,用于将质押赎回基础数据发送至数据需求方,并接收数据需求方对质押赎回基础数据签名得到的需求方质押签名;
质押赎回事务请求构造单元,用于根据质押赎回基础数据和需求方质押签名,构造质押赎回事务请求。
可选的,密钥密文得到模块850,包括:
密钥密文发送单元,用于在数据需求方构造的支付事务请求和支付赎回事务请求上链后,向区块链节点发送密钥密文;
所述支付事务请求中包括设定支付金额,用于指示区块链节点接收所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至所述数据提供方账户;
支付赎回事务请求基于支付事务请求和支付赎回期限生成,用于指示区块链节点根据在所述支付赎回期限内所述密钥密文的接收情况,控制向所述数据需求方账户退还所述设定支付金额的激励元素;
其中,支付赎回期限不大于质押赎回期限。
进一步的,密钥密文得到模块850,还包括:
支付赎回基础数据获取单元,用于在向区块链节点发送密钥密文之前,获取数据需求方发送的支付赎回基础数据;
提供方支付签名得到单元,用于对支付赎回基础数据进行签名,得到提供方支付签名;
提供方支付签名发送单元,用于向数据需求方发送提供方支付签名,以使数据需求方根据提供方支付签名构造支付赎回事务请求。
上述基于区块链的数据交互装置可执行本申请任意实施例所提供的基于区块链的数据交互方法,具备执行基于区块链的数据交互方法相应的功能模块和有益效果。
实施例九
图9是本申请实施例九提供的一种基于区块链的数据交互装置的结构图,本实施例可适用于基于区块链在数据提供方和数据需求方之间进行数据交互的场景,该方法可以由基于区块链的数据交互装置执行,该装置可以采用软件和/或硬件实现,并具体配置于数据需求方对应电子设备中。
参见图9所示的一种基于区块链的数据交互装置,配置于数据需求方,包括:数据获取请求发送模块910、数据密文获取模块920、密钥密文获取模块930和获取失败反馈数据生成模块940。其中,
数据获取请求发送模块910,用于发送对待获取数据的数据获取请求,以使数据提供方响应于数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据,构造指示从数据提供方账户转移设定质押金额的激励元素至数据需求方账户的质押事务请求,并根据质押事务请求和质押赎回期限,构造质押赎回事务请求;
数据密文获取模块920,用于从区块链上获取质押事务请求中的待获取数据的密文;
密钥密文获取模块930,用于从区块链上获取根据密钥验证数据验证通过的密钥密文;密钥密文基于数据获取请求中数据提供方的公钥对待获取数据的密钥加密得到;
获取失败反馈数据生成模块940,用于根据密钥密文和待获取数据的密文,生成获取失败反馈数据,以使区块链节点根据质押赎回期限和获取失败反馈数据,控制从数据需求方账户转移设定质押金额的激励元素至数据提供方账户。
可选的,数据获取请求发送模块910,包括:
数据获取事务请求获取单元,用于从区块链中获取数据获取事务请求;数据获取事务请求包括待获取数据的描述信息和获取期限;
数据获取请求生成单元,用于生成对待获取数据的数据获取请求,并向数据提供方发送数据获取请求;
其中,获取期限不小于质押赎回期限。
可选的,该装置还包括:
质押赎回基础数据获取模块,用于在从区块链上获取质押事务请求中的待获取数据的密文之前,获取数据提供方发送的质押赎回基础数据;质押赎回基础数据基于质押事务请求和质押赎回期限构造得到;
需求方质押签名得到模块,用于对质押赎回基础数据进行签名,得到需求方质押签名;
需求方质押签名反馈模块,用于向数据提供方反馈需求方质押签名,以使数据提供方根据需求方质押签名构造质押赎回事务请求。
可选的,该装置还包括:
支付事务请求构造模块,用于在从区块链上获取根据密钥验证数据验证通过的密钥密文之前,根据待获取数据,构造支付事务请求;
支付赎回事务请求生成模块,用于根据支付事务请求和支付赎回期限,生成支付赎回事务请求;
支付事务请求发送模块,用于向区块链节点发送支付事务请求和支付赎回事务请求,以使区块链节点响应于支付事务请求,接收数据提供方提供的密钥密文,并根据密钥验证数据对密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至数据提供方账户,以及响应于支付赎回事务请求,根据在支付赎回期限内密钥密文的接收情况,控制向数据需求方账户退还设定支付金额的激励元素;
其中,支付赎回期限不大于质押赎回期限。
可选的,支付赎回事务请求生成模块,包括:
支付赎回基础数据生成单元,用于根据支付事务请求和支付赎回期限,生成支付赎回基础数据;
支付赎回基础数据发送单元,用于将支付赎回基础数据发送至数据提供方,并接收数据提供方对支付赎回基础数据签名得到的提供方支付签名;
支付赎回事务请求构造单元,用于根据支付赎回基础数据和提供方支付签名,构造支付赎回事务请求。
上述基于区块链的数据交互装置可执行本申请任意实施例所提供的基于区块链的数据交互方法,具备执行基于区块链的数据交互方法相应的功能模块和有益效果。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (14)

1.基于区块链的数据交互方法,应用于区块链节点,其特征在于,包括:
获取数据提供方构建的质押事务请求和质押赎回事务请求;所述质押事务请求响应于数据需求方的数据获取请求,根据待获取数据的密文和待获取数据的密钥验证数据生成;所述质押赎回事务请求基于所述质押事务请求和质押赎回期限生成;
响应于所述质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
获取所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证;所述密钥密文基于所述数据获取请求中所述数据需求方的公钥对所述待获取数据的密钥加密得到;
响应于所述质押赎回事务请求,根据所述质押赎回期限和所述数据需求方的获取反馈结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户;
所述获取所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证,包括:
获取所述数据需求方构造的支付事务请求和支付赎回事务请求;所述支付事务请求包括设定支付金额;所述支付赎回事务请求基于所述支付事务请求和支付赎回期限生成;
响应于所述支付事务请求,接收所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至所述数据提供方账户;
相应的,所述方法还包括:
响应于所述支付赎回事务请求,根据在所述支付赎回期限内所述密钥密文的接收情况,控制向所述数据需求方账户退还所述设定支付金额的激励元素;
其中,所述支付赎回期限不大于所述质押赎回期限。
2.根据权利要求1所述的方法,其特征在于,所述根据所述质押赎回期限和所述数据需求方的获取反馈结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户,包括:
若在所述质押赎回期限内接收到所述数据需求方的失败反馈结果,则验证所述失败反馈结果,并根据验证结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户;
若在所述质押赎回期限内未接收到所述数据需求方的失败反馈结果,则直接从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户。
3.根据权利要求2所述的方法,其特征在于,所述根据验证结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户,包括:
若在所述质押赎回期限内接收到验证通过的失败反馈结果,则禁止从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户;
若在所述质押赎回期限内未接收到验证通过的失败反馈结果,则直接从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户。
4.根据权利要求1所述的方法,其特征在于,在所述获取数据提供方构建的质押事务请求和质押赎回事务请求之前,所述方法还包括:
获取所述数据提供方构造的数据获取事务请求;所述数据获取事务请求包括待获取数据的描述信息和获取期限;
响应于所述数据获取事务请求,将所述数据获取事务请求上链存储,以供所述数据需求方生成所述数据获取请求;
其中,所述获取期限不小于所述质押赎回期限。
5.根据权利要求1所述的方法,其特征在于,所述质押赎回事务请求中包括所述数据需求方对质押赎回基础数据的需求方质押签名;所述质押赎回基础数据基于所述质押事务请求和质押赎回期限构造得到;
相应的,在所述响应于所述质押赎回事务请求之前,所述方法还包括:
对所述质押赎回事务请求中的所述需求方质押签名进行验签;
若验签通过,则触发执行对所述质押赎回事务请求的响应操作。
6.根据权利要求1所述的方法,其特征在于,所述支付赎回事务请求中包括所述数据提供方对支付赎回基础数据的提供方支付签名;所述支付赎回基础数据基于所述支付事务请求和所述支付赎回期限构造得到;
相应的,在所述响应于所述支付赎回事务请求之前,所述方法还包括:
对所述支付赎回事务请求中的所述提供方支付签名进行验签;
若验签通过,则触发执行对所述支付赎回事务请求的响应操作。
7.基于区块链的数据交互方法,应用于数据提供方,其特征在于,包括:
响应于数据需求方的数据获取请求,确定待获取数据;
根据所述待获取数据的密文和所述待获取数据的密钥验证数据,构造质押事务请求;
根据所述质押事务请求和质押赎回期限,构造质押赎回事务请求;
向区块链节点发送所述质押事务请求和所述质押赎回事务请求,以使所述区块链节点响应于所述质押事务请求,从数据提供方账户转移设定质押金额的激励元素至数据需求方账户;
根据所述数据获取请求中数据提供方的公钥对所述待获取数据的密钥加密,得到密钥密文,并向所述区块链节点发送所述密钥密文,以使所述区块链节点根据所述密钥验证数据对所述密钥密文进行验证;由所述数据需求方根据链上获取所述待获取数据的密文和所述密钥密文,生成获取反馈结果,指示所述区块链节点根据所述质押赎回期限和所述获取反馈结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户;
所述向所述区块链节点发送所述密钥密文,包括:
在所述数据需求方构造的支付事务请求和支付赎回事务请求上链后,向所述区块链节点发送所述密钥密文;
所述支付事务请求中包括设定支付金额,用于指示区块链节点接收所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至所述数据提供方账户;
所述支付赎回事务请求基于所述支付事务请求和支付赎回期限生成,用于指示区块链节点根据在所述支付赎回期限内所述密钥密文的接收情况,控制向所述数据需求方账户退还所述设定支付金额的激励元素;其中,所述支付赎回期限不大于所述质押赎回期限。
8.根据权利要求7所述的方法,其特征在于,在所述响应于数据需求方的数据获取请求,确定待获取数据之前,所述方法还包括:
根据待获取数据的描述信息和获取期限,构造数据获取事务请求;
向区块链节点发送所述数据获取事务请求,以供所述数据需求方根据链上的待获取数据的描述信息,生成数据获取请求;
其中,所述获取期限不小于所述质押赎回期限。
9.根据权利要求7所述的方法,其特征在于,所述根据所述质押事务请求和质押赎回期限,构造质押赎回事务请求,包括:
根据所述质押事务请求和所述质押赎回期限,构造质押赎回基础数据;
将所述质押赎回基础数据发送至所述数据需求方,并接收所述数据需求方对所述质押赎回基础数据签名得到的需求方质押签名;
根据所述质押赎回基础数据和所述需求方质押签名,构造所述质押赎回事务请求。
10.根据权利要求7所述的方法,其特征在于,在所述向所述区块链节点发送所述密钥密文之前,所述方法还包括:
获取所述数据需求方发送的支付赎回基础数据;
对所述支付赎回基础数据进行签名,得到提供方支付签名;
向所述数据需求方发送所述提供方支付签名,以使所述数据需求方根据所述提供方支付签名构造所述支付赎回事务请求。
11.基于区块链的数据交互方法,应用于数据需求方,其特征在于,包括:
发送对待获取数据的数据获取请求,以使数据提供方响应于所述数据获取请求,根据待获取数据的密文和所述待获取数据的密钥验证数据,构造指示从数据提供方账户转移设定质押金额的激励元素至数据需求方账户的质押事务请求,并根据所述质押事务请求和质押赎回期限,构造质押赎回事务请求;
从区块链上获取所述质押事务请求中的所述待获取数据的密文;
从所述区块链上获取根据所述密钥验证数据验证通过的密钥密文;所述密钥密文基于所述数据获取请求中数据提供方的公钥对所述待获取数据的密钥加密得到;
根据所述密钥密文和所述待获取数据的密文,生成获取反馈结果,以使区块链节点根据所述质押赎回期限和所述获取反馈结果,控制从所述数据需求方账户转移所述设定质押金额的激励元素至所述数据提供方账户;
从所述区块链上获取根据所述密钥验证数据验证通过的密钥密文之前,所述方法还包括:
根据所述待获取数据,构造支付事务请求;
根据所述支付事务请求和支付赎回期限,生成支付赎回事务请求;
向区块链节点发送所述支付事务请求和所述支付赎回事务请求,以使所述区块链节点响应于所述支付事务请求,接收所述数据提供方提供的密钥密文,并根据所述密钥验证数据对所述密钥密文进行验证,以及根据验证结果,控制转移设定支付金额的激励元素至所述数据提供方账户,以及响应于所述支付赎回事务请求,根据在所述支付赎回期限内所述密钥密文的接收情况,控制向所述数据需求方账户退还所述设定支付金额的激励元素;
其中,所述支付赎回期限不大于所述质押赎回期限。
12.根据权利要求11所述的方法,其特征在于,所述发送对待获取数据的数据获取请求,包括:
从所述区块链中获取数据获取事务请求;所述数据获取事务请求包括所述待获取数据的描述信息和获取期限;
生成对所述待获取数据的数据获取请求,并向所述数据提供方发送所述数据获取请求;
其中,所述获取期限不小于所述质押赎回期限。
13.根据权利要求11所述的方法,其特征在于,在所述从区块链上获取所述质押事务请求中的所述待获取数据的密文之前,所述方法还包括:
获取所述数据提供方发送的质押赎回基础数据;所述质押赎回基础数据基于所述质押事务请求和所述质押赎回期限构造得到;
对所述质押赎回基础数据进行签名,得到需求方质押签名;
向所述数据提供方反馈所述需求方质押签名,以使所述数据提供方根据所述需求方质押签名构造所述质押赎回事务请求。
14.根据权利要求11所述的方法,其特征在于,所述根据所述支付事务请求和支付赎回期限,生成支付赎回事务请求,包括:
根据所述支付事务请求和支付赎回期限,生成支付赎回基础数据;
将所述支付赎回基础数据发送至所述数据提供方,并接收所述数据提供方对所述支付赎回基础数据签名得到的提供方支付签名;
根据所述支付赎回基础数据和所述提供方支付签名,构造所述支付赎回事务请求。
CN202111662720.0A 2021-12-31 2021-12-31 基于区块链的数据交互方法 Active CN114417377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111662720.0A CN114417377B (zh) 2021-12-31 2021-12-31 基于区块链的数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111662720.0A CN114417377B (zh) 2021-12-31 2021-12-31 基于区块链的数据交互方法

Publications (2)

Publication Number Publication Date
CN114417377A CN114417377A (zh) 2022-04-29
CN114417377B true CN114417377B (zh) 2023-03-24

Family

ID=81271391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111662720.0A Active CN114417377B (zh) 2021-12-31 2021-12-31 基于区块链的数据交互方法

Country Status (1)

Country Link
CN (1) CN114417377B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115936706B (zh) * 2023-03-10 2023-07-25 天聚地合(苏州)科技股份有限公司 一种基于区块链的数据要素辅助交易方法、装置和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017223158B2 (en) * 2016-02-23 2022-03-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
CN107292735A (zh) * 2017-05-27 2017-10-24 唐盛(北京)物联技术有限公司 一种基于区块链技术的抵押融资方法及系统
CN110570190A (zh) * 2019-08-27 2019-12-13 北京艾摩瑞策科技有限公司 区块链上的用户信用抵押借贷数字货币的方法及其装置
CN113507360B (zh) * 2021-06-26 2024-01-09 暨南大学 一种基于区块链的科技大数据的交换与共享的系统与方法

Also Published As

Publication number Publication date
CN114417377A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
KR101661930B1 (ko) 블록체인을 기반으로 하는 공인인증서 발급시스템
CN111538784B (zh) 一种基于区块链的数字资产交易方法、装置及存储介质
CN111027028A (zh) 基于智能合约的版权数据处理方法以及装置
US20070033102A1 (en) Securely providing advertising subsidized computer usage
US20140006247A1 (en) System, device and method for the interaction of security information
TW201002012A (en) Techniques for ensuring authentication and integrity of communications
CN111160998B (zh) 基于区块链的点评数据处理方法、装置及点评系统
CN103401844A (zh) 操作请求的处理方法及系统
CN114401268A (zh) 一种跨链数据共享的方法、系统、设备和可读存储介质
CN111461799B (zh) 数据处理方法、装置、计算机设备及介质
CN111241196A (zh) 广告频次控制方法及系统
CN114358766A (zh) 一种绿电凭证的交易的方法、设备和区块链系统
CN114417377B (zh) 基于区块链的数据交互方法
Gao et al. Secure, fair and instant data trading scheme based on bitcoin
CN112419021A (zh) 电子发票验证方法、系统、存储介质、计算机设备、终端
KR100468031B1 (ko) 자기앞 전자수표 발행 및 결제방법
CN108848096B (zh) 处理服务合约的方法、装置、设备及计算机可读存储介质
CN110795749B (zh) 数据处理方法、装置及存储介质
JP2001147984A (ja) 電子投票方式、及び方法
US9563881B2 (en) Fair payment protocol with semi-trusted third party
CN111461706B (zh) 基于区块链的用户信息绑定方法及装置
CN110942292B (zh) 一种用户信息处理方法、装置、电子设备以及存储介质
CN111160997A (zh) 基于区块链的广告监管方法、装置及广告投放系统
CN111062833A (zh) 一种合同数据的签名认证方法及相关装置
CN116561739B (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