基于区块链的公平数据交易方法与流程

文档序号:11251682阅读:1444来源:国知局
基于区块链的公平数据交易方法与流程

本发明涉及基于区块链的公平数据交易方法,属于区块链技术领域。



背景技术:

得益于信息通讯技术的进步,数据以前所未有的速度产生,大量的数据经过深入分析和挖掘,应用于金融、保险、医疗保健、电子商务、政务管理等领域,大数据的巨大价值得到了普遍的共识。然而,数据的价值只有在充分共享的前提下才能实现。目前大数据存在“孤岛困境”,政企数据不同享,大数据平台之间彼此孤立,用户因为隐私顾虑不愿共享数据。目前政府在大力推行数据共享,以解决数据孤岛问题。

目前的数据交易方案一般基于中心式的大数据交易平台,比如贵阳大数据交易中心、上海大数据交易中心,以及聚合数据、数据堂、数据宝等平台。在这种模式下,用户需通过可信的第三方实现数据交易,交易流程复杂,成本过高,交易公平性难以保证,易导致交易纠纷。

区块链是比特币等密码货币的底层技术,它通过共识机制实现了去中心、不可篡改的交易记录,并可以进一步通过脚本或智能合约实现复杂的、强制执行的交易。采用基于区块链的密码货币作为支付手段,可以实现去中心化、强制执行的交易过程。这种技术在金融、证券、保险、医疗、it等领域受到了广泛的重视和初步的应用。

现有技术中基于比特币区块链的微支付,如微支付通道、彩票微支付等技术,可以在一定程度上解决交易公平的问题,但是它们均未用于数据交易,而且它们存在效率和公平性方面的问题。现有技术中基于区块链和零知识证明的隐私信息公平交易方案,仅适用于私钥信息,并不能解决大量数据的公平交易,而且计算复杂度非常高。另外,已有的(非区块链)公平交易方案均需要可信第三方保证交易公平性(在线或者离线方式),不可避免地造成流程复杂、信息容易泄露。

设计一种流程简单、成本低、公平的数据交易方法是大数据共享的迫切需求,具有重要的意义和巨大的应用价值。



技术实现要素:

针对现有技术的不足,本发明提供了基于区块链的公平数据交易方法;本发明基于去中心化的区块链系统,采用基于区块链的微支付技术,实现了无中心、流程简单、低成本、公平的数据交易。

通过本发明所提出的技术,数据的交易通过区块链系统执行,无需第三方进行监督,从而大大降低了成本,并极大地提高了效率。在区块链基础上,本发明采用了微支付机制,每次交易少量数据,并对数据进行验证,避免了数据购买者一次性购买大量不合要求的数据;另一方面,数据出售者每次交易均可获得相应收益,避免了在未获收益的情况下泄露所有数据,因而实现了公平的数据交易。本发明的微支付机制具有计算效率高、存储代价小、安全性高、可扩展性高的特点。

本发明的技术方案为:

基于区块链的公平数据交易方法,包括步骤如下:

a、数据出售者将每条数据分别用不同的密钥进行加密;数据购买者将数据购买费用托管在区块链上;

b、数据购买者用哈希链微支付每次使用哈希值交换一个或多个密钥,解密相应的数据并进行验证,重复多次交换直到交易结束;

c、数据出售者用最新得到的哈希值解锁区块链上托管的数据购买费用,获取应得的数据购买费用,并强制性将余额返回给数据购买者。

本发明将基于区块链的加密货币与哈希链微支付技术结合,实现数据的公平交易。并且本发明的交易方法可避免一次性大量购买的数据不符合需求的问题。

根据本发明优选的,所述步骤a,包括步骤如下:

(1)准备数据:设定数据出售者(dataseller)s待出售n条数据,包括m1,m2…mi…mn;数据出售者s产生主密钥(masterkey)mk;数据出售者s为每条数据产生子密钥,数据m1,m2…mi…mn对应的子密钥分别为k1,k2…ki…kn;数据出售者s使用子密钥k1,k2…ki…kn对数据m1,m2…mi…mn进行加密,得到密文c1,c2…ci…cn;

(2)公布加密数据:数据出售者s将密文c1,c2…ci…cn公布给数据购买者(datapurchaser)p;

(3)资金托管:数据出售者s利用公钥密码算法生成公钥pks和私钥sks,数据购买者p利用所述公钥密码算法生成公钥pkp和私钥skp,并产生长度为n的哈希链hn→hn-1...→h1→h0,hi=h(hi+1),h是安全单向哈希函数;

