会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑安全 / 密码学 / 一种比特币交易隐私增强方法

一种比特币交易隐私增强方法

阅读:1227发布:2020-11-14

IPRDB可以提供一种比特币交易隐私增强方法专利检索,专利查询,专利分析的服务。并且一种比特币交易隐私增强方法,其步骤如下:1、初始化,输出系统加解密和验证初始值;2、计算总输入金额;3、对发送的各个数额进行加密;4进行验证过程,确保交易值始终为正,且确保交易输入输出相等;5、验证通过后进行发送,接受者解密;6、交易单公开全网进行确认。通过以上步骤,从现有比特币系统存在的问题产生,继而进行完整的设计,用于解决比特币系统中数额暴露的隐私泄露问题;它覆盖了比特币系统、同态加密体制和承诺值证明几个密码学原语,将不同领域的方法从新应用在隐私增强的实际问题上,该方法具有加解密性、同态特性、零知识特性、安全性、高效性和兼容性,实现了加密后比特币的顺畅交易过程。,下面是一种比特币交易隐私增强方法专利的具体信息内容。

1.一种比特币交易隐私增强方法,其特征在于:其运行步骤如下:步骤1:系统初始化/KeyGen:生成用于加解密运算以及验证的安全参数;系统输入安全参数,输出用于加解密运算的生成的公钥和私钥对(pki,ski),同时输出用于验证的公钥pkd,注意此公钥无配对私钥;

步骤2:计算输入总值/Insum:计算交易总输入值,即上单交易与挖矿总收入;若该交易单是作为新确认的区块,则该交易单将获得额外的50比特币费用作为奖励,总收入为该部分明文与原密文相操作的总和;若该交易单不是新确认区块首单,则无额外收入,总收入即为上单交易传来的值;

步骤3:加密项/Encrypt:系统在交易层使用接受者公钥分别加密传输数额,同时在验证层使用系统公钥加密相同数额的各个数额;在交易层所加密的数额将在验证层通过后发送至各个接收者账户,注意到在验证层发送的加密数额将进入“哑巴账户”,该账户无私钥,金额在验证后即丢弃;

步骤4:验证项/Verify:在验证层验证隐藏后的数额是否为正值,以及输入输出总额是否相等;验证层分为两步,第一步通过承诺值在特定区间的证明方法证明隐藏的金额始终为正值;第二步用过两个承诺值相等的证明方法证明隐藏的金额输入输出前后总数相等;

当两个步骤都为真时,进入交易层的发送环节;

步骤5:解密项/Decrypt:验证层验证通过后,交易层将加密后的数额发送给接收者,接收者依据自己的私钥进行解密;在接受者核对自己的接收金额正确后,继续下一单的交易;

该接受者的接收值即为下一单的输入值;

步骤6:广播确认/Broadcast:即接收者核查无误后进行全网广播交易单等待确认;经过该方案处理后的交易单上原始的明文信息将隐藏为无法识读的密文,保证了交易过程唯一可能被分析处理的隐私;

通过以上步骤,本发明所提出的比特币隐私增强的方法得到了论述,该方法是从现有比特币系统存在的问题产生,继而进行完整的设计,用于解决比特币系统中数额暴露的隐私泄露问题;该方法覆盖了比特币系统、同态加密体制和承诺值证明几个密码学原语,将不同领域的方法从新应用在隐私增强的实际问题上,依据其方案设计知,该方案具有加解密性、同态特性、零知识特性、安全性、高效性和兼容性;最终,该系统方法实现了加密后比特币的顺畅交易过程。

2.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤1中所述的“系统初始化/KeyGen”,其具体作法如下:系统的输入为安全参数,输出则为用于加解密运算以及验证的参数;在交易层,对于每个不同的接收者i,系统生成给每个接收者生成两个大素数pi和qi;接收者私钥为ski=λi,公钥为pki=(ni,gi),其中ni=piqi;

同时在验证层,系统输出用于验证的“哑巴账户”的公钥pkd=(nd,gd),注意到此公钥无配对私钥;即该系统账户不能对收到的金额进行操作;系统生成参数Vα(gα,hα)和Vβ(gβ,hβ)用于验证。

