基于区块链的数据交易系统及方法与流程

文档序号:17931000发布日期:2019-06-15 00:51阅读:488来源:国知局
基于区块链的数据交易系统及方法与流程

本发明一般地涉及区块链技术。更具体地,本发明涉及基于区块链的带隐私仲裁的数据交易系统。例如,本发明可以用于基于区块链的数据交易、智能合约以及交易纠纷的仲裁。



背景技术:

区块链的公开、透明、可验证等特点使其获得了信任机器的称号,而由于信任是交易的基础,因此区块链特别适合版权数据和隐私数据的交易。基于区块链的特点,版权/隐私数据一般经过加密处理后,上传到区块链上或其他的公开可访问的地方如公共数据库、web服务器、ftp服务器、分布式网络存储、ipfs等。交易的过程中主要传输数据密钥。如果直接通过智能合约将数据密钥在区块链上进行传输,则密钥信息存在泄露风险。如果数据密钥在链下传输,就存在争端的可能性,因此,需要仲裁。而传统的仲裁机构在区块链系统中不适宜,且中心化的仲裁也不符合区块链场景。



技术实现要素:

本发明的目的在于提出一种基于区块链的带隐私仲裁的数据交易系统,通过惩罚机制,能够促进交易的完成,减少交易过程中不诚信行为的发生。

在一个方面中,本发明的技术方案提供一种基于区块链的数据交易系统,包括卖方模块和买方模块,所述卖方模块和买方模块配置成执行以下操作:

所述卖方模块将数据切分成多个数据片段,并用不同的数据密钥分别对每个所述数据片段进行加密,至少将加密的数据片段、数据片段描述及其索引、数据片段价格存放到公共可获取的位置,并向销售合约提交押金;

所述买方模块选择拟购买的数据片段集合,向所述销售合约至少提交所购数据片段的索引、押金、货款和买方公钥;

所述卖方模块将所述数据密钥用买方公钥进行加密,并通过公共渠道提交给所述买方模块,同时将证据上传至所述区块链;

所述买方模块从所述卖方模块获得加密后的数据密钥,解密得到数据密钥明文,并用所述数据密钥明文对公共渠道获取的加密的数据进行解密;

当所述买方模块对此次交易无异议时,提交交易完成申请,否则提交仲裁申请;

当销售合约收到所述买方模块的所述交易完成申请,则将货款支付给所述卖方模块,执行双方的押金退还操作,当所述仲裁合约收到所述仲裁申请,则调用仲裁合约来启动仲裁,并依据仲裁的结果进行处理。

在一个实施例中,在所述仲裁合约中,仲裁委员会由奇数个仲裁员担任,并且每个仲裁员针对由所述仲裁合约随机选择的一个数据片段,至少对所述卖方模块提供的数据密钥是否由买方模块的公钥加密、数据密钥是否能正确解密出明文数据、解密出的明文数据是否与其描述相符进行评判以做出仲裁结果。

在一个实施例中,其中当所述评判的结论为肯定,则所述仲裁员投票支持所述卖方模块,否则投票支持所述买方模块,并且所述仲裁合约以占多数的投票为最终仲裁结果。

在一个实施例中,其中不同的仲裁员执行仲裁时所针对的数据片段不相同。

在一个实施例中,其中所述仲裁员由成功地生成有效区块的矿工自愿担任。

在一个实施例中,其中当所述仲裁结果为卖方模块胜,则将所述买方模块的货款支付给卖方模块,所述买方模块的押金作为仲裁费,将所述卖方模块的押金退还,当所述仲裁结果为所述买方模块胜,则将所述买方模块的货款和押金退还,将所述卖方模块的押金作为仲裁费。

在一个实施例中,其中所述仲裁费由全体仲裁员平分。

在一个实施例中,其中所述仲裁费由投票与最终仲裁结果一致的仲裁员平分。

在另一个方面中,本发明的技术方案提供一种在买方和卖方之间、基于区块链的数据交易方法,包括:

在卖方处将数据切分成多个数据片段,并用不同的数据密钥分别对每个所述数据片段进行加密,至少将加密的数据片段、数据片段描述及其索引、数据片段价格存放到公共可获取的位置,并向销售合约提交押金;

在买方处选择拟购买的数据片段集合,向所述销售合约至少提交所购数据片段的索引、押金、货款和买方公钥;

在所述卖方处将所述数据密钥用买方公钥进行加密,并通过公共渠道提交给所述买方,同时将证据上传至所述区块链;

在所述买方处从所述卖方获得加密后的数据密钥,解密得到数据密钥明文,并用所述数据密钥明文对公共渠道获取的加密的数据进行解密;

当所述买方对此次交易无异议时,提交交易完成申请,否则提交仲裁申请;

当销售合约收到所述买方的所述交易完成申请,则将货款支付给所述卖方,执行双方的押金退还操作,当所述仲裁合约收到所述仲裁申请,则调用仲裁合约来启动仲裁,并依据仲裁的结果进行处理。

在一个实施例中,其中在所述仲裁合约中,仲裁委员会由奇数个仲裁员担任,并且每个仲裁员针对由所述仲裁合约随机选择的一个数据片段,至少对所述卖方提供的数据密钥是否由买方的公钥加密、数据密钥是否能正确解密出明文数据、解密出的明文数据是否与其描述相符进行评判以做出仲裁结果。

本发明的技术方案不仅在保护隐私的条件下实现仲裁,还可减少交易纠纷,促进交易的正常进行。

首先,假设卖方欺诈,其或者不提交正确的数据(数据与描述不符),或者不提交正确的数据加密密钥,则买方会提请仲裁,结果将是卖方不仅得不到买方的货款,还会损失其支付的押金。因此,卖方欺诈的结果是只有损失,没有收获。本发明的技术方案还促使卖方尽可能地准确描述其销售的数据,以便仲裁员做出对其有利的投票,这对双方都是有利的。

其次,对于买方而言,由于其预付货款,才能拿到数据密钥,也才能得到其购买数据的明文,从这个角度,其无法实施欺诈。假如卖方诚信,交易正常进行,买方仍提请仲裁,将会导致买方损失押金。

再次,基于上述分析,双方或一方如对交易有不同意见时,为避免押金损失,双方会尽可能地通过链下协商处理,这既利于交易的顺利进行,也有利于双方拿回各自的押金,从而减少交易纠纷的发生。

最后,用于仲裁的数据片段,其数量极为有限,数据片段的选择也是随机的,仲裁员也不是固定选取或预先选取的。这些措施对于保护卖方数据隐私是有益的。卖方也可以尽可能地将数据分成小的数据片段,可在仲裁过程中更好地保护其数据。

附图说明

通过阅读仅作为示例提供并且参考附图进行的以下描述,将更好地理解本发明及其优点,其中:

图1是根据本发明实施例的基于区块链的数据交易系统的操作流程图;

图2是根据本发明实施例的销售合约的示意图;

图3是根据本发明实施例的仲裁合约的示意图;

图4是根据本发明实施例的merkle树的示意图;以及

图5是根据本发明实施例的merkle树的验证路径的示意图。

具体实施方式

本发明的技术方案在于一方面,在交易双方都诚信交易的情况下,交易能够顺利进行,买方会得到自己购买的数据,卖方会收到货款,而其他人不能获得卖方数据;另一方面,如出现交易纠纷,仲裁机制将使得不诚信的一方不仅没有收获,还会因押金被用作仲裁费而付出代价,而诚信的一方不会受到损失。从而,本发明通过惩罚机制,能够促进交易的完成,减少交易过程中不诚信行为的发生。

为了便于描述本发明的技术方案,采用如下的示例性表示方式:

di:表示用于交易的数据片段明文;

e(k,x):表示用密钥k对x进行加密,为简便标记,这里并不对加密算法做区分;

d(k,y):表示用密钥k对y进行解密,同样地,这里并不对解密算法做区分;