数据购买者p将所有数据的支付费用(假设该费用p与s已事前协商好)以及h0交付给区块链,并用自己的私钥skp签名,代表资金已由区块链进行托管;费用支付条件为:如果每条数据的费用相同,数据购买者p提供哈希链上的某个哈希值hi,区块链将i/n的费用发送到数据出售者s的公钥pks,剩下的(1-i/n)的费用返还到数据购买者p的公钥pkp;否则,由数据购买者p、数据出售者双方进行协商,确定每条数据的费用后,数据购买者p每次支付相应地费用。比如,假定当前数据出售者s得到的最新哈希值为hi,下一条数据价值为5个单位,则数据购买者p将hi+5发送给数据出售者。

此外,数据购买者(或与数据出售者共同协商)可设定交易超时条件,当交易超过给定截止时间仍未结束,数据购买者可以取回所有支付费用。

根据本发明优选的,所述步骤b,包括步骤如下:

(4)数据交换:数据出售者s将一条数据或若干条数据的子密钥发送给数据购买者p,数据购买者p通过所述子密钥解密获取该条数据或若干条数据,并确认该条数据或若干条数据是否符合要求,如果符合,将该条数据或若干条数据在哈希链上对应的一个哈希值或若干个哈希值发送给数据出售者s,按照该方式进行完所有的数据交换。

数据交换的具体过程如下:

数据出售者s将加密数据m1的子密钥k1发送给数据购买者p,数据购买者p用子密钥k1解密密文c1得到数据m1,确认数据m1是否符合要求,判断符合后,将哈希值h1发送给数据出售者s;数据出售者s验证哈希值h1,验证正确后,按照该数据交换方式逐条进行数据交换直到其中一方停止发送消息为止。

交易双方损失最低仅为一条数据或其对应的费用,并且该交易过程发生在区块链下,不会记录在区块链上,因此具有较高的可扩展性。

根据本发明优选的,所述步骤c,包括步骤如下:

(5)交易结算:数据交换结束后,数据出售者s通过获取的哈希值获取相应的费用;或者,当交易超过给定截止时间后,数据购买者取回所有的数据购买费用。数据发送的顺序可以任意,比如由数据购买者指定、数据出售者指定、或者双方协商。

交易结算的具体过程如下:

数据交换结束后,假定数据出售者s最后收到的哈希值为hi,数据出售者s使用哈希值hi向区块链认领数据费用,区块链验证hi=hi(h0)后,hi(h0)=h(h(…h(h0)…)),即对h0进行重复i次哈希计算,区块链将所有数据的支付费用的i/n支付给数据出售者s,并将所有数据的支付费用的(1-i/n)返还给数据购买者p。由于哈希函数具有单向性,s不能通过hi推断出hi+1,从而不能从区块链中获取更多的费用。

根据本发明优选的,所述步骤(1),ki=h(mk,ri),h为安全单向哈希函数,安全单向哈希函数包括sha256、sha3;ri为随机数,为保证安全性,ki的长度为不小于128比特;主密钥mk的长度为不小于80比特。

根据本发明优选的,所述步骤(1),数据出售者s使用加密算法(如aes加密算法)用子密钥k1,k2…ki…kn对数据m1,m2…mi…mn分别进行加密,得到密文c1,c2…ci…cn。

以上资金托管、交易结算可以采用基于区块链的机制实现,如脚本或者智能合约。区块链脚本系统(如比特币)和智能合约系统均支持实现本发明所需的资金托管(根据条件锁定被托管资金)、交易结算(根据条件解锁资金支付费用并返还余额)等功能,自动强制进行结算。

根据本发明优选的,所述步骤(2),数据出售者s将密文c1,c2…ci…cn公布给数据购买者p的方式包括:将密文c1,c2…ci…cn公布在允许数据购买者p访问的公有云、私有云或区块链上,并将数据公布方式告知p;或者,直接将密文c1,c2…ci…cn发送给数据购买者p。

本发明的有益效果为:

1、本发明在区块链上设计了哈希链微支付机制,实现了逐条数据交换,交易方可以随时停止交易,保证了交易的公平性;

2、本发明每条数据交换发生于链下,数据交换过程无需区块链记录,链下数据交换完成后只需进行一次交易结算,处理、存储代价小,因而效率高、可扩展性好。

3、本发明中每条数据用不同的子密钥进行加密,数据交换通过链下交换哈希值和加密密钥进行,数据交易过程中数据的隐私得到了很好地保护,不会泄露给第三方;

4、本发明通过区块链实现去中心化,无需第三方交易平台,交易过程简单,交易成本低。

附图说明

图1为本发明基于区块链的公平数据交易方法的流程示意图;

图2为正常交易1000条数据的过程示意图;

