兼具隐私和监管功能的区块链交易方法、装置及系统与流程

文档序号:19346645发布日期:2019-12-06 20:55阅读:208来源:国知局
兼具隐私和监管功能的区块链交易方法、装置及系统与流程

本发明涉及区块链技术领域,尤其涉及一种兼具隐私和监管功能的区块链交易方法、装置及系统。



背景技术:

区块链上的交易通常涉及发送者,接收者和实际交易金额三部分内容。比特币(bitcoin)和以太坊(ethereum)等区块链并无法保证交易的隐私性,发送者和接收者的身份通过用户公钥代替,能实现一定程度的匿名性,但能通过数据分析或机器学习方法能够挖掘交易主体的一些关联信息,并且实际交易金额完全暴露在公链上,任何人都可能过区块链全节点查询访问,无法提供交易的隐私性。

如何使区块链交易时实现隐私保护是目前研究的热点问题,但目前缺少一个良好解决方案。



技术实现要素:

有鉴于此,本发明提供了一种兼具隐私和监管功能的区块链交易方法、装置及系统,用以实现在区块链交易过程中对发送者、接收者和实际交易金额的隐藏,来实现交易过程中的隐私保护,具体方案如下:

一种兼具隐私和监管功能的区块链交易方法,包括:

采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;

当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;

将隐藏后的实际交易金额发送给所述接收者。

上述的方法,可选的,采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏,包括:

获取主公钥和主私钥、公钥和私钥;

依据所述公钥加密所述发送者和所述接收者的身份信息,生成目标公钥;

依据所述主私钥生成与所述目标公钥对应的目标私钥。

上述的方法,可选的,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏,包括:

依据所述发送者的目标私钥对交易输出进行签名,依据所所述签名对所述交易输出的所有权进行验证;

当验证通过时,采用预设的公式p=xg+rh对所述实际交易金额进行隐藏,其中:g和h为椭圆曲线中密码中的基点,r为盲因子,x为实际交易金额,p为隐藏后的实际交易金额;

对所述实际交易金额的范围采用零知识证明,得到目标范围;

当证明通过时,依据所述接收者的目标公钥对所述实际交易金额和所述盲因子进行加密。

上述的方法,可选的,将隐藏后的实际交易金额发送给所述接收者,包括:

将所述签名,所述接收者的目标公钥、所述隐藏后的实际交易金额、所述目标范围、加密后的盲因子和加密后的实际交易金额作为交易内容发送给所述目标区块链;

对所述交易内容的有效性进行验证,当验证通过时,将所述交易内容记录在所述目标区块链的账本上;

所述接收者接收所述加密后的实际交易金额。

一种兼具隐私和监管功能的区块链交易装置,包括:

第一隐藏模块,用于采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;

第二隐藏模块,用于当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;

发送模块,用于将隐藏后的交易金额发送给所述接收者。

上述的装置,可选的,所述第一隐藏模块包括:

获取单元,用于获取主公钥和主私钥、公钥和私钥;

目标公钥生成单元,用于依据所述公钥加密所述发送者和所述接收者的身份信息,生成目标公钥;

目标私钥生成单元,用于依据所述主私钥生成与所述目标公钥对应的目标私钥。

上述的装置,可选的,所述第二隐藏模块包括:

签名验证单元,用于依据所述发送者的目标私钥对交易输出进行签名,依据所所述签名对所述交易输出的所有权进行验证;

隐藏单元,用于当验证通过时,采用预设的公式p=xg+rh对所述实际交易金额进行隐藏,其中:g和h为椭圆曲线中密码中的基点,r为盲因子,x为实际交易金额,p为交易金额;

实现单元,用于对所述实际交易金额的范围采用零知识证明,得到目标范围;

加密单元,用于当证明通过时,依据所述接收者的目标公钥对所述实际交易金额和所述盲因子进行加密。

上述的装置,可选的,所述发送模块包括:

发送单元,用于将所述签名,所述接收者的目标公钥、所述隐藏后的实际交易金额、所述目标范围、加密后的盲因子和加密后的实际交易金额作为交易内容发送给所述目标区块链;

验证激励单元,用于对所述交易内容的有效性进行验证,当验证通过时,将所述交易内容记录在所述目标区块链的账本上;

接收单元,用于所述接收者接收所述加密后的实际交易金额。

一种兼具隐私和监管功能的区块链交易系统,包括,监管机构,发送者和接收者,其中:

所述监管机构,用于生成所述公钥和所述主私钥、所述公钥和所述私钥,并获取所述发送者和所述接收者身份信息,依据所述主私钥和所述公钥对所述身份信息进行隐藏;

所述发送者,用于对交易过程中的实际交易金额进行加密后发送给所述接收者;

所述接收者,用于接收加密后的实际交易金额,并对所述加密后的实际交易金额进行解密,得到实际交易金额。

上述的系统,可选的,所述监管机构还包括:用于对交易过程中的所述交易者、所述接收者和所述实际交易金额进行监管。

与现有技术相比,本发明包括以下优点:

本发明公开了一种兼具隐私和监管功能的区块链交易方法,包括:采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;将隐藏后的实际交易金额发送给所述接收者。上述的交易方法中,对所述发送者、所述接收者和实际交易金额进行了隐藏,实现了在区块链交易过程中隐私的保护。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种兼具隐私和监管功能的区块链交易系统示意图;

图2为本申请实施例公开的一种比特币的uxto模型实例示意图;

图3为本申请实施例公开的一种兼具隐私和监管功能的区块链交易方法流程图;

图4为本申请实施例公开的一种兼具隐私和监管功能的区块链交易方法又一方法流程图;

图5为本申请实施例公开的一种兼具隐私和监管功能的区块链交易装置结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

本发明公开了一种兼具隐私和监管功能的区块链交易方法、装置及系统,用于基于区块链的交易过程中,其中,区块链上的交易通常涉及发送者,接收者和实际交易金额三部分内容,发送者和接收者的身份通过用户公钥代替,能实现一定程度的匿名性,但能通过数据分析或机器学习方法能够挖掘交易主体的一些关联信息,并且实际交易金额完全暴露在公链上,任何人都可能过区块链全节点查询访问,无法提供交易的隐私性,本发明提供一种兼具隐私和监管功能的区块链交易系统,用于实现基于区块链的交易过程中对隐私的保护,其中,主要针对发送者、接收者和实际交易金额进行保护,所述交易系统的示意图如图1所示,包括:监管机构,发送者和接收者,其中:

所述监管机构,用于生成所述公钥和所述主私钥、所述公钥和所述私钥,并获取所述发送者和所述接收者身份信息,依据所述主私钥和所述公钥对所述身份信息进行隐藏;

本发明实施例中,所述监管机构需要生成两对公私钥对,其一是主公钥mpk和主私钥msk;其二是公钥ppk和私钥psk。然后系统中的用户通过身份信息向监管机构申请密钥分发,其中,所述用户包括发送者和接收者,所述身份信息可以为id、e-mail、身份证号等,以id为例进行说明。监管机构在认证加密用户的id信息后,首先利用概率加密公钥ppk加密用户的id信息,生成加密用户的目标公钥upk。然后再利用ibc密码机制根据所述加密用户的目标公钥upk生成相应的目标私钥usk,即upk和usk分别作为了加密用户的目标公钥和私目标钥。通过所述目标公钥upk可以有效隐藏id,实现用户的身份信息保护,并且利用概率加密的优势,相同的id可以生成无限多的所述目标公钥upk,并且目标公钥upk相互之间不可区分,可以高效地实现用户身份的隐私保护。

本发明实施例中,以基于身份的密码技术ibc(identity-basedcryptography)生成所述主公钥mpk和所述主私钥msk为例进行说明,生成过程如下:

由密钥生成中心kgc(keygenerationcenter)生成主公钥和主私钥,然后kgc再利用密钥根据用户的身份信息id用户生成私钥,用户的id即为公钥,无需数字证书绑定.本文主要采用国密sm9标准算法作为ibc密码体制的一个实例.主要对sm9数字签名算法进行介绍:

