掌桥专利:专业的专利平台
掌桥专利
首页

基于PCNs网络的区块链交易数据隐私保护方法及系统

文献发布时间:2024-04-18 19:59:31


基于PCNs网络的区块链交易数据隐私保护方法及系统

技术领域

本发明属于区块链技术领域,尤其涉及基于PCNs网络的区块链交易数据隐私保护方法及系统。

背景技术

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

区块链本质上是一种去中心化的分布式账本,其系统内部用户无需互相信任,通过密码学、共识算法、分布式网络等来确保用户节点交互的安全性和一致性。虽然区块链能实现近乎完美的去中心化和安全性,但是系统内部通过大量计算实现共识的过程,使得其可扩展性较差。

为了解决上述的可扩展问题,链外支付被提出用于消除向区块链提交每个私人交易的要求,支付渠道网络(payment channel network,PCN)为目前最有前景的方法。PCNs中交易的本质是由交易双方商定通道余额的更新,交易双方建立一个共同账户用于进行多笔支付而仅仅需要将开启和关闭通道时的交易上链验证存储。PCNs交易不仅支持快速频繁的支付,同时隐藏了大量的中间交易信息;但是,PCNs只能为用户提供部分的交易隐私保护,而基于区块链的交易数据隐私保护方案需要具有两方面特性:(1)交易数据的完整机密性;(2)在保证数据不公开的条件下具有可验证性;而现有的PCNs链外支付方案不能很好地实现这两方面的特性,导致无法为区块链交易数据提供完善的隐私保护。

发明内容

为克服上述现有技术的不足,本发明提供了基于PCNs网络的区块链交易数据隐私保护方法及系统,将安全两方比较算法、安全两方乘法算法和指数Elgamal算法应用于PCNs转账交易中,在不暴露交易数据的同时可验证区块链交易的合法性。

为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:

本发明第一方面提供了基于PCNs网络的区块链交易数据隐私保护方法。

基于PCNs网络的区块链交易数据隐私保护方法,包括:

为链上用户在PCNs网络上创建PCNs帐户,并将预设的金额加密后转到PCNs帐户;

通过PCNs网络的路由算法,选择余额满足转账要求的PCNs帐户,为交易双方构建交易链路;

利用交易接收者创建的解锁密钥,对交易链路上各个节点的转账金额进行锁定;

基于交易链路,从交易接收者开始,通过相邻节点两两验证转账的方式,最终完成交易发起者与交易接收者间之间的转账交易;

其中,所述验证转账是对转账金额进行验证,验证通过后获得解锁密钥,对锁定的转账金额进行释放,最终获得转账金额。

进一步的,采用指数Elgamal算法对转入的金额进行加密。

进一步的,所述交易链路的构建方法为:

从PCNs网络的PCNs帐户中,通过PCNs网络的路由算法,构建一条从交易发起者到交易接收者的交易链路;

通过安全两方比较算法,判断交易链路上的节点余额是否都满足转账要求,不满足则重新进行路由算法选择新的交易链路。

进一步的,所述解锁密钥的创建方式为:

交易接收者随机选择R,作为解锁密钥,计算解锁密钥R的哈希码y=H(R),将解锁密钥R的哈希码y发给交易链路上的其他节点。

进一步的,所述对交易链路上各个节点的转账金额进行锁定,具体为:

交易链路上的节点提交哈希时间锁合约,对转账金额进行锁定,锁定的转账金额存在两种释放方式:

通过解锁密钥,对锁定的转账金额进行释放,实现正常转账;

哈希时间锁合约超时,退回转账金额。

进一步的,所述对转账金额进行验证,是通过安全两方乘法算法,确保每个参与方只能获得计算结果,而无法获取其他参与方的输入。

进一步的,所述交易发起者与交易接收者间之间的转账交易,具体流程为:

基于交易链路,从交易接收者开始,验证交易接收者与前一个节点的转档金额,验证通过后,前一个节点获取解锁密钥,对锁定的转账金额进行释放,交易接收者获得转账金额,然后一直往前,直到链路交易完成。