图3为s先停止提供密钥交易停止的示意图;

图4为p先停止发送哈希值交易停止的示意图;

图5为交易双方协商数据交换的过程示意图;

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

基于区块链的公平数据交易方法,如图1所示,包括步骤如下:

(1)准备数据:设定数据出售者(dataseller)s待出售1000条数据,包括m1、m2…mi…m1000;双方协商,每条数据价值0.10元,1000条数据具体如表1所示:

表1

数据出售者s产生主密钥(masterkey)mk=ead57e206cef37881a434be6096347490d144345a05b8f93849ba1a5747a677;数据出售者s为每条数据产生子密钥,数据m1,m2…mi…m1000对应的子密钥分别为k1,k2…ki…k1000;ki=sha256(mk,ri)。ri为随机数,可采用ri=sha256(i),i=1,2,…,1000;

数据出售者产生一对公私钥(pks,sks),pks用于接收费用。

数据出售者用ki对mi(i=1,2,…,1000)用aes加密算法进行加密,得到密文ci=aes(ki,mi),

(2)公布加密数据:数据出售者s将密文c1,c2…ci…c1000公布给数据购买者(datapurchaser)p;

(3)数据购买者产生一个随机字符串:

47fb563cc8f86dc37c86d08bc542968f7986acd81c97bf76db7ad744407fe117(16进制的256-bit随机数),用sha256算法对其进行1000次哈希,得到如下哈希值:

h1000=47fb563cc8f86dc37c86d08bc542968f7986acd81c97bf76db7ad744407fe117

h999=5f4b10be666a83a866d17396a29eb2aa2d9ef4313279a3fafad60204cd3e689c

h998=c8275d6f30bcaa36021020e9d62b749e58a5285e094b76e9088f1b006afee70d

h997=6b1d03b64fe621b1a8eff5a28e0a554db6d82a329c880f23b712c18fe85ae43c

………………

h0=ddccd2e9c36fab97df6042bc3c3465c46d3c81ff83f9fdd96f56dc5b7cfa1f55。

hi=sha2561000-i(47fb563cc8f86dc37c86d08bc542968f7986acd81c97bf76db7ad744407fe117),即对字符串进行1000-i次重复哈希。

数据购买者的资金存储在一对公私钥(pkp,skp)对应的账户中;购买者产生一个微支付承诺交易(采用区块链脚本或者智能合约方式),锁定支付总价(即1000*0.10=100元),用自己的私钥skp进行签名,记录在区块链上。该承诺交易包含pks和h0,并要求一个哈希链上的哈希值hi及数据出售者的签名(用sks签名)才能解锁。同时数据购买者设定,当交易超过3天还未结束、预付资金还未结算的条件下,数据购买者可取回所有支付总价100元。

(4)链下数据交换:数据购买者p向数据出售者s每次依次发送一个哈希值hi(i=1,2,…,1000);数据出售者则依次向数据购买者发送加密密钥ki(i=1,2,…,1000)。正常交易1000条数据的过程如图2所示;交易双方最大的损失为一条数据或若干条数据或者一条数据或若干条数据的费用,并且该交换过程发生在区块链下,不会记录在区块链上,因此具有较高的可扩展性。现行的比特币结算方法需对每条数据的交易进行验证和记录,因此处理和存储代价较高,交易成本也非常高(目前每个交易成本约为1美元),其他如信用卡、paypal交易方式也存在1%以上的交易成本。对于n条数据的交易,本发明只需要结算一次,而其他方案需要n次结算。

双方也可能提前停止交换,如图3所示:s先停止提供密钥k300,因此p停止继续发送哈希值(下一个哈希值h301),这种情况下p损失了一次微支付;

如图4所示:p先停止发送哈希值h301,因此s也停止发送密钥k301,这种情况下双方无损失。

双方可以协商数据交换的顺序(即ki发送的顺序),顺序可以由p指定,或者由双方协商,如下图所示,ji(i=1,2,…,1000)是1,2,…,1000的一个排列,交换过程如如图5所示:

(5)交易结算:数据交换结束后,数据出售者s最后收到的哈希值为h1000,数据出售者s使用哈希值h1000向区块链认领数据费用,区块链验证h1000=sha2561000(h0)后,区块链将所有数据的支付费用100元全部支付给数据出售者s。

如果数据出售者s最后收到的哈希值为h300,数据出售者s使用哈希值h300向区块链认领数据费用,区块链验证h300=sha256300(h0)后,区块链将数据的支付费用100元的300/1000,即30元支付给数据出售者s,而将余额70元返还给p。

如果数据出售在在3天内未能确认收入,则数据购买者将取回所有预付的数据购买费用。

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