设p1为椭圆曲线加法循环群g1的生成元,p2为椭圆曲线加法循环群g2的生成元,h(·)为hash函数,e(·)为双线性对.假设a为签名者,b为验证者,sm9数字签名过程如下:

密钥生成:kgc产生的随机数ks∈[1,n-1]作为签名主私钥,计算ppub-s=[ke]p2为签名主公钥,则加密主密钥对为(ke,ppub-s).用户a的标识为ida,为产生用户a的签名私钥dsa,kgc在有限域fn上计算t1=h(ida,n)+ks,得到dsa=[t2]p1.

签名过程:设待签名的消息为m,a签名过程如下:

计算

g=e(p1,ppub-s)(1)

选择随机数r∈[1,n-1];

计算

w=gr,h=h(m||w,n)(2)

l=(r-h)modn(3)

计算

s=[l]dsa(4)

则m的签名为(h,s).

验证过程:为了验证消息m′的签名(h′,s′),b执行以下过程:

计算

g=e(p1,ppub-s)(5)

计算

t=gh′(6)

h1=h(ida,n)(7)

计算

p=[h1]p2+ppub-s’(8)

u=e(s′,p)(9)

w′=u·t(10)

计算h2=h2(m′||w′,n),若h2=h′,则签名验证通过,否则失败.

本发明实施例中,以基于概率公钥密码体制生成所述公钥和所述私钥为例进说明,概率公钥加密是一种非确定性密码,对于相同的明文生成的密文随机变化,在计算安全假设条件下,不可能在多项式时间内通过密文相关攻击获取明文的任何有效信息。本发明实施例中,主要选用blum-goldwasser方案对用户的身份信息进行加密,算法详细过程为:

参数设置:设n=pq,其中p和q为大素数,p≡q≡3(mod4),则n即为公钥,p和q为私钥.设明文空间p=(z2)m,密文空间密钥空间为k={(n,p,q)}.

加密算法:对于待加密明文消息x∈(z2)m,加密过程为:

随机选择种子s0,利用bbs生成器产生m个随机比特z1…zm作为密钥流;

计算

计算

yi=(xi+zi)mod2,其中1≤i≤m;(12)

密文为

c=ek(x,r)=(yi,…,yi,sm+1)(13)

解密算法:解密c=(yi,…,yi,sm+1)的过程如下:

计算

计算

计算

计算

利用中国剩余定理计算r,满足以下条件:

r≡b1modp(18)和

r≡b2modq(19)

利用bbs生成器从种子s0=r计算得到z1…zm;

对于1≤i≤m计算

xi=(yi+zi)mod2(20)

解密明文即为x=x1…xm。

所述发送者,用于对交易过程中的实际交易金额进行加密后发送给所述接收者;

本发明实施例中,在进行交易的时候,所述发送者将所述upk作为公钥,利用所述目标私钥usk生成签名s,解锁uxto账户模型交易输出,其中,所述uxto账户模型表示未花费的交易输出,在所述目标区块链上记录了多笔的交易,每一笔交易都有若干个交易输入(转账者),也就是资金来源,同时也有若干个交易输出(收款者),也就是资金去向,这些产生的输出,就是utxo.图2为比特币的uxto模型实例,其中交易1有1个1比特币btc(bitcoin)的输入,有2个分别为0.4btc和0.5btc的输出,其中输入与输出的0.1btc差值为交易手续费.交易2与交易1类似,并且其输出又作为交易3的输入,由此形成交易的链式结构。实际交易金额x通过pedersen承诺进行隐藏,即p=xg+rh,对x的范围证明通过bulletproofs零知识证明实现,生成p’。为了保证接所述收者能获取所述实际交易金额,所述发送者利用所述接收者的目标公钥upk加密r和x得到r和x,并将(s,upk,p,p’,r,x)作为交易内容,发送到目标区块链。