本发明第二方面提供了基于PCNs网络的区块链交易数据隐私保护系统。

基于PCNs网络的区块链交易数据隐私保护系统,包括账户创建模块、链路构建模块、金额锁定模块和验证转账模块:

账户创建模块,被配置为:为链上用户在PCNs网络上创建PCNs帐户,并将预设的金额加密后转到PCNs帐户;

链路构建模块,被配置为:通过PCNs网络的路由算法,选择余额满足转账要求的PCNs帐户,为交易双方构建交易链路;

金额锁定模块,被配置为:利用交易接收者创建的解锁密钥,对交易链路上各个节点的转账金额进行锁定;

验证转账模块,被配置为:基于交易链路,从交易接收者开始,通过相邻节点两两验证转账的方式,最终完成交易发起者与交易接收者间之间的转账交易;

其中,所述验证转账是对转账金额进行验证,验证通过后获得解锁密钥,对锁定的转账金额进行释放,最终获得转账金额。

本发明第三方面提供了计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本发明第一方面所述的基于PCNs网络的区块链交易数据隐私保护方法中的步骤。

本发明第四方面提供了电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本发明第一方面所述的基于PCNs网络的区块链交易数据隐私保护方法中的步骤。

以上一个或多个技术方案存在以下有益效果:

本发明通过指数Elgamal算法对PCNs网络中的账户金额进行加密,通过安全两方比较算法保证账户余额满足转账金额的数量要求,通过安全两方乘法算法对转账金额进行验证,确保每个参与方只能获得计算结果,而无法获取其他参与方的输入,从而在保证交易数据完整机密性的前提下,实现在数据不公开的条件下具有可验证性。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为第一个实施例的方法流程图。

图2为第一个实施例的PCNs链路选择示意图。

图3为第一个实施例的HTLC交易示意图。

图4为第一个实施例相邻节点转账金额验证的流程图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

实施例一

本公开的一种实施例中提供了基于PCNs网络的区块链交易数据隐私保护方法,如图1所示,包括如下步骤:

步骤S1:为链上用户在PCNs网络上创建PCNs帐户,并将预设的金额加密后转到PCNs帐户;

步骤S2:通过PCNs网络的路由算法,选择余额满足转账要求的PCNs帐户,为交易双方构建交易链路;

步骤S3:利用交易接收者创建的解锁密钥,对交易链路上各个节点的转账金额进行锁定;

步骤S4:基于交易链路,从交易接收者开始,通过相邻节点两两验证转账的方式,最终完成交易发起者与交易接收者间之间的转账交易;

其中,所述验证转账是对转账金额进行验证,验证通过后获得解锁密钥,对锁定的转账金额进行释放,最终获得转账金额。

下面对本实施例基于PCNs网络的区块链交易数据隐私保护方法的实现过程进行详细说明。

本实施例基于安全两方比较算法、安全两方乘法算法和指数Elgamal算法,构建了基于PCNs网络的区块链交易数据隐私保护方案,下面先对这些相关技术进行说明。

(1)安全两方比较算法

安全整数比较是最早引入密码学的问题之一,因为它既易于描述,又易于应用;问题的一种表述方式是让双方比较双方的投入,而不透露这些投入的值,也称为百万富翁问题。

