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

基于Paillier和博弈论的区块链交易方法

文献发布时间:2023-06-19 11:57:35


基于Paillier和博弈论的区块链交易方法

技术领域

本发明涉及信息安全技术领域,具体涉及一种基于Paillier和博 弈论的区块链交易方法。

背景技术

区块链技术来自于比特币,具有去中心化、集体维护、公开透明、 不可篡改、准匿名性等突出特点而受到广泛关注,是价值互联网的基 础,是信任产生的机器,是新的协作机制,能够为自治组织提供支撑。

当前区块链技术平台中,无论公有链还是联盟链,因为账本的公 开透明或者一定范围内的公开透明,以及准匿名性,导致明文的交易 金额易造成用户隐私的泄露。为此出现了多种隐藏交易金额的项目, 如zerocash协议、monero(门罗币)、RingCT(环签交易)、Zether 协议等。

区块链的token交易是加减法运算。加法同态算法有很多,其中 Paillier同态加密算法综合性能最好,然而Paillier同态加密算法无法 直接支持密文的范围证明,也不具有承诺的形式。因此,当前均在讨 论如何改造Paillier以支持密文的范围证明,但存在的问题是同态性 质只保留在一个用户的范围内,而不是全网用户的密文同态。

为了克服上述缺点,当前有的是对Elgmal算法进行改进,使得 改进后的Elgmal算法支持全网同态,但密文的解密却需要经过类似 穷举的方法进行,而且由于无法获得随机数导致无法直接支持余额的 范围证明,需要经过其它间接的方式来实现,导致方案的解决流程复 杂,不够简洁。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种基于 Paillier和博弈论的区块链交易方法,能够使得密文可以直接解密,直 接支持余额的范围证明,使得密文可监督,无需再进行解密再加密等 繁杂流程。

为达到以上目的,本发明提供的一种基于Paillier和博弈论的区 块链交易方法,包括以下步骤:

基于预设算法生成系统参数、承诺参数以及交易发送方和交易接 受方的公私钥;

基于生成的系统参数和公私钥,并结合预设Paillier加密算法, 计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、 交易发送方交易后账户余额密文和交易接受方交易金额密文;

给交易金额构造Pedersen承诺,并调用sigma协议为该承诺和交 易发送方交易金额密文中的承诺构造相等性证据;

给交易发送方交易后账户余额和交易发送方交易后账户余额明 文随机数构造Pedersen承诺,并调用sigma协议为该承诺和交易发送 方交易后账户余额密文中的承诺构造相等性证据;

基于产生零知识范围证明的函数,给交易发送方交易金额密文构 造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额 密文构造一个交易金额处于特定范围的证据;

将计算得到的密文、构造的证据和构造的承诺发送至区块链节 点,区块链节点的智能合约基于密文、证据和承诺对交易的合法性进 行验证;

交易接受方构造证据并发起申诉,区块链节点的智能合约对申述 是否属实进行验证。

在上述方案的基础上,所述基于预设算法生成系统参数、承诺参 数以及交易发送方和交易接受方的公私钥,其中:

生成的系统参数