所述接收者,用于接收加密后的实际交易金额,并对所述加密后的实际交易金额进行解密,得到实际交易金额。

本发明实施例中,所述接收者根据所述交易内容中的upk与所述接收者的目标公钥upk进行验证,当两者相同时即可确认接收的交易内容是正确的,然后利用所述接收者的目标私钥usk解密x,获取收到的所述实际交易金额。

进一步的,交易的发送者和接收者通过自身的公钥upk隐藏真实的id信息,通过x隐藏交易金额x,有效地实现隐私保护,防止第三方获取交易真实信息,所述监管机构中存储有所述主公钥mpk和所述主私钥msk,所述用户的公钥ppk和所述用户的私钥psk,因此,所述监管机构则可以利用用户的私钥psk解密upk获取交易发送者和接收者的真实id信息,又可以利用用户的主私钥msk生成接收者upk对应的私钥usk,再利用usk解密r和x即可获取真实交易金额x,实现对所述发送者,所述接收者和所述实际交易金额的监管。

基于上述的一种兼具隐私和监管功能的区块链交易系统,本发明实施例中,还提供了一种兼具隐私和监管功能的区块链交易方法,所述交易方法的执行流程如图3所示,包括步骤:

s101、采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;

本发明实施例中,为了保证交易过程中对所述发送者和所述接收者的身份信息进行隐藏,可以通过将获取所述公钥和所述主私钥、所述公钥和所述私钥,依据所述公钥加密所述发送者和所述接收者的身份信息,生成目标公钥,依据所述主私钥生成与所述目标公钥对应的目标私钥。

s102、当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;

本发明实施例中,当所述发送者和所述接收者基于目标区块链进行交易时,依据所述发送者的目标私钥对交易输出进行签名,依据所所述签名对所述交易输出的所有权进行验证,主要是针对上一交易过程中的输出是否可以作本本次交易过程的输入进行验证,当验证通过时,采用预设的公式p=xg+rh对所述实际交易金额进行隐藏,其中:g和h为椭圆曲线中密码中的基点,r为盲因子,x为实际交易金额,p为隐藏后的实际交易金额,若验证不通过,则放弃当前交易、对上一交易过程仅进行调整以令输出满足本次交易,具体作何种处理可以依据具体情况进行调整。

进一步的,当验证通过时,对所述实际交易金额的范围采用零知识证明,得到目标范围,当证明通过时,依据所述接收者的目标公钥对所述实际交易金额和所述盲因子进行加密,反之,当证明不通过时,说明所述实际交易金额存在异常,可以选择放弃本次交易。

s103、将隐藏后的实际交易金额发送给所述接收者。

本发明实施例中,所述接收者根据所述交易内容中的upk与所述接收者的目标公钥upk进行验证,当两者相同时即可确认接收的交易内容是正确的,然后利用所述接收者的目标私钥usk解密x,获取收到的所述实际交易金额。

本发明公开了一种兼具隐私和监管功能的区块链交易方法,包括:采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;将隐藏后的实际交易金额发送给所述接收者。上述的交易方法中,对所述发送者、所述接收者和实际交易金额进行了隐藏,实现了在区块链交易过程中隐私的保护。

本发明实施例中,在上述过程中,交易的发送者和接收者通过自身的公钥upk隐藏真实的id信息,通过x隐藏交易金额x,有效地实现隐私保护,防止第三方获取交易真实信息;监管机构则可以利用概率公钥加密私钥psk解密upk获取交易发送者和接收的真实id信息,又可以利用ibc加密机制主私钥msk生成接收者upk对应的私钥usk,再利用usk解密r和x即可获取真实交易金额x,实现交易监管功能。综上所述,所述交易方法能同时实现隐私保护和监管功能,具有很强的实用价值。

本发明实施例中,将隐藏后的实际交易金额发送给所述接收者的执行流程如图4所示,包括步骤:

s201、将所述签名,所述接收者的目标公钥、所述隐藏后的实际交易金额、所述目标范围、加密后的盲因子和加密后的实际交易金额作为交易内容发送给所述目标区块链;