pk:表示买方的公钥(publickey);

sk:表示买方的私钥(secretkey);

{xi}:表示集合(x1,x2,…,xn)的某个子集,字母x可以替换成任意字母。

为了数据交易,卖方可以初始将拟销售的数据分成多个数据片段d1,…,dn,并对不同的数据片段分别用不同的密钥k1,…,kn进行加密,得到相应的密文c1,…,cn。这些用于直接加密数据的密钥k1,…,kn,称为数据密钥。卖方将加密后的数据、帮助购买者了解的关于这些数据的描述信息、数据的价格等存放在一个公共可获取的地方,可以是区块链上,也可以是链下。接着,卖方通过智能合约(即销售合约)提交自己的押金。

优选地是,上述数据片段的切分遵循如下原则:一是要求每一个数据片段能够让第三方仲裁员判别该段数据的真实性,确保在卖方无不诚实行为的前提下仲裁过程能够做出对卖方有利的裁决;二是需要每一个数据片段暴露给仲裁员的信息要尽可能的少,以减少仲裁过程中的信息泄露。

基于上述的设定,下面结合图1来描述本发明的数据交易操作。图1是根据本发明实施例的基于区块链的数据交易系统的操作流程图。如图1中所示,在步骤s101处,数据交易开始。在步骤s102处,买方向销售合约(如图2中所示)提交押金、货款、公钥等。在一个实施例中,买方可以浏览数据信息,确定拟购买的数据,并且通过销售合约提交押金和货款、自己的公钥pk、拟购买的数据索引,其中货款是指买方购买相关数据所需支付的金额。

在步骤s103处,可以判断卖方押金是否足够。如果卖方没有提交押金,或押金数量不足,则在步骤s104处,销售合约将自动退还买方押金和货款,交易将取消,即交易终止。当在步骤s103处确定卖方押金足够时,则卖方提交加密过的数据密钥c(即加密后的密文)。

在一个实施例中,当卖方收到合约通知以及买方的公钥pk,卖方使用买方公钥pk加密买方所购买数据对应的数据密钥{ki},得到{e(pk,ki)},并通过公共渠道,例如公开可访问的数据库、网站等传递给买方。在一个实施例中,卖方也可以将加密后的数据密钥直接上链。考虑到一方面数据密钥所占空间较大,另一方面,加密后的数据密钥在交易完成或仲裁完成以后就不再需要。因此,优选的方法是将加密后的数据密钥不上链,只要公开可访问即可。交易完成或仲裁完成以后可以删除加密后的数据密钥,以释放所占用的空间。

在一个实施例中,卖方将数据密钥发送的证据提交上链(即上传至区块链),以备仲裁使用。这里的证据可以是任何能够证明其上传了数据密钥密文的证据,比如将{e(pk,ki)}进行hash得到的merkle树根。在一个实施例中,以买方公钥加密后的数据密钥的哈希值所形成的merkle树根作为证据。merkle树根的形成过程如图4所示。在merkle树中,首先最下面一层的叶子节点里面的内容就是数据密钥密文的哈希值。接着,上面一层的中间节点,是通过将下一层两两相邻的节点的哈希值再哈希一次而形成的,以此类推。最后,直到形成一个merkle树根节点。

在一个实施例中,当买方取得卖方于上一步上传的买方所购买数据的数据密钥的密文{e(pk,ki)},用自己的私钥解密之得到数据密钥的明文{ki=d(e(pk,ki))},然后分别用数据密钥ki解密所购数据的密文ci,得到购买的明文数据集{di=d(ki,ci)}。

在步骤s106处,由买方判断是否交易正常。如果上述的操作一切顺利,买方对交易满意,则在步骤s112处,买方在规定时间内向销售合约提交交易完成申请。接着,在步骤s113处,销售合约将货款转账给卖方,双方押金退还,并且在步骤s114处,此次交易结束。