在本实施例中使用符号COMP(A

(2)安全两方乘法算法

安全两方乘法计算是一种保护隐私的计算协议,允许两个参与方在不泄露各自私密输入的情况下进行乘法计算;这种协议通常使用密码学技术来实现,并确保每个参与方只能获得计算结果,而无法获取其他参与方的输入。

在本实施例中使用符号MULT(A

(3)指数Elgamal算法

KeyGen:首先生成一个阶数为q、生成元为g和h的循环群G,然后随机选择一个整数x∈{1,...,q-1},最后计算pk=g

Encryption:随机选择一个整数r∈{1,...,q-1},计算c

Decryption:在本实施例中无需解密出最后的明文m,只需要得到g

基于上述相关技术,基于PCNs网络的区块链交易数据隐私保护方法的具体实施方式如下:

1、链上用户将一定金额转到链下,即在PCNs网络中为链上用户创建PCNs账户,并将金额使用指数Elgamal算法进行加密后,转到PCNs账户中。

具体的,如果存入金额是b,在链下PCNs账户中看到的结果是:B=(g

假设链上共有n个用户需要向链下PCNs账户存入一定的金额b

2、假设A与E是PCNs网络中的两个参与方,A为交易发起者,E为交易接收者,现在A想通过PCNs网络与E进行金额为v的转账。

通过PCNs网络的路由算法,如图2所示,A和E之建立一条链路:

A→B→C→D→E。

3、通过安全两方比较算法,判断交易链路上的节点余额是否都满足转账要求,具体为:

为表述简单,假设中间节点B、C、D收取的费用fee均为1,那么对于交易链路A→B→C→D→E,A分别给B、C、D一个费用,所以A给B转账金额为v+3,B留下自己的一个费用,转给C的金额为v+2,C留下自己的一个费用,转给D的金额为v+1。

为了保证转账的顺利进行,交易发起者A分别与B、C、D运行COMP(v+3,b

4、交易接收者E随机选择解锁密钥R,并计算解锁密钥R的哈希码y=H(R),将y发给交易链路上的其他节点A、B、C、D,用于下面步骤中进行解锁。

5、如图3所示,交易发起者A提交哈希时间锁合约HTLC(A,B,v+3,4),该合约将交易发起者A的v+3金额锁定,只有合约的条件满足时候才会释放,金额有两种可能会被释放:

(1)节点B获取解锁密钥R,且满足H(R)=y,则B将获得锁定的金额。

(2)合约超时,此时合约将锁定的金额退回给节点A。

B、C、D同样分别提交哈希时间锁合约HTLC(B,C,v+2,3)、HTLC(C,D,v+1,2)、HTLC(D,E,v,1),对各自的转账金额进行锁定。

6、基于交易链路,从交易接收者E开始,先进行D和E之间的转账金额的验证,验证通过后E将解锁密钥R交给节点D,D使用解锁密钥R打开C、D之间的合约获得转账金额;然后一直往前,直到链路交易完成,其中,相邻节点转账金额的验证,通过安全两方乘法算法实现,以A、B两个节点之间转账金额的验证为例,A的余额加密值为B

(1)A计算转账后的余额:B

(2)B计算转账后的余额:B

(3)A和B运行计算:

(4)CA验证:

B

B

c

如果验证通过,则A获得B的解锁密钥,继续进行交易。

实施例二

本公开的一种实施例中提供了基于PCNs网络的区块链交易数据隐私保护系统,包括账户创建模块、链路构建模块、金额锁定模块和验证转账模块:

账户创建模块,被配置为:为链上用户在PCNs网络上创建PCNs帐户,并将预设的金额加密后转到PCNs帐户;

链路构建模块,被配置为:通过PCNs网络的路由算法,选择余额满足转账要求的PCNs帐户,为交易双方构建交易链路;

金额锁定模块,被配置为:利用交易接收者创建的解锁密钥,对交易链路上各个节点的转账金额进行锁定;

验证转账模块,被配置为:基于交易链路,从交易接收者开始,通过相邻节点两两验证转账的方式,最终完成交易发起者与交易接收者间之间的转账交易;

其中,所述验证转账是对转账金额进行验证,验证通过后获得解锁密钥,对锁定的转账金额进行释放,最终获得转账金额。

实施例三

本实施例的目的是提供计算机可读存储介质。

计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例一所述的基于PCNs网络的区块链交易数据隐私保护方法中的步骤。

实施例四

本实施例的目的是提供电子设备。

电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例一所述的基于PCNs网络的区块链交易数据隐私保护方法中的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116522548