本发明实施例中,所述目标区块链用于处理所述发送者和所述接收的本次交易。

s202、对所述交易内容的有效性进行验证,当验证通过时,将所述交易内容记录在所述目标区块链的账本上;

本发明实施例中,对所述交易内容的有效性的验证过程如下:对所述签名解锁uxto账户模型交易输出,验证所述交易内容中的所述接收者的目标公钥与所述接收的目标公钥是否相同,验证所述目标范围是否处于预设的阈值范围中,其中,所述预设的阈值范围可以依据经验值或者实际情况进行设定,本发明实施例中对所述预设的阈值范围的具体范围不进行限定,依据加密后的盲因子和加密后的实际交易金额,对p=xg+rh是否恒等进行验证。当所述交易内容满足上述所有的验证过程时,验证通过,将所述交易内容记录在所述目标区块链的账本上,反之,放弃所述交易内容或者对所述交易内容进行调整。

s203、所述接收者接收所述加密后的实际交易金额。

本发明实施例中,当验证通过时,所述接收者接收所述目标区块链交易内容的加密后实际金额,利用所述接收者的目标私钥usk解密所述加密后实际金额,获取所述实际交易金额。

基于上述的区块链交易方法,本发明实施例中提供了一种区块链交易装置,所述交易装置的结构框图如图5所示,包括:

第一隐藏模块301、第二隐藏模块302和发送模块303。

其中,

所述第一隐藏模块301,用于采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;

所述第二隐藏模块302,用于当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;

所述发送模块303,用于将隐藏后的交易金额发送给所述接收者。

本发明公开了一种兼具隐私和监管功能的区块链交易装置,包括:采用预设的第一加密方法对发送者和接收者的身份信息进行隐藏;当所述发送者和所述接收者基于目标区块链进行交易时,令所述发送者采用预设的第二加密方法对交易的实际金额进行隐藏;将隐藏后的实际交易金额发送给所述接收者。上述的交易装置中,对所述发送者、所述接收者和实际交易金额进行了隐藏,实现了在区块链交易过程中隐私的保护。

本发明实施例中,所述第一隐藏模块301包括:

获取单元304、目标公钥生成单元305和目标私钥生成单元306。

其中,

所述获取单元304,用于获取主公钥和主私钥、公钥和私钥;

所述目标公钥生成单元305,用于依据所述公钥加密所述发送者和所述接收者的身份信息,生成目标公钥;

所述目标私钥生成单元306,用于依据所述主私钥生成与所述目标公钥对应的目标私钥。

本发明实施例中,所述第二隐藏模块302包括:

签名验证单元307、隐藏单元308、实现单元309和加密单元310。

其中,

所述签名验证单元307,用于依据所述发送者的目标私钥对交易输出进行签名,依据所所述签名对所述交易输出的所有权进行验证;

所述隐藏单元308,用于当验证通过时,采用预设的公式p=xg+rh对所述实际交易金额进行隐藏,其中:g和h为椭圆曲线中密码中的基点,r为盲因子,x为实际交易金额,p为交易金额;

所述实现单元309,用于对所述实际交易金额的范围采用零知识证明,得到目标范围;

所述加密单元310,用于当证明通过时,依据所述接收者的目标公钥对所述实际交易金额和所述盲因子进行加密。

本发明实施例中,所述发送模块303包括:

发送单元311、验证和激励单元312和接收单元313。

其中,

所述发送单元311,用于将所述签名,所述接收者的目标公钥、所述隐藏后的实际交易金额、所述目标范围、加密后的盲因子和加密后的实际交易金额作为交易内容发送给所述目标区块链;

所述验证激励单元312,用于对所述交易内容的有效性进行验证,当验证通过时,将所述交易内容记录在所述目标区块链的账本上;

所述接收单元313,用于所述接收者接收所述加密后的实际交易金额。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上对本发明所提供的一种兼具隐私和监管功能的区块链交易方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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