然而,当在步骤s106处,买方认为交易并不正常,即买方对交易不满意。该不满意的情形例如可以是没有收到数据密钥、数据密钥不对、数据与描述不符等。此时,在步骤s107处,买方可以在规定时间内向仲裁合约提请仲裁。

此后,在步骤s108处,卖方可以提交指定数据密钥明文、密文、merkle树验证路径(如图5中所示),以使得通过仲裁合约进行仲裁。

为此,在步骤s109处判断仲裁结果是否支持卖方。当仲裁员通过仲裁合约(如图3中所示)进行仲裁时,如仲裁结果为卖方胜,则在步骤s111处,卖方获得货款,卖方押金被退还,买方押金作为仲裁费用支付仲裁员,并且在步骤s114处,交易结束。相反,如仲裁结果为买方胜,则在步骤s110处,货款和买方押金退还买方,卖方押金将被没收,作为仲裁费用支付仲裁员,并且在步骤s114处,交易结束。

下面将对本发明的仲裁机制进行具体地描述。

1.仲裁委员会

仲裁委员会由k个仲裁员组成,k为大于1的奇数。在一个实施例中,仲裁员可以由获胜的矿工即生成正确区块的矿工自愿担任。仲裁员按顺序产生,每一个仲裁员都是在前一个仲裁员完成投票后产生。首先,假设买方购买了j个数据片段,假设某矿工接受仲裁申请,成为第i个仲裁员ai,则其按下述仲裁任务。

2.仲裁规则

每个仲裁员的仲裁步骤如下:

(1)仲裁员ai调用仲裁合约(如图3中所示);

(2)仲裁合约自动生成一个随机数rand,0<=rand<1,则选取的数据片段序号为j=[j*rand+1],这里[]指向下取整运算,仲裁合约将j发送给卖方和仲裁员ai。为提高随机数的质量,区块的高度、当前时间、所购数据片段的总量j等均可作为种子,以生成随机数rand。

(3)卖方向仲裁员ai提供第j个数据片段的数据密钥kj的明文、买方公钥pk、用买方公钥加密kj得到的密文和merkle树验证路径;其中,买方公钥pk也可由合约提供,数据密钥kj的密文也可从公开渠道获取。

(4)仲裁员ai进行仲裁,ai仲裁的目的是判断卖方在交易过程中,是否存在不当行为,其需要对如下进行判断:

i.卖方提供给买方的数据密钥密文与提供给自己的是否一致?这可通过将卖方提交给自己的数据密钥密文代入merkle树(如图4中所示)进行验证,如验证通过,则结论为“是”,否则结论为“否”。

ii.卖方提供给买方的数据密钥密文是否是用买方公钥加密的?这可通过将数据密钥明文用买方公钥进行加密后与卖方提供的数据密钥密文比对。如一致则结论为“是”,否则结论为“否”。

iii.卖方提供给买方的数据密钥是否正确?通过用数据密钥的明文来解密数据是否成功来判定。如成功则结论为“是”,否则结论为“否”。

iv.卖方对数据的描述是否诚信,即解密出的数据是否与描述一致?如一致则结论为“是”,否则结论为“否”。

(5)仅当上一步四个问题的结论都为“是”,仲裁员投票支持卖方,否则投票支持买方。如卖方在一段时间内未提供仲裁所需信息,则仲裁员投票支持买方。

3.仲裁结论的产生

在k个仲裁员中,每个仲裁员的投票要么支持卖方,要么支持买方,一定会有一种投票超过半数,超过半数的投票结论作为仲裁委员会的最终仲裁结论。

4.仲裁终止与提前终止

当k个仲裁员都完成投票,投票终止,不再有新的仲裁员产生。

优选地是,当支持某一方的投票数达到(k+1)/2时,即使仲裁员数量未达到k,投票结果也已确定,可提前终止投票,以占多数的投票结论作为最终仲裁结论,不再产生新的仲裁员。

5.仲裁费的分配

