本发明涉及一种多重签名方法,特别是涉及区块链技术领域的一种基于区块链的数据交易平台中多重签名交易信息处理方法。
背景技术:
随着云计算和物联网的迅速发展,被记录和保存的数据越来越多,现已进入大数据时代。数据的交易是市场和现实的必然需求。为发挥数据的最大价值,各地均建立起数据交易中心,但由于数据具有其特殊性,即易复制和无明确的所有权约束等属性,数据安全和权益均很难保障,故企业和个人不愿将数据拿出来共享交易。
为更好的保证数据安全和企业及个人的权益,现有人提出将区块链技术和密码学运用到数据交易中,建立基于区块链的数据交易平台,数据交易平台只做链接功能,无法查看和留存交易的数据,在保证数据安全的同时保障个人和企业的权益。区块链技术起源于2008年中本聪发表的《比特币:一种点对点的电子现金系统》,文中提出了一种基于点对点(p2p)的电子现金系统,该系统基于密码学原理,使进行交易的双方在达成一致意见的情况下直接进行支付,创造了一种摆脱传统通过第三方中介进行支付保证交易安全的模式。
区块链是比特币的底层技术支撑,区块链技术关键创新是通过具有时间戳的哈希链和工作量证明机制解决双重支付和拜占庭将军问题,即保证同一笔比特币不会同时出现在两个地址,并且在信道可靠的基础上,所有节点都可以让其他节点接受到自己的真实交易,在技术上保证交易的安全可信任。
传统基于区块链的比特币交易流程一般如下:买家用户直接转账给商家的地址,支付是单向不可逆的,不支持“扣款索偿”,所谓“扣款索偿”是指当买家用户要求其信用卡公司撤销一笔已经得到批准的交易时,就会发生扣款索偿。这个时候发生纠纷,需要考验双方的品质。
为更好的保证交易双方的权益,多重签名交易应运而生。多重签名交易的地址,可以有三个相关联的私钥,交易者需要其中的两个才能完成一笔转账。实际上,你也可以设置成1/3,5/5,6/11,但是最常见的是2/3的组合。
多重签名技术所能带来的好处:(1)保护消费者权益。传统的比特交易发生之后,商家马上能够获得这笔钱,在加入多重签名技术后,商家需要买家用户的明确同意后才真正的获取到这笔比特币。(2)安全性。因为multisig技术的保证,买家用户和卖家用户都可以透明的看到交易资金的安全存储,数据交易平台提供商无法挪用交易资金。(3)操作简易。通过技术的封装,使用者感觉不到multisig的复杂。
然而现有的多重签名交易不一定保证安全,当前多数情况下多重签名钱包作为一个客户端javascript网页应用出现,如果攻击者控制了交易平台的服务器,他们就有能力向用户输送错误的网页应用,此类客户端浏览器多重签名钱包可以被认为,完全是对加密经济安全性的威胁。浏览器javascript多重签名钱包的提供者,最开始是希望建立一个不受单点故障影响的协议,但是他们在协议中扮演了客户端和服务器两个角色。这样提供的多重签名并没有提供一些人想象它的安全保证。
技术实现要素:
为了克服上述现有技术的不足,本发明提供了一种基于区块链的数据交易平台中多重签名交易信息处理方法,旨在提供不受单方影响的交易方法,保证买卖双方的权益的同时使得数据交易平台也无法挪用交易资金,且尽量避免外部对经济安全性的威胁。
本发明所采用的技术方案包括:
本发明方法是针对数据交易平台、买家用户和卖家用户三者在以数据为对象的交易过程中的信息处理,包括以下方面:
a、生成密钥:
买家用户和卖家用户的每个用户在自身客户端生成用户交易密钥对(pkc,skc),其中pkc表示用户交易公钥,skc表示用户交易私钥,用户将密钥对中的公钥pkc发送给数据交易平台,并且pkc=skc·p,p表示循环加群的生成元;且对于买卖家用户的用户交易密钥对(pkc,skc),买家用户的交易密钥对表示为
任何卖家用户和买家用户之间发生的每次交易过程中,数据交易平台为每次交易过程生成单次交易密钥对(pkt,skt),其中pkt表示单次交易公钥,skt表示单次交易私钥,并将单次交易公钥公开;单次交易密钥对(pkt,skt)不分卖家用户和买家用户,仅由数据交易平台为每次交易生成,也可表示为
本发明在字母表示的上标中,u表示登陆密钥,c表示交易密钥,t表示单次交易密钥。本发明的字母表示中下标的a表示买家用户,b表示卖家用户的序数,c表示数据交易平台。
用户生成和存储交易公私钥的客户端是由数据交易平台合作方提供,并非数据交易平台提供,数据交易平台无法获取用户的私钥,确保用户信息安全。
b、待交易数据发布:卖家用户通过数据交易平台在区块链上发布待交易数据的数据信息,供买家用户进行购买;
c、每次交易过程中,采用以下方式实现交易信息的处理:
1)买家用户向数据交易平台发送购买某数据的申请后,数据交易平台为此次交易过程生成单次交易密钥(pkt,skt),同时根据买家用户和卖家用户各自的用户交易公钥和数据交易平台的单次交易公钥生成中间地址a,数据交易平台、买家用户和卖家用户三者利用中间地址a后续进行多重签名;
2)买家用户进行付款操作,将自身地址的交易资金通过区块链技术转移到中间地址a中,卖家用户在区块链上查询到买家用户的交易资金已转移到中间地址a的交易信息后,从数据交易平台获取买家用户的用户交易公钥
3)买家用户收到加密后的待交易数据
4.1)若买家用户验证数据正确后,确认交易并发送确认交易信息到数据交易平台,则买家用户和卖家用户用各自的用户交易私钥对交易成功的交易信息
4.2)若买家用户在规定时间内未对此次交易进行确认,则数据交易平台利用自身的单次交易私钥和卖家用户的用户交易私钥对交易成功的交易信息
4.3)若买家用户对交易提出异议,则根据卖家用户的处理情况或者数据交易平台的判定结果来决定将中间地址a中资金转移至买家用户或卖家用户的地址,具体分为:
4.3.1)若买家用户申请退款操作,买家用户生成中间地址a的交易资金退回到买家用户地址的退款信息
4.3.2)若买家用户申请退款操作,买家用户生成中间地址a的交易资金退回到买家用户地址的退款信息
所述的交易资金指的是数字货币,例如比特币。
本发明的数据交易平台在生成密钥和在区块链中处理交易信息都是通过服务器及其处理器进行操作。
所述步骤b中卖家用户通过数据交易平台在区块链上发布待交易数据具体是:卖家用户选择待交易数据
所述步骤1)中的中间地址a是由数据交易平台根据买家用户的用户交易公钥
其中,h为安全哈希函数。
所述步骤3)中买家用户收到加密后的待交易数据
买家用户在收到加密后的待交易数据
所述步骤4.1)中具体包括:
4.1.1)若买家用户验证数据正确后,买家用户生成中间地址a的交易资金转入到卖家用户地址的交易信息
其中,“·||·”表示数据的串联,
4.1.2)卖家用户在收到包含有
计算交易信息
确认以下等式是否全部成立,若等式全部成立则说明签名真实;
其中,p表示公钥和私钥之间的循环加群的生成元,e为双线性映射,满足双线性、非退化性和可计算性;
4.1.3)在确认买家用户的签名真实后,卖家用户对此次交易进行评价生成卖家用户的评价信息
其中,p表示公钥和私钥之间的循环加群的生成元,
4.1.4)数据交易平台在收到买家用户和卖家用户发送过来的数据包后,采用以下方式对提取其中的信息验证签名真实性:
计算交易信息
验证买家用户签名,若下列等式全部成立,则说明买家签名真实:
验证卖家用户签名,若下列等式全部成立,则说明卖家签名真实:
双方签名均验证真实后,将买卖家用户的评价信息
其中,nc为此次交易的验证公钥;
4.1.5)区块链上具有写入权限的节点采用以下等式对数据交易平台发送的数据包验证签名真实性,验证真实后将交易信息写入到区块链中,使得中间地址a中资金转移到卖家用户地址:
其中,e为双线性映射。
所述步骤4.3.2)中具体分为:
4.3.2.1)若数据交易平台根据交易情况判定退款成功,则由数据交易平台和买家用户对退款信息
4.3.2.2)若数据交易平台根据交易情况判定退款不成功,则等同于认为交易成功,则由数据交易平台和卖家用户对交易信息
所述步骤4.2)中具体包括:
4.2.1)买家用户在规定时间内未对此次交易进行确认后,数据交易平台对此次交易进行评价,生成评价信息为
其中,
4.2.2)卖家用户在收到包含有
计算交易信息
确认以下等式是否全部成立,若等式全部成立则签名真实;
4.2.3)在确认数据交易平台的签名真实后,卖家用户利用自身的用户交易私钥
其中,
4.2.4)数据交易平台在收到卖家用户发送过来的数据包后,采用下等式对提取其中的信息验证签名真实性:
计算交易信息
验证卖家用户签名,若下列等式全部成立,则说明签名真实:
卖家签名均验证真实后,将数据交易平台和卖家的评价信息
其中,nc为此次交易的验证公钥;
4.2.5)区块链上具有写入权限的节点采用以下等式对数据交易平台发送的数据包验证签名真实性,验证真实后将交易信息写入到区块链中,使得中间地址a中资金转移到卖家用户地址:
其中,e为双线性映射。
所述步骤4.3.1)中具体包括:
4.3.1.1)买家用户进行退款操作后,对此次交易进行评价生成买家用户的评价信息为
其中,“·||·”表示数据的串联,
4.3.1.2)卖家用户在收到包含有
计算退款信息
确认以下等式是否全部成立,若等式全部成立则说明签名真实;
其中,p表示公钥和私钥之间的循环加群的生成元,e为双线性映射,满足双线性、非退化性和可计算性;
4.3.1.3)在确认买家用户的签名真实后,卖家用户对此次交易进行评价生成卖家用户的评价信息
其中,p表示公钥和私钥之间的循环加群的生成元,
4.3.1.4)数据交易平台在收到买家用户和卖家用户发送过来的数据包后,采用下等式对提取其中的信息验证签名真实性:
计算退款信息
验证买家用户签名,若下列等式全部成立,则说明买家签名真实:
验证卖家用户签名,若下列等式全部成立,则说明卖家签名真实:
双方签名均验证真实后,将买卖家用户的评价信息
其中,nc为此次交易的验证公钥;
4.3.1.5)区块链上具有写入权限的节点采用以下等式对数据交易平台发送的信息验证签名真实性,验证真实后将交易信息写入到区块链中,使得中间地址a中资金转移到卖家用户地址:
其中,e为双线性映射。
所述步骤4.3.2)中若最终中间地址a中资金转移至买家用户具体是:
4.3.2.a.1)数据交易平台根据交易情况判定退款成功,数据交易平台对此次交易进行评价生成评价信息为
其中,
4.3.2.a.2)买家用户在收到包含有
计算退款信息
确认以下等式是否全部成立,若等式全部成立则签名正确;
4.3.2.a.3)在确认数据交易平台的签名真实后,买家用户利用自身的用户交易私钥
其中,
4.3.2.a.4)数据交易平台在收到买家用户发送过来的数据包后,采用下等式对提取其中的信息验证签名真实性:
计算退款信息
验证买家用户签名,若下列等式全部成立,则说明买家签名真实:
买家签名验证真实后,将数据交易平台和买家的评价信息
其中,nc为此次交易的验证公钥;
4.3.2.a.5)区块链上具有写入权限的节点采用以下等式对数据交易平台发送的数据包验证签名真实性,验证真实后将交易信息写入到区块链中,使得中间地址a中资金转移到买家用户地址:
其中,e为双线性映射。
所述步骤4.3.2)中若最终中间地址a中资金转移至卖家用户具体是:
4.3.2.b.1)数据交易平台根据交易情况判定退款不成功,数据交易平台对此次交易进行评价生成评价信息为
其中,
4.3.2.b.2)卖家用户在收到包含有
计算交易信息
确认以下等式是否全部成立,若等式全部成立则签名正确;
4.3.2.b.3)在确认数据交易平台的签名真实后,卖家用户利用自身的用户交易私钥
其中,
4.3.2.b.4)数据交易平台在收到卖家用户发送过来的数据包后,采用下等式对提取其中的信息验证签名真实性:
计算对交易信息
验证卖家用户签名,若下列等式全部成立,则说明卖家签名真实:
卖家签名验证真实后,将数据交易平台和卖家的评价信息
其中,nc为此次交易的验证公钥;
4.3.2.b.5)区块链上具有写入权限的节点采用以下等式对数据交易平台发送的数据包验证签名真实性,验证真实后将交易信息写入到区块链中,使得中间地址a中资金转移到卖家用户地址:
其中,e为双线性映射。
本发明上述涉及的部分专业术语解释如下:
签名:本发明中签名均指数字签名,数字签名是一种类似于写在纸上的物理签名,只是利用了公钥加密领域的技术实现,是非对称加密技术和数字摘要技术的应用。数字签名在通常意义上包括签名和验证两种运算,只有信息的签名者才能产生别人无法伪造的一段数字串,因此数字签名包括鉴权、完整性验证和不可抵赖证明等作用。
循环群:g是一个循环加群,而g中有一个元素g,使g中任意元素f均可表示为f=g·n,n为整数,则称g是由g生成的循环加群,g叫做群g的一个生成元,记g=<g>。
双线性映射:g和v是阶为素数q的循环群,g是循环加群,v是循环乘法群。双线性对是指具有下面性质的映射e:g×g→v:
(1)双线性:对所有的p,q∈g和
e(wp,vq)=e(wvp,q)=e(p,wvq)=e(p,q)wv
其中,w、v表示
(2)非退化:存在一个p∈g,满足e(p,p)≠1。
(3)可计算:对p,q∈g,存在一个有效的算法计算e(p,q)。
地址:本发明中所提及的地址均指区块链中地址,用来标示一笔交易的支出方和接收方,区块链中的地址是通过对公钥一系列哈希及编码算法得到。
与现有技术相比,本发明的有益效果是:
1)买家用户和卖家用户均能保证交易资金的安全存储,数据交易平台提供商无法挪用交易资金,同时卖家用户需要买家用户的明确同意后才真正的获取到这笔资金;
2)数据交易平台无法获取用户的私钥产生方法,也无法得知用户的私钥,保证交易不受单方影响,外部不能通过攻击服务器来危险经济安全。
综上所述,本发明可提供不受单方影响的交易方法,保证买卖双方的权益的同时使得数据交易平台也无法挪用交易资金,且尽量避免外部对经济安全性的威胁。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细说明。
如图1所示,本发明的实施例及其具体实施过程如下:
a、生成密钥:
买家用户和卖家用户的每个用户在自身客户端生成用户交易密钥对(pkc,skc),其中pkc表示用户交易公钥,skc表示用户交易私钥,用户将密钥对中的公钥pkc发送给数据交易平台,并且pkc=skc·p,p表示循环加群的生成元;且对于买卖家用户的用户交易密钥对(pkc,skc),买家用户的交易密钥对表示为
任何卖家用户和买家用户之间发生的每次交易过程中,数据交易平台为每次交易过程生成分配单次交易密钥对(pkt,skt),其中pkt表示单次交易公钥,skt表示单次交易私钥,并将单次交易公钥公开;单次交易密钥对(pkt,skt)不分卖家用户和买家用户,仅由数据交易平台为每次交易生成,也可表示为
本发明在字母表示的上标中,c表示交易密钥,t表示单次交易密钥。本发明的字母表示中下标的a表示买家用户,b表示卖家用户的序数,c表示数据交易平台。
用户生成和存储交易公私钥的客户端是由数据交易平台合作方提供,并非数据交易平台提供,数据交易平台无法获取用户的私钥。若攻击者将数据交易平台控制,攻击者仍然无法获取任意用户的私钥,确保用户信息安全。
具体实施中,买家用户和卖家用户在数据交易平台注册时,用户自行设置登陆的账号和对应的密码,数据交易平台会对用户的登陆密码进行加密存储,保证用户的有效身份且用户的登陆密码不被泄露。具体实施还可以为买家用户和卖家用户的每个用户生成分配用户登陆密钥对(pku,sku),其中pku表示用户登录公钥,sku表示用户登录私钥,并将用户自身的私钥发送给用户。卖家用户和买家用户均拥有用户登陆密钥对(pku,sku),买家用户的登陆密钥对表示为
b、待交易数据发布:卖家用户通过数据交易平台在区块链上发布待交易数据的数据信息,供买家用户进行购买;
卖家用户选择待交易数据
根据卖家用户提供的数据包,验证卖家用户为数据交易平台的有效身份具体是:通过卖家用户的用户登陆账号和登陆密码对买家的身份进行验证。
c、买家在数据交易平台的页面上看到待交易数据后,发送购买某待交易数据的申请则开始交易过程,按本发明所述方法进行处理:
1)买家用户向数据交易平台发送购买某数据的申请后,数据交易平台为此次交易过程生成单次交易密钥(pkt,skt),同时根据买家用户和卖家用户各自的用户交易公钥和数据交易平台的单次交易密钥利用安全哈希函数h生成中间地址a,数据交易平台、买家用户和卖家用户三者利用中间地址a后续进行多重签名;
2)买家用户进行付款操作,以数字货币作为交易资金,将自身地址的交易资金通过区块链技术转移到中间地址a中,卖家用户在区块链上查询到买家用户的交易资金已转移到中间地址a的交易信息后,从数据交易平台获取买家用户的交易公钥
3)买家用户收到加密后的待交易数据
4)进行步骤4.1)、4.2)或者4.3);
4.1)若买家用户验证数据正确后,生成中间地址a中的交易资金转入卖家用户地址的交易信息
4.2)买家用户收到数据后,若超过规定时间内买家用户未确认交易,则由数据交易平台生成中间地址a中的资金转入卖家用户地址的交易信息
4.3)若买家用户对交易提出异议,则根据卖家用户的处理情况或者数据交易平台的判定结果来决定将中间地址a中资金转移至买家用户或卖家用户的地址,具体分为:
4.3.1)若买家用户申请退款操作,买家用户生成中间地址a的交易资金退回到买家用户地址的退款信息
4.3.2)卖家用户若不同意退款,分为以下两种情况:
4.3.2.a)若买家用户申请退款操作,买家用户生成中间地址a的交易资金退回到买家用户地址的退款信息
4.3.2.b)若买家用户申请退款操作,买家用户生成中间地址a的交易资金退回到买家用户地址的退款信息
基于区块链的交易都是单向不可逆的,现有技术中基于区块链的交易方法经常会出现:如果买家用户转入资金到卖家用户地址,则该交易不可逆转,买家用户对商品不满意时,无法重新获得资金,而若买家用户将资金先暂存在交易数据交易平台,再由数据交易平台转给卖家用户时,该资金不安全。故有人提出多重点名交易,而现有的多重签名交易中交易平台扮演客户端和服务器两个角色,如果攻击者控制了交易平台的服务器后,他们就能利用客户端来获取用户的信息,因此现有的多重签名交易不一定安全,并没有提供想象到的安全保障。
因此由上述实施例可见,本发明方法中通过用户的每个用户在自身客户端生成用户交易密钥对,以及通过特殊的区域链方式对双方交易时的数据加密和交易信息进行多重签名处理,在区块中进行记录,使得任何一方都无法挪用交易资金,将该方法运用在数据交易中,保证了交易过程每一次处理的数据信息安全,使得交易可靠。
上述具体实施方式用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。