3.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤2中所述的“计算输入总值/Insum”,计算输入总值分为两种情况,其具体作法如下:若该交易单是作为新确认的区块,则该交易单将获得额外的50比特币费用作为奖励,总收入为该部分明文与原密文相操作的总和,表示为若该交易单不是新确认区块首单,则无额外收入,总收入即为上单交易传来的值,表示为

4.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤3中所述的“加密项/Encrypt”,加密过程为在交易层和验证层同时加密相同的数额,其具体作法如下:在交易层,方案使用不同接收者的公钥pk1,pk2,...,pki使用Paillier加密体制来加密发送的明文数额m1,m2,...,mi为c1,c2,...,ci,表示为:同时,在验证层,方案使用系统的同一个公钥pkd将交易层中每一个发送的数额m1,m2,...,mi进行加密,表示为:其中方案设定随机数rd=hβ。

5.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤4中所述的“验证项/Verify”,其验证层分为两步,第一步通过承诺值在特定区间的证明方法证明隐藏的金额始终为正值;第二步用过两个承诺值相等的证明方法证明隐藏的金额输入输出前后总数相等;其具体作法如下:对于第一步即Verify-I,方案使用承诺值在特定区间的证明来保证被加密的数额mi为正值,发送者Alice对于不同的接收者i,分别做出承诺 为了简化,使用E0,E1,E2,E3,F,V来代替Ei0,Ei1,Ei2,Ei3,Fi,Vi;

2 t+l+s+T s+T

1)Alice设置v=αy+ω>2 ,其中任意选择α≠0,0<ω≤2 ;

设置r3-rα2+r1α+r2∈[-2sn+1,...,2sn-1],其中任意选择r1,r2,r3∈[-2sn+1,...,2sn-1];然后计算:Alice发送(V,E2,E3,F)给接收者;

2)接收者计算:

E1=E0(mi,r)/ga=gyhr mod n

3)Alice和接收者各自计算:

其中r*=-rα2-r1α-r2;

4)接收者验证PK1,PK2,PK3的正确性,以及是否满足v>2t+l+s+T,若满足则接收者确信x>a;

5)对于每个接收者mi,方案重复步骤1)-步骤4)即能证明mi>0(i={1,2,...,i});

该证明部分将对每个接收者的mi重复执行i次,如果其中有任意一次失败,交易失败;如果全部成功,系统通过,并继续下个步骤的验证;

对于第二步即Verify-II,方案使用证明两个承诺值相等的证明来保证交易输出输入前后一致,即m=m1+m2+...+mi=∑mi;现在,Alice做出两个承诺如下:其中rα∈{-2sn+1,...,2sn-1},rβ=nd∈{-2sn+1,...,2sn-1};如果收到相同数额的“哑巴账户”想验证其收到的密文中所含的明文数额是否与Alice发送的值相等,那么它需要进行如下两个步骤:

1)隐藏在承诺值E和F中的秘密值相等m=Σmi;

2)操作后的密文H=Πcid等于其中一个承诺F;

为了实现上述步骤1),我们进行如下证明:

i+t l+t+s l+t+s

1.Alice随机选择ω∈{1,...,2 b-1},ηα∈{1,...,2 n-1},ηβ∈{1,...,2 n-

1};然后计算:

2.Alice计算u=H(Wα||Wβ);

3.Alice计算:

D=ω+um,Dα=ηα+urα,Dβ=ηβ+urβ

并且发送(u,D,Dα,Dβ)给“哑巴账户”;

4.“哑巴账户”检验是否u=u′,其中

如果该部分步骤验证成功,继续进行下部分步骤证明:

1.“哑巴账户”对收到的密文进行计算:

2.从上面能看出,我们在加密过程中任意选取rd=hβ,在验证过程中任意选取rβ=nd;并且在系统初始化过程中,我们设置 以及gd=gβ,是故:

3.检查H是否等于F,如果否,交易失败,如果是则通过,并进行下一步;

综上验证,当两个部分的步骤都为真时,进入交易层的发送环节。

6.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤5中所述的“解密项/Decrypt”,证层验证通过后,交易层将加密后的数额ci发送给接收者,其具体作法如下:接收者依据自己的私钥ski进行解密:

其中 x∈Sn={u<n2|x=1 mod n};

在接受者核对自己的接收金额正确后,继续下一单的交易;该接受者的接收值即为下一单的输入值;值得注意的是,当交易完成后,“哑巴账户”中的密文数额将被丢弃,其作用仅作为桥梁使验证层的值与发送的值产生联系。

7.根据权利要求1所述的一种比特币交易隐私增强方法,其特征在于:在步骤6中所述的“广播确认/Broadcast”,即接收者核查无误后进行全网广播交易单等待确认,其具体作法如下:经过该方案处理后的交易单上原始的明文信息将隐藏为无法识读的密文,保证了交易过程唯一能被分析处理的隐私;我们将此交易单标志为TAlice,该过程同样适用于任意其他单交易。

说明书全文

一种比特币交易隐私增强方法

(一)技术领域:

[0001] 本发明设计了一种比特币交易隐私增强方法,用于保护比特币交易过程中的明文数额安全。方案通过加同态体制实现了对数额的加密解密运算,保证了传输过程中的数额隐私,同时通过承诺值证明保证了交易中隐藏数额始终为正且输入输出总额相等的要求。该方案属于信息安全中的密码学以及密码学货币领域。
(二)技术背景:
[0002] 2008年,日本程序员中本聪(Satoshi Nakamoto)设计并发布了一种点对点的去中心化数字货币——比特币。比特币系统提出了基于点对点的新型分布式模式,去除了传统电子货币的可信中心机构。比特币以及底层区块链技术展现出的去中心化、信息不可篡改、信息广泛传播、信息匿名特性逐渐被学术界与工业界关注并展开深入研究。
[0003] 比特币的产生与发展带动了一系列基于密码学的互联网货币兴起。按照工作原理的不同,可以大致分为三类:基于PoW的、基于PoS的以及基于PoW+PoS的。POW(Proof of Work,工作量证明)是指获得多少货币,取决于你挖矿贡献的工作量,电脑性能越好,分给你的矿就会越多,代表的货币有:比特币、莱特币、狗狗币、Zcash。POS(Proof of Stake,股权证明)根据你持有货币的量和时间进行利息分配的制度,在POS模式下,你的“挖矿”收益正比于你的币龄,而与电脑的计算性能无关,代表的有:比特股、智能坊黑币。基于PoW+PoS的代表有:以太坊、点点币。其他的还有一些货币如:瑞波币、恒星币、合约币。
[0004] 比特币及其他电子货币的兴起引发了对于区块链技术的广泛应用,区块链1.0时代,是以比特币等数字货币为核心形成的底层产业结构,形成了矿机、矿池、数字货币、支付钱包、交易所、数字货币网关的产业群和产业链。在区块链2.0时代,技术和应用的焦点从单纯电子货币转移到底层技术区块链技术的应用上来,形成了多元化、多样式、多场景的应用,类别和行业跨越大、独立程度高。资产验证、金融服务、慈善、媒体及社区、研究及投资、智能合约、公正防伪、资产交易、银行结算、电子商务、社交通讯、物联网、文件存储等领域。
[0005] 针对大面积比特币使用的所带来的交易隐私泄露问题,方案通过运用加同态加密方案Paillier体制对明文交易数额进行加密传输。该体制是1999年由Pascal Paillier提出,加密体制的困难性基于合数阶剩余类困难问题,具有在标准模型下的抗选择明文攻击安全。该体制具有加同态特性,使得通过对加密后的密文进行乘操作来实现相应的明文加减操作,该性质运用于在不泄露隐私情况下的验证过程。除了同态特性,该体制还具备高效性,使得方案可以通过进行预计算以及运用中国剩余定理进行快速计算,满足在比特币交易时间内的加密解密步骤。
[0006] 在运用加密体制进行加密后,生成的密文将存在于每个交易单中。为保证相应密文隐藏的明文的满足正值以及和相等的要求,方案运用了承诺值证明来进行验证。证明承诺值在特定区间采用2004年伍前红等人提出的方法,该方法在步骤相对简单的过程下保证了小的扩张域,使秘密数额保持为正值可证。证明两个承诺值相等运用哈希映射值相等的思想,在不泄露被承诺数的情况下验证两个承诺值包含同一个秘密。两个承诺值证明方案都具备零知识特性,保证了加密后的数额在验证过程中不被泄露。(三)发明内容:
[0007] 1、目的:本发明的目的是提出一种比特币交易隐私增强方法,以实现交易过程中将原始交易数额明文进行加密隐藏的隐私增强功能。方案一方面使加密后的密文值良好的保护了交易者隐私,另一方面还确保了隐藏的交易值始终为正值且交易数额前后总数一致,以满足与原比特系统的兼容性。
[0008] 2、技术方案:
[0009] 本发明方法分为六个步骤,六个步骤依次分散于交易层和验证层:1)系统初始化,生成初始值。2)计算交易总输入值,即上单交易与挖矿总收入。3)系统在交易层使用接收者公钥分别加密传输数额,同时在验证层使用系统公钥加密相同数额的各个数额。4)在验证层验证隐藏后的数额是否为证,以及输入输出总额是否相等。5)验证层验证通过后,交易层将加密后的数额发送给接收者,接收者依据自己的私钥进行解密。6)接收者核查无误后进行全网广播交易单等待确认。
[0010] 2.1基础知识:
[0011] 2.1.1比特币系统
[0012] 比特币系统包含三个技术元素:交易、共识机制、分布式网络。该三个技术元素也形成了比特币和区块链的三层结构:交易单、区块、区块链。比特币的存在形式是一笔笔不可逆的交易单,每笔交易单记录了数个用户的交易数据,包括交易来源和发送地址、交易数额、签名等信息。每笔交易单中都会有一个由SHA-256哈希算法生成的特殊标识符来对交易单进行标识。当每笔交易单完成后必须向全网进行广播等待确认。每个旷工对过去一段时间的交易单进行验证后并找到一个首字符连续为d个零的哈希值后可生成一个数据块,每个数据块在其后生成六个数据块后最终确认且不可更改。不可更改的数据块形成一个链式结构,即区块链。区块的生成是由分布式全网节点的算力进行确认的,算力越大越容易找到新的区块,但由于计算难度的相应调整,对应的计算时间保持在10分钟左右。比特币系统相对于原有电子货币系统具体去中心化、不可伪造、公开可验证、密码学安全等优势,该系统经过近9年发展已经证明其稳定性和拓展性。
[0013] 2.1.2Paillier公钥加密体制
[0014] Paillier加密体制提供了标准模型下的抗选择明文攻击安全,具备高效的加密解密效率以及加同态的特性,该体制加解密步骤如下:
[0015] 生成:设p和q为大素数,g为系统生成元,令n=pq,计算λ=λ(n)=lcm(p-1,q-1),其中公钥为(n,g),私钥为λ。
[0016] 加密:c=gm·rn mod n2,其中r为任意选取。
[0017] 解密:
[0018] 同态特性:Decsk(Encpk(m1)·Encpk(m2)mod n2)=m1+m2mod n。
[0019] 2.1.3承诺值证明
[0020] 承诺值证明主要用于方案的验证层,一方面解决被承诺值始终为正,另一方面解决被承诺值进行操作后保证输入输出相等的特性。为了保证被加密后的隐私数额为始终为正值以防止比特币的偷窃行为,方案采用了伍前红等人于2004年提出的承诺值在特定区间的高效证明方法。该方法设计步骤相对简单,且扩张域为1,使得被承诺数可以限定在特定的区间,方案将下界设为0,即可证明被承诺数为正值。为了保证加密后的数值作为输出与交易输入值前后一致,方案采用了证明两个承诺数相等的方法。该方案设计思路简单,通过将秘密值隐藏于承诺值中,并且加入随机选取的值,利用两次哈希函数的值是否相等来进行判断是否前后一致,即可证明被承诺值前后和一直。
[0021] 2.2技术方案内容
[0022] 本发明设计一种比特币交易隐私增强方法,该方法依据流程分为六个步骤进行实现,方案架构分为交易层和验证层两层,六个步骤依次分布于两层之中;
[0023] 本发明一种比特币交易隐私增强方法,其运行步骤如下:
[0024] 步骤1:系统初始化/KeyGen:生成用于加解密运算以及验证的安全参数;系统输入安全参数,输出用于加解密运算的生成的公钥和私钥对(pki,ski),同时输出用于验证的公钥pkd,注意此公钥无配对私钥;
[0025] 步骤2:计算输入总值/Insum:计算交易总输入值,即上单交易与挖矿总收入(非初始区块链则无此项收入);若该交易单是作为新确认的区块,则该交易单将获得额外的50比特币费用作为奖励,总收入为该部分明文与原密文相操作的总和;若该交易单不是新确认区块首单,则无额外收入,总收入即为上单交易传来的值;
[0026] 步骤3:加密项/Encrypt:系统在交易层使用接受者公钥分别加密传输数额,同时在验证层使用系统公钥加密相同数额的各个数额;在交易层所加密的数额将在验证层通过后发送至各个接收者账户,注意到在验证层发送的加密数额将进入“哑巴账户”,该账户无私钥,金额在验证后即丢弃;
[0027] 步骤4:验证项/Verify:在验证层验证隐藏后的数额是否为正值,以及输入输出总额是否相等;验证层分为两步,第一步通过承诺值在特定区间的证明方法证明隐藏的金额始终为正值;第二步用过两个承诺值相等的证明方法证明隐藏的金额输入输出前后总数相等;当两个步骤都为真时,进入交易层的发送环节;
[0028] 步骤5:解密项/Decrypt:验证层验证通过后,交易层将加密后的数额发送给接收者,接收者依据自己的私钥进行解密;在接受者核对自己的接收金额正确后,继续下一单的交易;该接受者的接收值即为下一单的输入值;
[0029] 步骤6:广播确认/Broadcast:即接收者核查无误后进行全网广播交易单等待确认;经过该方案处理后的交易单上原始的明文信息将隐藏为无法识读的密文,保证了交易过程唯一可能被分析处理的隐私。
[0030] 其中,在步骤1中所述的“系统初始化/KeyGen”,其具体作法如下:
[0031] 系统的输入为安全参数,输出则为用于加解密运算以及验证的参数;在交易层,对于每个不同的接收者i,系统生成给每个接收者生成两个大素数pi和qi;接收者私钥为ski=λi,公钥为pki=(ni,gi),其中ni=piqi;
[0032] 同时在验证层,系统输出用于验证的“哑巴账户”的公钥pkd=(nd,gd),注意到此公钥无配对私钥;即该系统账户不能对收到的金额进行操作;系统生成参数Vα(gα,hα)和Vβ(gβ,hβ)用于验证。
[0033] 其中,在步骤2中所述的“计算输入总值/Insum”,计算输入总值分为两种情况讨论,其具体作法如下:
[0034] 若该交易单是作为新确认的区块,则该交易单将获得额外的50比特币费用作为奖励(现在已经减半至25比特币,截止至2017年1月),总收入为该部分明文与原密文相操作的总和,表示为
[0035]
[0036] 若该交易单不是新确认区块首单,则无额外收入,总收入即为上单交易传来的值,表示为
[0037]
[0038] 其中,在步骤3中所述的“加密项/Encrypt”,加密过程为在交易层和验证层同时加密相同的数额,其具体作法如下:
[0039] 在交易层,方案使用不同接收者的公钥pk1,pk2,...,pki使用Paillier加密体制来加密发送的明文数额m1,m2,...,mi为c1,c2,...,ci,表示为:
[0040]
[0041] 同时,在验证层,方案使用系统的同一个公钥pkd将交易层中每一个发送的数额m1,m2,...,mi进行加密,表示为:
[0042]
[0043] 其中方案设定随机数rd=hβ。
[0044] 其中,在步骤4中所述的“验证项/Verify”,其验证层分为两步,第一步通过承诺值在特定区间的证明方法证明隐藏的金额始终为正值;第二步用过两个承诺值相等的证明方法证明隐藏的金额输入输出前后总数相等;其具体作法如下:
[0045] 对于第一步即Verify-I,方案使用承诺值在特定区间的证明来保证被加密的数额mi为正值,发送者Alice对于不同的接收者i,分别做出承诺 为了简化,使用E0,E1,E2,E3,F,V来代替Ei0,Ei1,Ei2,Ei3,Fi,Vi;
[0046] 1)Alice设置v=α2y+ω>2t+l+s+T,其中任意选择α≠0,0<ω≤2s+T;设置r3-rα2+r1αs s s s+r2∈[-2n+1,...,2n-1],其中任意选择r1,r2,r3∈[-2n+1,...,2n-1];然后计算:
[0047]
[0048]
[0049]
[0050]
[0051] Alice发送(V,E2,E3,F)给接收者;
[0052] 2)接收者计算:
[0053] E1=E0(mi,r)/ga=gyhr mod n
[0054]
[0055] 3)Alice和接收者各自计算:
[0056]
[0057]
[0058]
[0059] 其中r*=-rα2-r1α-r2;
[0060] 4)接收者验证PK1,PK2,PK3的正确性,以及是否满足v>2t+l+s+T,若满足则接收者可以确信x>a;
[0061] 5)对于每个接收者mi,方案重复步骤1)-步骤4)即可证明mi>0(i={1,2,...,i});
[0062] 该证明部分将对每个接收者的mi重复执行i次,如果其中有任意一次失败,交易失败;如果全部成功,系统通过,并继续下个步骤的验证;
[0063] 对于第二步即Verify-II,方案使用证明两个承诺值相等的证明来保证交易输出输入前后一致,即m=m1+m2+...+mi=∑mi;现在,Alice做出两个承诺如下:
[0064]
[0065] 其中rα∈{-2sn+1,...,2sn-1},rβ=nd∈{-2sn+1,...,2sn-1};如果收到相同数额的“哑巴账户”想验证其收到的密文中所含的明文数额是否与Alice发送的值相等,那么它需要进行如下两个步骤:
[0066] 1)隐藏在承诺值E和F中的秘密值相等m=∑mi;
[0067] 2)操作后的密文H=Πcid等于其中一个承诺F;
[0068] 为了实现上述步骤1),我们进行如下证明:
[0069] 1.Alice随机选择ω∈{1,...,2i+tb-1},ηα∈{1,...,2l+t+sn-1},ηβ∈{1,...,2l+t+sn-1};然后计算:
[0070]
[0071] 2.Alice计算u=H(Wα||Wβ);
[0072] 3.Alice计算:
[0073] D=ω+um,Dα=ηα+urα,Dβ=ηβ+urβ
[0074] 并且发送(u,D,Dα,Dβ)给“哑巴账户”;
[0075] 4.“哑巴账户”检验是否u=u′,其中
[0076]
[0077] 如果该部分步骤验证成功,继续进行下部分步骤证明:
[0078] 1.“哑巴账户”对收到的密文进行计算:
[0079]
[0080] 2.从上面可以看出,我们可以在加密过程中任意选取rd=hβ,在验证过程中任意选取rβ=nd;并且在系统初始化过程中,我们设置 以及gd=gβ,是故:
[0081]
[0082]
[0083] 3.检查H是否等于F,如果否,交易失败,如果是则通过,并进行下一步;
[0084] 综上验证,当两个部分的步骤都为真时,进入交易层的发送环节。
[0085] 其中,在步骤5中所述的“解密项/Decrypt”,证层验证通过后,交易层将加密后的数额ci发送给接收者,其具体作法如下:
[0086] 接收者依据自己的私钥ski进行解密:
[0087]
[0088] 其中
[0089] 在接受者核对自己的接收金额正确后,继续下一单的交易;该接受者的接收值即为下一单的输入值;值得注意的是,当交易完成后,“哑巴账户”中的密文数额将被丢弃,其作用仅作为桥梁使验证层的值与发送的值产生联系。
[0090] 其中,在步骤6中所述的“广播确认/Broadcast”,即接收者核查无误后进行全网广播交易单等待确认,其具体作法如下:
[0091] 经过该方案处理后的交易单上原始的明文信息将隐藏为无法识读的密文,保证了交易过程唯一可能被分析处理的隐私;我们可以将此交易单标志为TAlice,该过程同样适用于任意其他单交易。
[0092] 通过以上步骤,本发明所提出的比特币隐私增强的方法得到了论述,该方法是从现有比特币系统存在的问题产生,继而进行完整的设计,用于解决比特币系统中数额暴露的隐私泄露问题;该方法覆盖了比特币系统、同态加密体制和承诺值证明几个密码学原语,将不同领域的方法从新应用在隐私增强的实际问题上,依据其方案设计可知,该方案具有加解密性、同态特性、零知识特性、安全性、高效性和兼容性;最终,该系统方法实现了加密后比特币的顺畅交易过程。
[0093] 3、优点及功效:
[0094] 本发明提供了一种比特币交易隐私增强方法,该方法在保证与原始比特币系统兼容的情况下实现了交易中数额的隐藏功能,并且保证了加密的数额始终为正且输入输出相等的要求。该方法具有1)同态特性,使得系统可以对密文进行加减操作。2)零知识特性,传输和验证不泄露任何明文值。3)安全性,可抵抗不同类型的主动攻击和被动攻击。4)高效性,相比Zerocoin等解决方案具有更少的运算复杂度,且可以通过预计算和中国剩余定理进行算法加速。5)兼容性,与传统比特币系统兼容,可以移植入原始系统。(四)附图说明:
[0095] 图1为本发明所述方法的流程框图。
[0096] 图中序号、代号、符号说明如下:
[0097] 图示中,Insum/Encrypt/Verify/Decrypt/Braodcast分别代表步骤2-6,Transcation layer/Verification layer分别代表系统架构的两层,m1,m2,...,mi为发送给接收者的明文数额,c1,c2,...,ci为加密后的密文数额,(pki,ski)为加密的公私钥对,Enc/Dec为加解密过程,Dumb account为验证时设置的“哑巴账户”。(五)具体实施方式
[0098] 本发明为一种比特币交易隐私增强方法,该方法依据流程分为六个步骤进行实现,方案架构分为交易层和验证层两层。该方法的系统流程见图1,结合流程框图,将该方法的具体实现步骤介绍如下:
[0099] 本发明一种比特币交易隐私增强方法,将该方法具体实施步骤如下:
[0100] 步骤1:系统初始化/KeyGen:输入安全参数,输出用于加解密运算以及验证的参数。在交易层,对于每个不同的接收者i,系统生成给每个接收者生成两个大素数pi和qi。接收者私钥为ski=λi,公钥为pki=(ni,gi),其中ni=piqi;
[0101] 同时在验证层,系统输出用于验证的“哑巴账户”的公钥pkd=(nd,gd),注意到此公钥无配对私钥。即该系统账户不能对收到的金额进行操作;系统生成参数Vα(gα,hα)和Vβ(gβ,hβ)用于验证;
[0102] 注意到,由于“哑巴账户”和承诺值证明同处于验证层,且其参数都是由系统生成,方案设定gβ=gd以及 来确保操作后的密文可以成为承诺数;
[0103] 步骤2:计算总输入值/Insum:计算交易总输入值,即上单交易与挖矿总收入。
[0104] 若该交易单是作为新确认的区块,则该交易单将获得额外的50比特币费用作为奖励(现在已经减半至25比特币),总收入为该部分明文与原密文相操作的总和,表示为[0105]
[0106] 若该交易单不是新确认区块首单,则无额外收入,总收入即为上单交易传来的值,表示为
[0107]
[0108] 步骤3:加密项/Encrypt:在交易层,方案使用不同接收者的公钥pk1,pk2,...,pki使用Paillier加密体制来加密发送的明文数额m1,m2,...,mi为c1,c2,...,ci,表示为:
[0109]
[0110] 同时,在验证层,方案使用系统的同一个公钥pkd将交易层中每一个发送的数额m1,m2,...,mi进行加密,表示为:
[0111]
[0112] 其中方案设定随机数rd=hβ;
[0113] 两层的共同点是加密了相同的交易数额mi,不同之处在于交易层使用来自接收者的不同的公钥pki,验证层使用了来自系统的相同公钥pkd用于实现Paillier体制的加同态特性。其内在相同的数额mi保证了接收者在验证后得到值的正确性;
[0114] 步骤4:验证项/Verify:系统在验证层验证隐藏后的数额是否为正值,以及输入输出总额是否相等。验证层分为两步,第一步通过承诺值在特定区间的证明方法证明隐藏的金额始终为正值;第二步用过两个承诺值相等的证明方法证明隐藏的金额输入输出前后总数相等;
[0115] 对于第一步,方案使用承诺值在特定区间的证明来保证被加密的数额mi为正值,发送者Alice对于不同的接收者i,分别做出承诺 为了简化,使用E0,E1,E2,E3,F,V来代替Ei0,Ei1,Ei2,Ei3,Fi,Vi。
[0116] 1)Alice设置v=α2y+ω>2t+l+s+T,其中任意选择α≠0,0<ω≤2s+T;设置r3-rα2+r1α+r2∈[-2sn+1,...,2sn-1],其中任意选择r1,r2,r3∈[-2sn+1,...,2sn-1];然后计算:
[0117]
[0118]
[0119]
[0120]
[0121] Alice发送(V,E2,E3,F)给接收者;
[0122] 2)接收者计算:
[0123] E1=E0(mi,r)/ga=gyhr mod n
[0124]
[0125] 3)Alice和接收者各自计算:
[0126]
[0127]
[0128]
[0129] 其中r*=-rα2-r1α-r2;
[0130] 4)接收者验证PK1,PK2,PK3的正确性,以及是否满足v>2t+l+s+T,若满足则接收者可以确信x>a;
[0131] 5)对于每个接收者mi,方案重复步骤1-4即可证明mi>0(i={1,2,...,i})。
[0132] 该证明部分将对每个接收者的mi重复执行i次,如果其中有任意一次失败,交易失败;如果全部成功,系统返回1,并继续下个步骤的验证。
[0133] 对于第二步,方案使用证明两个承诺值相等的证明来保证交易输出输入前后一致,即m=m1+m2+...+mi=Σmi。现在,Alice做出两个承诺如下:
[0134]
[0135] 其中rα∈{-2sn+1,...,2sn-1},rβ=nd∈{-2sn+1,...,2sn-1};如果收到相同数额的“哑巴账户”想验证其收到的密文中所含的明文数额是否与Alice发送的值相等,那么它需要进行如下两个步骤:
[0136] 1)隐藏在承诺值E和F中的秘密值相等m=∑mi;
[0137] 2)操作后的密文H=Πcid等于其中一个承诺F。
[0138] 为了实现上述步骤1),我们进行如下证明:
[0139] 1.Alice随机选择ω∈{1,...,2i+tb-1},ηα∈{1,...,2l+t+sn-1},ηβ∈{1,...,2l+t+sn-1};然后计算:
[0140]
[0141] 2.Alice计算u=H(Wα||Wβ);
[0142] 3.Alice计算:
[0143] D=ω+um,Dα=ηα+urα,Dβ=ηβ+urβ
[0144] 并且发送(u,D,Dα,Dβ)给“哑巴账户”;
[0145] 4.“哑巴账户”检验是否u=u′,其中
[0146]
[0147] 如果该部分步骤验证成功,继续进行下部分步骤证明:
[0148] 1.“哑巴账户”对收到的密文进行计算:
[0149]
[0150] 2.从上面可以看出,我们可以在加密过程中任意选取rd=hβ,在验证过程中任意选取rβ=nd;并且在系统初始化过程中,我们设置 以及gd=gβ,是故:
[0151]
[0152]
[0153] 3.检查H是否等于F,如果否,交易失败,如果是返回1,并进行下一步。
[0154] 综上验证,当两个部分的步骤都为真时,进入交易层的发送环节;
[0155] 步骤5:解密项/Dcrypt:证层验证通过后,交易层将加密后的数额ci发送给接收者,接收者依据自己的私钥ski进行解密:
[0156]
[0157] 其中
[0158] 在接受者核对自己的接收金额正确后,继续下一单的交易。该接受者的接收值即为下一单的输入值。值得注意的是,当交易完成后,“哑巴账户”中的密文数额将被丢弃,其作用仅作为桥梁使验证层的值与发送的值产生联系;
[0159] 步骤6:广播确认/Broadcast:接收者核查无误后进行全网广播交易单等待确认。经过该方案处理后的交易单上原始的明文信息将隐藏为无法识读的密文,保证了交易过程唯一可能被分析处理的隐私。我们可以将此交易单标志为TAlice,该过程同样适用于任意其他单交易。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用