被仲裁判定失败的一方,其押金作为仲裁费归仲裁委员会,在仲裁员之间进行分配。在一个实施例中,分配方式可以是所有仲裁员参与平分。优选地,可以由那些投票与仲裁最终结论一致的仲裁员平分仲裁费。这样的好处是,促使仲裁员进行公正的仲裁,因为只有公正仲裁,其获得仲裁费的可能性更大。采用这种仲裁费的分配方式,在仲裁委员会很小的情况下,可能导致后面的仲裁员依据已有的投票结果,做出对自己最有利的投票而不作公正的投票。例如,当委员会只设有3个仲裁员的情况下,第二个仲裁员为了得到仲裁费,可能直接选择与第一个仲裁员一致的投票,在这种情况下,仲裁结果与仅有一个仲裁员的情况没有大的区别。因此,最优地是,仲裁员数量k最好大于3。

随后,仲裁费的分配通过仲裁合约自动完成,从而本次仲裁终止。

关于上述的仲裁申请,一般由买方发起。由于仲裁必然导致某一方的押金被扣除。为了双方利益,在双方对交易有不同意见时,买卖双方会尽可能地先私下协商,仅在协商不成时才提请仲裁。

在本发明中,仲裁人的选取、仲裁过程、仲裁结果的发布以及押金的处理等,都是可以通过仲裁合约(或称智能合约)自动执行。仲裁候选人可以自行决定是否参与仲裁,如根据仲裁费的多寡来做出判断。仲裁员数量可由买卖双方通过智能合约来商定,或由卖方预先设计的智能合约来决定。出于仲裁公平和公正性的考虑,仲裁员数量应为大于3的奇数。

在仲裁时,仲裁员需将数据密钥密文代入merkle树进行验证,图5给出了一条对于数据密钥密文哈希值的merkle树验证路径示意图,其验证路径为:he,hf,hgh,habcd,hiklmnopr。

关于押金数量的确定,押金的数量应以出现纠纷时足够支付仲裁费为前提。卖方可以为每一次交易提交押金。优选地,卖方可以预先提交一定数量的押金到其“押金池”。每一次交易中,仅从卖方押金池中提取与买方押金相同的数量作为该次交易的押金,当押金退还时直接退还到押金池。这样的好处是,一方面买卖双方押金相同,体现公平性,另一方面,减少卖方为每一次交易所做的操作,同时也减少区块链上数据存储的数量。当卖方决定不再销售时,其押金池中的押金在经过一段时间的锁定期后退还卖方。设置锁定期的目的是防止其还有未完结的交易。

仲裁过程中,如因为用作仲裁费的押金不足,导致愿意参与仲裁的人数不足,可能会导致仲裁较长时间内无法完成。此时,双方需追加押金,过期不追加押金者,仲裁合约自动判其失败。

交易完成申请和仲裁申请,都是由买方提交,如果买方在规定时间内没有提交申请,则智能合约自动执行交易完成步骤。优选地,扣除买方部分押金,作为支付卖方的滞纳金。这里的“规定时间”,可由销售合约指定或平台约定。在时间的设定方面,需预留买方的处理时间以及双方对交易有不同意见时的协商时间。

图2和图3中分别示出销售合约和仲裁合约(均为智能合约)以及它们与卖方和买方之间的交互步骤。在一个实施例中,该销售合约和仲裁合约可以是一个智能合约的两个不同部分或分支,也可以是两个独立的、可相互调用的智能合约。由于上文已经描述了关于销售合约和仲裁合约的具体操作,此处将不再赘述。

基于本申请的上述描述,本领域技术人员可以理解本发明的技术方案在一个实施例中总体上可以包括:(1)卖方(或卖方模块)准备数据并标价出售;(2)卖方向销售合约提交押金;(3)通过销售合约、仲裁合约实现与买方(或买方模块)的带隐私保护的交易和仲裁;(4)当卖方不再销售时,销售合约退还卖方剩余押金。

本发明通过销售合约解决链上交易的数据密钥传输及货款支付问题,通过仲裁合约解决交易争端的问题,可以广泛适用于公有链、私有链和联盟链。

虽然本发明所实施的方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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