一种基于状态通道的数据交易方法技术

技术编号:37120720 阅读:10 留言:0更新日期:2023-04-01 05:15
本发明专利技术提供一种基于状态通道的数据交易方法。该方法采用链上链下的协作的方式,使数据交易的大部分流程可以不依赖区块链进行,从而减少区块链的访问次数。其次,由于数据交易的部分流程可以不依赖区块链进行,数据交易双方可以直接进行P2P数据交易,从而减少交易的完成时间。另外,当数据交易过程中一方出现不合作的情况时,我们的方法中还提出了争议处理机制,使用户可以解决争议或者提取自己的资金,从而保证资金不会被扣押。最后,在我们的方法中数据交易流程中的信息不会每次都写入区块链中,从而更好的保护用户隐私。从而更好的保护用户隐私。从而更好的保护用户隐私。

【技术实现步骤摘要】
一种基于状态通道的数据交易方法


[0001]本专利技术属于数据交易领域。

技术介绍

[0002]近年来,来自各种数据源的数据爆炸式增长,包括社交网络、移动群智感知、物联网以及工业物联网等。利用现代机器学习技术,这些大数据应该被经济有效地收集、存储和分析,以提取有价值的知识和信息。在传统的数据交易方法中,数据购买者首先需要向数据所有者发送请求,买方也将数据支付给第三方。在第三方支付确认后,数据所有者再将数据直接发送给数据购买者。同样,在数据买家确认后,第三方将钱发送给数据所有者。但是,在经济利益的驱使下,数据所有者、数据购买者以及第三方都有可能做出不诚实的行为。例如,数据所有者可能与第三方一起作弊,并试图提供有限/无用甚至恶意的数据服务。数据交易的安全性成为了限制数据交易发展的一大因素,使得大量数据无法发挥其真实的价值。区块链技术的发展为确保数据交易的安全性提供了新的技术支持,区块链是一种能够实现数据一致存储、难以篡改、防止抵赖的记账技术,具有去中心化化、不可篡改、透明、安全等特性。基于区块链技术,使买方与卖方不需要在不需要依赖的第三方的情况下完成数据的交易。但是当前已有的基于区块链的数据交易方法中需要多次的进行区块链的存储与访问操作,造成了时延和操作成本的增加,无法在高效性上满足交易双方的需求。
[0003]目前,已有一些方法通过区块链技术来保证数据交易过程中的安全与公平。与本专利技术相近的基于区块链的数据交易方法可以分为以下主要步骤:1)数据请求者将数据押金转移到区块链中的合约地址作为押金;2)数据卖家查看区块链中请求者是否将押金存入区块链中;3)如果押金转入,卖家则将数据加密后发送到区块链;4)区块链将卖家的数据进行保存;5)数据买家访问区块链提取数据,并通知数据卖家;6)数据卖家将数据解密密钥和买家的通知发送到区块链系统;7)区块链检查通知的签名信息是否属于卖家,如果属实,则将资金转移到买家的地址;8)数据买家访问区块提取解密密钥来解密数据,如果无法解密可以请求第三方进行公正。经过以上步骤,就完成了一轮数据交易,数据交易过程中需要多次访问区块链进行信息的存储。
[0004]传统基于区块链的数据交易利用区块链不可篡改、去中心化等特征保证了数据交易过程中交易双方无法对已发生的过程进行抵赖。但是传统的区块链方法还存在以下缺点:
[0005](1)交易双方需要多次访问区块链系统,为区块链系统造成较大的交易处理量,当数据交易过于频繁,一些区块链系统的吞吐量则无法交易处理需求,造成较长的等待开销。
[0006](2)交易双方多次访问访问区块链会造成交易时间的增加,使得传统的基于区块链的解决方案无法适用于实时的数据交易,只能为静态数据交易提供保护。
[0007](3)传统的基于区块链的数据交易中,当发生另一方不合作的情况时会导致交易失败,造成押金的无法提取或者卖方数无效传输,对交易双方造成较大的影响。
[0008](4)传统基于区块链的数据交易的方案中,用户的每次操作都会被记录到区块链
中,这会造成用户的隐私泄露。

技术实现思路