sysPrm=(h,k,n,n

生成的Pedersen承诺参数

pedPrm=(G,p,g

其中,pedPrm表示Pedersen承诺参数,g

在上述方案的基础上,所述基于预设算法生成系统参数以及交易 发送方和交易接受方的公私钥,其中:

生成交易发送方私钥的过程为:选择随机数x

生成的交易发送方公钥

在上述方案的基础上,,所述基于预设算法生成系统参数以及交 易发送方和交易接受方的公私钥,其中:

生成交易接受方私钥的过程为:选择随机数x

生成的交易接受方公钥

在上述方案的基础上,所述基于生成的系统参数和公私钥,并结 合预设Paillier加密算法,计算得到交易发送方交易金额密文、交易 发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接 受方交易金额密文,其中:

计算得到的交易发送方交易金额密文

计算得到的交易接受方交易金额密文

计算得到的交易发送方账户原始金额密文

计算得到的交易发送方交易后账户余额密文

其中,T表示交易金额,A表示交易发送方账户原始金额,r

在上述方案的基础上,

所述给交易金额构造Pedersen承诺,并调用sigma协议为该承诺 和交易发送方交易金额密文中的承诺构造相等性证据,具体为:

给交易金额构造Pedersen承诺,该承诺记为PedersenC1;

调用sigma协议,为PedersenC1和E

所述给交易发送方交易后账户余额和交易发送方交易后账户余 额明文随机数构造Pedersen承诺,并调用sigma协议为该承诺和交易 发送方交易后账户余额密文中的承诺构造相等性证据,具体为:

给交易发送方交易后账户余额和交易发送方交易后账户余额明 文随机数构造Pedersen承诺,该承诺记为PedersenC2;

调用sigma协议,为PedersenC2和E

在上述方案的基础上,所述基于产生零知识范围证明的函数,给 交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给 交易发送方交易后账户余额密文构造一个交易金额处于特定范围的 证据,其中,构造的两个证据聚合产生:

其中,表示ZRPBT给交易发送方交易金额密文和交易发送方交 易后账户余额密文构造的范围证据,ZRPG表示产生零知识范围证明 的函数,m

在上述方案的基础上,所述将计算得到的密文、构造的证据和构 造的承诺发送至区块链节点,具体为:

将交易发送方交易金额密文C_ta、交易接受方交易金额密文 C_tb、PedersenC1、PedersenC2、EquaProofT、EquaProofB和 ZRPBT发送至区块链节点。

在上述方案的基础上,所述区块链节点的智能合约基于密文、证 据和承诺对交易的合法性进行验证,具体步骤包括:

获取sysPrm、y

基于EquaProofT、PedersenC1、E

计算C_td=C_ts/C_ta,并基于EquaProofB、PedersenC2、 E

基于ZRPBT、PedersenC1、PedersenC2和pedPrm,进行第三 次验证,所述第三次验证为调用bulletproof协议的验证功能验证交易 发送方交易金额密文、交易接受方交易金额密文和交易发送方交易后 账户余额密文的范围证据;

进行交易是否合法的判断,当且仅当第一次验证、第二次验证和 第三次验证均成立时,则交易合法,则获取交易接受方账户原始金额 密文和交易金额,得到交易接受方交易后账户余额密文,并将交易发 送方交易后账户余额、交易接受方交易后账户余额密文和其它交易数 据写入账本,反之,则交易不合法,交易失败。

在上述方案的基础上,所述交易接受方构造证据并发起申诉,区 块链节点的智能合约对申述是否属实进行验证,具体步骤包括:

交易接受方构造证据,构造的证据为:

InvalidCipherProof=ICPG(C_ta,C_tb,(m,r

mL(k)=L(E

其中,m表示明文,r

将TXID、InvalidCipherProof、m和r

智能合约根据TXID读取交易发送方交易金额密文和交易接受 方交易金额密文,验证m、r

与现有技术相比,本发明的优点在于:通过以Paillier算法为基 础,并对Paillier算法进行改造以支持全网用户密文数据的同态,且 密文可以直接解密,直接支持余额的范围证明,使得密文可监督,无 需再进行解密再加密等繁杂流程,且由于交易明文和随机数都可以解 密,使得交易接收方可以用明文和随机数直接校验密文的正确性,无需对密文构成的合法性进行检查,从而减少链上数据以及计算量,提 高效率。

附图说明

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

图1为本发明实施例中一种基于Paillier和博弈论的区块链交易 方法的流程图。

具体实施方式

本发明实施例提供一种基于Paillier和博弈论的区块链交易方法, 通过以Paillier算法为基础,并对Paillier算法进行改造以支持全网用 户密文数据的同态,且密文可以直接解密,直接支持余额的范围证明, 使得密文可监督,无需再进行解密再加密等繁杂流程,且由于交易明 文和随机数都可以解密,使得交易接收方可以用明文和随机数直接校 验密文的正确性,无需对密文构成的合法性进行检查,从而减少链上 数据以及计算量,提高效率。

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

为了将Paillier算法与基于FO承诺的零知识范围证明相结合, 本发明对Paillier算法进行改造,改造后的Paillier算法为:

1、对于系统参数的产生

g的生成方式:随机选取两个安全素数p和q,计算n=pq和 λ=lcm(p-1,q-1),lcm表示最小公倍数计算,选取随机数g,

h的生成方式:选择随机数r<n

k的生成方式:k=g

则系统参数sysPrm=(h,k,n,n

2、公私钥的产生

选择随机数x作为私钥,其中

公钥y=h

3、明文的加密过程

对于明文m,m∈Z

则对明文m加密,得到的密文为(E

4、明文的解密过程

对于密文(E

c

其中,L(c

5、随机数的解密过程

对于(E

明文随机数

其中,L(c

6、加法同态属性

设有明文m

定义Encrpt(m

解密过程为:

上述改进后的Paillier同态加密算法,支持零知识证明,支持全 网用户密文承诺的同态运算,该特性可以简化链上交易的内容,从而 本发明不但可以用于账户模型的交易金额加密与范围证明,也可以用 于UTXO模型(UnspentTransaction Output,未花费过的交易输出) 的交易金额加密与范围证明。

对于账户模型,本发明实施例的同态加密方法用于区块链的交易 的加密及范围证明时,密文(E

对于一个正确的交易,需要证明如下三个声明成立:(1)转出金 额和接受金额相等;(2)交易的金额处于某个合适的范围;(3)账户 余额处于某个合适的范围。

对于第一个声明,由于E

对于第二个声明,只需证明承诺E

对于第三个声明,假设转出账户原始金额为m

需要说明的是,对于Fujisaki-Okamoto承诺(简称FO承诺)。 假设交易发送方和交易接受方不知n的分解,

零知识证明是指证明者能够在不向验证者提供任何有用信息的 情况下,使验证者相信某个论断是正确的,分为交互和非交互两类。 零知识证明可用于解决区块链隐私保护,交易合法性验证等问题。

当前效率、证据大小比较优的范围证明协议是bulletproof。由于 本发明中用于范围证明的交易金额密文E

需要说明的是,对于本发明实施例中的Pedersen承诺。设g

参见图1所示,本发明实施例提供的一种基于Paillier的同态加 密方法,具体包括以下步骤:

S1:基于预设算法生成系统参数、承诺参数以及交易发送方和交 易接受方的公私钥;

S2:基于生成的系统参数和公私钥,并结合预设Paillier加密算 法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密 文、交易发送方交易后账户余额密文和交易接受方交易金额密文。当 用户加入本发明实施例的应用系统时,铸币方根据情况给用户初始化 密文形式的余额,并写到链上,由用户读取到本地,且交易发送方交 易前账户余额密文在本地存放或者从链上读取。

S3:给交易金额构造Pedersen承诺,并调用sigma协议为该承诺 和交易发送方交易金额密文中的承诺构造相等性证据;

S4:给交易发送方交易后账户余额和交易发送方交易后账户余额 明文随机数构造Pedersen承诺,并调用sigma协议为该承诺和交易发 送方交易后账户余额密文中的承诺构造相等性证据;

S5:基于产生零知识范围证明的函数,给交易发送方交易金额密 文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户 余额密文构造一个交易金额处于特定范围的证据。

S6:将计算得到的密文、构造的证据和构造的承诺发送至区块链 节点,区块链节点的智能合约基于密文、证据和承诺对交易的合法性 进行验证;

S7:交易接受方构造证据并发起申诉,区块链节点的智能合约对 申述是否属实进行验证。

本发明实施例中,基于预设算法生成系统参数、承诺参数以及交 易发送方和交易接受方的公私钥,其中:

生成的系统参数

sysPrm=(h,k,n,n

生成的Pedersen承诺参数

pedPrm=(G,p,g

其中,pedPrm表示Pedersen承诺参数,g

本发明实施例中,基于预设算法生成系统参数以及交易发送方和 交易接受方的公私钥,其中:

生成交易发送方私钥的过程为:选择随机数x

生成的交易发送方公钥

本发明实施例中,基于预设算法生成系统参数以及交易发送方和 交易接受方的公私钥,其中:

生成交易接受方私钥的过程为:选择随机数x

生成的交易接受方公钥

本发明实施例中,基于生成的系统参数和公私钥,并结合预设 Paillier加密算法,计算得到交易发送方交易金额密文、交易发送方账 户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易 金额密文,其中:

计算得到的交易发送方交易金额密文

计算得到的交易接受方交易金额密文

计算得到的交易发送方账户原始金额密文

计算得到的交易发送方交易后账户余额密文

其中,T表示交易金额,A表示交易发送方账户原始金额,r

本发明实施例中,给交易金额构造Pedersen承诺,并调用sigma 协议为该承诺和交易发送方交易金额密文中的承诺构造相等性证据, 具体为:

给交易金额构造Pedersen承诺,该承诺记为PedersenC1;

调用sigma协议,为PedersenC1和E

给交易发送方交易后账户余额和交易发送方交易后账户余额明 文随机数构造Pedersen承诺,并调用sigma协议为该承诺和交易发送 方交易后账户余额密文中的承诺构造相等性证据,具体为:

给交易发送方交易后账户余额和交易发送方交易后账户余额明 文随机数构造Pedersen承诺,该承诺记为PedersenC2;

调用sigma协议,为PedersenC2和E

本发明实施例中,基于产生零知识范围证明的函数,给交易发送 方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送 方交易后账户余额密文构造一个交易金额处于特定范围的证据,其 中,构造的两个证据聚合产生:

其中,表示ZRPBT给交易发送方交易金额密文和交易发送方交 易后账户余额密文构造的范围证据,ZRPG表示产生零知识范围证明 的函数,m

本发明实施例中,将计算得到的密文、构造的证据和构造的承诺 发送至区块链节点,具体为:将交易发送方交易金额密文C_ta、交 易接受方交易金额密文C_tb、PedersenC1、PedersenC2、 EquaProofT、EquaProofB和ZRPBT发送至区块链节点。

本发明实施例中,区块链节点的智能合约基于密文、证据和承诺 对交易的合法性进行验证,具体步骤包括:

S601:获取sysPrm、y

S602:基于EquaProofT、PedersenC1、E

S603:计算C_td=C_ts/C_ta,并基于EquaProofB、 PedersenC2、E

S604:基于ZRPBT、PedersenC1、PedersenC2和pedPrm,进 行第三次验证,所述第三次验证为调用bulletproof协议的验证功能验 证交易发送方交易金额密文、交易接受方交易金额密文和交易发送方 交易后账户余额密文的范围证据;

S605:进行交易是否合法的判断,当且仅当第一次验证、第二次 验证和第三次验证均成立时,则交易合法,则获取交易接受方账户原 始金额密文和交易金额,得到交易接受方交易后账户余额密文,并将 交易发送方交易后账户余额、交易接受方交易后账户余额密文和其它 交易数据写入账本,反之,则交易不合法,交易失败。

交易接受方读取账本,获得发给自己的交易,解密获得交易金额 和随机数,然后用这两个数据重新计算一遍交易的密文,如果所计算 密文和链上的交易密文有任何不吻合,则说明交易非法,则与该笔交 易关联的后续事宜(比如线下发货)不进行。由于交易金额大于0的 断言已经得到证明,这样交易发起方已经转出了大于0的金额,由于 交易非法是不能获得交易所带来的期望结果,故交易发起方构造不合 法的密文只会给自己造成损失。

进一步的,本发明实施例中,交易接受方构造证据并发起申诉, 区块链节点的智能合约对申述是否属实进行验证,具体步骤包括:

S701:交易接受方构造证据,构造的证据为:

InvalidCipherProof=ICPG(C_ta,C_tb,(m,r

mL(k)=L(E

其中,m表示明文,r

S702:将TXID、InvalidCipherProof、m和r

S703:智能合约根据TXID读取交易发送方交易金额密文和交易 接受方交易金额密文,验证m、r

从博弈论角度分析,交易发起方不应该主动作恶构造非法的交易 密文,所以本发明实施例不对交易密文成分的合法性进行证明,这进 一步减少链上数据量以及计算量。

本发明的基于Paillier的同态加密方法,通过以Paillier算法为基 础,并对Paillier算法进行改造以支持全网用户密文数据的同态,且 密文可以直接解密,直接支持余额的范围证明,使得密文可监督,无 需再进行解密再加密等繁杂流程;进一步的,由于交易明文和随机数 都可以解密,交易接受方可以用明文和随机数直接校验密文的正确 性,即交易发起方作恶会被检测出来,而且有代价。根据博弈论理论, 证明者不会作恶,这样就可以不对密文构成的合法性进行检查,从而 进一步减少链上数据和计算量,提高系统的效率。且即使出现了非法 密文,交易接受方提交交易号、金额明文和随机数,智能合约验证确实有问题,则恢复交易接受方的交易余额密文即可,不影响交易接受 方的后续交易操作。

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

本发明是参照根据本发明实施例的方法、设备(系统)和计算机 程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指 令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/ 或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到 通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备 的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设 备的处理器执行的指令产生用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的装置。

相关技术
  • 基于Paillier和博弈论的区块链交易方法
  • 基于区块链的交易方法及基于区块链的交易系统
技术分类

06120113115217