[0009]针对传统基于区块链的数据交易中的各种问题,本专利技术提出一种基于状态通道的数据交易方法,该方法采用链上链下的协作的方式,使数据交易的大部分流程可以不依赖区块链进行,从而减少区块链的访问次数。其次,由于数据交易的部分流程可以不依赖区块链进行,数据交易双方可以直接进行P2P数据交易,从而减少交易的完成时间。另外,当数据交易过程中一方出现不合作的情况时,我们的方法中还提出了争议处理机制,使用户可以解决争议或者提取自己的资金,从而保证资金不会被扣押。最后,在我们的方法中数据交易流程中的信息不会每次都写入区块链中,从而更好的保护用户隐私。
[0010]1.本专利技术提出了一种基于状态通道的数据交易架构以及该架构下的数据交易方法。其特征在于数据交易双方在开启状态通道后可以采用不依赖区块链的方式进行链下数据交易,并且当发生不合作行为时可以确保资金的提取与安全,从而减少区块链的访问次数与交易完成时间,并确保数据交易的安全性与隐私性。
[0011]2.本专利技术提出了数据交易状态通道开启方法并定义了链上通道状态参数。其特征在于数据交易双方将协商好通道开启参数发送到智能合约,智能合约验证并写入区块后就完成了通道的开启,通道开启的参数将作为争议处理通道关闭的依据。此外本专利技术设置了4种通道状态以根据交易过程中交易者的请求进行转换。
[0012]3.本专利技术提出一种基于状态通道的数据交易架构下的数据交易流程。其特征在于在该流程中交易双方不需要访问区块链系统的访问,并且可以作为证明数据来进行争议的创建或反驳以及通道的单方关闭或反驳,从而确保数据交易的进行与安全性。
[0013]4.本专利技术提出了针对于数据交易不合作行为的争议创建、解决和反驳方法。其特征当交易过程中出现不合作行为时,另一方可以进行争议的创建,此时不合作的一方需在挑战期内进行争议的解决或反驳,否则通道将关闭并分配资金,从而促使双方遵守交易流程并保证双方的资金安全。
[0014]5.本专利技术提出合作关闭与单方关闭两种数据交易的通道关闭方法,其特征在于合作关闭用于双方合作状态下的通道关闭,资金可以立即分配。单方关闭用于一方单独的关闭通道行为,单方关闭需要经过一个挑战期后才能分配资金,并在挑战期内可以被反驳以防止通过历史数据关闭通道的行为。合作关闭与单方关闭保证了交易双方可以按照自己的选择进行通道的关闭。
附图说明
[0015]图1基于状态通道数据交易系统架构
[0016]图2通道开启流程示意图
[0017]图3数据交易流程图
[0018]图4行为与通道状态转换图
[0019]图5关闭行为与通道状态转换图
具体实施方式
[0020]1.系统架构与角色
[0021]基于状态通道的数据交易的架构如图1所示,其中的系统角色可以分为数据买方、数据卖方以及区块链系统。下面分别介绍各方在系统的作用。
[0022]1)数据卖方:数据卖方为数据的拥有者。在本方法中数据卖方可以通过区块链系统发布数据信息。
[0023]2)数据买方:数据买方为数据需求者。在本方法中数据买方通过区块链新系统查询数据信息,选择合适的数据卖方购买数据。
[0024]3)区块链系统:区块链系统负责对用户信息、数据信息数据交易状态通道信息进行管理。这些管理通过智能合约自动执行,并通过矿工打包后通过节点共识以链式进行存储。
[0025]2.用户注册于数据信息发布
[0026]数据买方于卖方在使用系统之前都要在系统进行注册,注册流程如下:
[0027](1)注册前,买卖双方首先在本地进行数据的初始化。首先,按照系统的选择的加密算法生成身份公钥(Identity public key,IPK)与身份私钥(Identity private key,IPR)。然后,通过hash函数对公钥进行哈希操作生成用户钱包地址(Wallet addres本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于状态通道的数据交易方法,其特征在于包括以下特征:1)数据卖方:数据卖方为数据的拥有者;数据卖方通过区块链系统发布数据信息;2)数据买方:数据买方为数据需求者;数据买方通过区块链新系统查询数据信息,选择合适的数据卖方购买数据;3)区块链系统:区块链系统负责对用户信息、数据信息数据交易状态通道信息进行管理;这些管理通过智能合约自动执行,并通过矿工打包后通过节点共识以链式进行存储;一、用户注册与数据信息发布数据买方于卖方在使用系统之前都要在系统进行注册,注册流程如下:(1)注册前,买卖双方首先在本地进行数据的初始化;首先,按照系统的选择的加密算法生成身份公钥(Identity public key,IPK)与身份私钥(Identity private key,IPR);然后,通过hash函数对公钥进行哈希操作生成用户钱包地址(Wallet address,WA),并使用系统私钥对钱包地址进行签名;之后,将<钱包地址、身份公钥、签名>发送到区块链系统进行注册;(2)区块链系统收到买卖双方的注册信息后,将钱包地址、签名信息进行验证,验证成功后将钱包地址WA和身份公钥IPK写入区块链中;写入成功后买卖双方就完成了系统注册;注册成功后,数据卖方可以在系统中发布自己的数据资源;数据卖方只需要向区块链系统发送数据及其数据信息,包括数据信息编号、数据主题、类型、售价、数据样例、交易押金、争议挑战期、数据hash;区块链系统收到上述信息后,将验证签名信息的正确性,然后将数据信息写入区块链系统中,并验证数据的hash与数据资源是否匹配,然后将数据存储在链下;数据买方通过区块链系统查询数据的相关信息进行筛选,选择自己需要进行交易的数据卖方进行以下的数据交易操作;二、数据交易通道开启在介绍通道开启流程之前首先介绍区块链中用于描述通道信息的参数,具体的参数与含义如表1所示;表1状态通道信息参数与含义表
数据买卖双方在数据交易开始前,首先需要在区块链中开启数据交易通道;具体介绍如下:(1)数据买方选择好开启通道的数据卖方后,在本地构造通道开启请求后发送给数据卖方;通道开启请求包括以下信息:ID、WAB、WAS、Deposit、Period、TPKB、买方信息签名;其中,TPKB是买方新生成的用于数据交易的临时公钥,通道ID为Hash(WAB、WAS、Deposit、Period)的值,买方信息签名为买方的身份私钥IPR对于通道的ID的签名;(2)数据卖方收到通道开启请求后判断通道开启请求中的参数是否正确,如果ID、WAB、WAS、Deposit、Period、TPKB、买方信息签名信息都通过验证,则可以发送通道请求结果;请求结果包括以下参数:TPKS、卖方信息签名;其中TPKS是卖方新生成的用于数据交易的临时公钥,卖方信息签名为卖方的身份私钥IPR对于通道的ID的签名;(3)数据买方收到结果后将双方的信息整合并发送到区块链系统中,其中开启数据包括:<ID、WAB、WAS、Deposit、Period、TPKB、TPKS、买方信息签名、卖方信息签名>(4)区块链系统验证通道开启信息是否正确,包括ID是否等于Hash(WAB、WAS、Deposit、Period)以及卖方和买方的信息签名是否正确;如果正确,智能合约会从双方的钱包地址中扣除与押金参数等额的资金,并将相关参数写入区块链中,其中ID、WAB、WAS、Deposit、Period、TPKB、TPKS设置为与开启通道数据对应的值、STATE设置为开启O、BalB和BalS设置为押金的大小,Time与Dispute设置为null;当共识成功,双方的数据交易通道就成功开启了;(5)数据卖方根据通道ID确认通道的开通状态;三、链下数据交易流程通道开启成功后,数据交易双方就可以在进行不依赖区块链的数据交易,数据交易分为数据请求阶段和交易确认阶段;
1)、在交易阶段,数据买家首先发送数据请求,数据请求需要包含以下信息:(1)通道ID:双方已开启的通道的ID(2)请求轮次编号:N,当前是第N轮数据请求,随请求的轮次递增;(3)请求消息编号:1,表示本消息是当前轮次中的第1次消息传输;(4)数据:数据相关信息,这些信息可以在数据信息查询中查询相关信息,(5)数据价格:本轮请求的数据价格;(6)买方余额:当前买方的余额;(7)卖方余额:当前卖方的余额;(8)消息hash:当前消息的hash,由Hash(通道ID||请求轮次编号||请求消息编号||请求类型||请求数据编号||数据大小||数据hash||数据价格||买方余额||卖方余额)产生;(9)消息签名:由通道开启时的临时买方的临时私钥对消息Hash生成消息签名;2)、当数据卖家收到数据请求后,首先会对消息进行验证,验证过程中会判断一下信息是否满足:(1)消息hash是否正确;(2)消息签名是否正确;(3)通道ID是否正确;(4)当前双方余额是否正确;当通过验证后,卖方判断当前是否可以传输数据,若当前不符合传输条件则返回拒绝信息,拒绝信息包含如下信息:(1)通道ID:双方已开启的通道的ID;(2)请求轮次编号:N,当前是第N轮数据请求,随请求的轮次递增;(3)请求消息编号:2,表示本消息是当前轮次中的第2次消息传输;(4)回复信息:Refuse,表示拒绝;(5)买方余额:当前买方的余额;(6)卖方余额:当前卖方的余额;(7)消息hash:当前消息的hash,由Hash(通道ID||请求轮次编号||请求消息编号||回复信息||买方余额||卖方余额)产生;(8)消息签名:由通道开启时卖方的临时私钥对消息Hash生成消息签名;若当前可以传输数据,则数据卖方根据数据买方的请求将数据发送到数据买方,在数据发送时需同样携带以下信息:(1)通道ID:双方已开启的通道的ID;(2)请求轮次编号:N,当前是第N轮数据请求,随请求的轮次递增;(3)请求消息编号:2,表示本消息是当前轮次中的第2次消息传输;(4)数据:数据的提取地址与密钥,通过该地址买方可以进行数据的提取;密钥由设备注册时的身份私钥生成,通过该密钥,买方可以在一定的时间内查看并下载数据;(5)数据价格:本轮请求的数据价格;(6)买方余额:当前买方的余额;(7)卖方余额:当前卖方的余额;(8)消息hash:当前消息的hash,由Hash(通道ID||请求轮次编号||请求消息编号||买
方余额||卖方余额||数据Hash)产生;(9)消息签名:由通道开启时卖方的临时私钥对消息Hash生成消息签名;3)、当数据买家收到返回消息,首先会对消息判断,若果消息返回的当前拒绝传输,买家可以查看拒绝原因,重新进行本轮的数据传输;如果返回的是数据回复,则进行消息验证,验证过程中会判断以下信息是否满足:(1)消息hash是否正确;(2)消息签名是否正确;(3)通道ID是否正确;(4)当前双方余额是否正确;(5)数据hash值与请求的hash值是否与请求的hash值一致;如果通过验证,数据买家需要返回以下参数:(1)通道ID:双方已开启的通道的ID;(2)请求轮次编号:N,当前是第N轮数据请求,随请求的轮次递增;(3)请求消息编号:3,表示本消息是当前轮次中的第3次消息传输;(4)买方余额:当前买方的余额,此时需要进行余额更新,旧余额

数据价格;(5)卖方余额:当前卖方的余额,此时需要进行余额更新,旧余额+数据价格;(6)消息hash:当前消息的hash,由Hash(通道ID||请求轮次编号||请求消息编号||买方余额||卖方余额)产生;(7)消息签名:由通道开启时卖方的临时私钥对消息Hash生成消息签名;4)、当数据卖家收到确认消息后,首先进行消息验证,验证过程中会判断以下信息是否满足:(1)消息hash是否正确;(2)消息签名是否正确;(3)通道ID是否正确;(4)当前双方余额是否正确;如果通过验证,数据卖家家需要返回以下参数:(1)通道ID:双方已开启的通道的ID;(2)请求轮次编号:N,当前是第N轮数据请求,随请求的轮次递增;(3)请求消息编号:4,表示本消息是当前轮次中的第4次消息传输;(4)买方余额:更新后买方的余额;(5)卖方余额:更新后卖...

【专利技术属性】
技术研发人员:霍如陈伟
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1