一种可监管的密态交易金额的生成方法和装置与流程

文档序号:21275138发布日期:2020-06-26 23:12阅读:244来源:国知局
一种可监管的密态交易金额的生成方法和装置与流程

本发明涉及区块链技术领域,尤其涉及一种可监管的密态交易金额的生成方法和装置。



背景技术:

比特币自2008年进入人们的视野以来,历经近十年的发展,各种加密货币纷纷出现,例如门罗币、零币、莱特币等。比特币具有去中心化,分布式记账以及用户身份匿名等优点。但交易的金额是明文传输的,这严重限制了比特币的广泛应用。后来的门罗币、零币等虚拟加密货币利用一些密码技术(比如环签名等特殊数字签名、承诺、零知识证明、同态加密等)来解决交易的隐私保护问题。例如门罗币采用borromean环签名和perdersen承诺技术来实现对交易金额的隐藏,而零币利用zk-snark这种非交互式零知识证明方案对交易身份以及交易金额进行隐藏。

区块链作为加密货币的支撑技术,本质上是利用链式数据结构来验证和存储数据,利用分布式共识机制来生成并更新数据,从而保证全网诚实节点的状态一致性。去中心化、可验证以及防篡改是区块链技术的基本属性。随着对区块链技术的深入研究以及其可能的应用场景的探讨,数据的隐私保护问题显得尤为重要。在区块链系统中,隐私保护主要体现在两个方面:匿名性和秘密性。其中匿名性是指交易发起者和交易接收者的身份隐藏,而秘密性是指交易金额的隐藏。目前比特币系统只能对交易提供弱的匿名性,即交易发起者和交易接收者的真实身份与对应的公钥无关。而门罗币和零币虽然能解决隐私保护问题,但门罗币的证据长度比较大,而零币需要可信任第三方的参与,并且证据生成时间过长。

目前门罗币使用的密码技术包括环签名、承诺、bulletproof等。门罗币是为去中心、完全匿名设计的,因而全隐私保护技术不具备监管功能。门罗币的金额隐藏则采用pedersen承诺和bulletproof范围证明。门罗币的环签名技术用于隐藏真实的未花费交易输出(utxo),并且未花费交易输出的数量等于环的个数。当一笔交易的未花费交易输出越多,交易长度、交易的生成时间和验证时间均会增大。

目前零币使用的密码技术主要是zk-snark技术。零币采用哈希对金额进行承诺,每笔交易的输出为金额和接收公钥的承诺;输入则为防双花标识,即对应某个未花费交易输出的金额承诺,此时该防双花标识是该公钥对应的私钥和金额的承诺。

为了隐藏未花费交易输出的金额承诺,零币采用merkle树技术,即将每笔确认过的交易输出承诺作为叶子节点并构造merkle树,然后公开树根,该叶子节点以及用于计算树根的相邻节点作为该叶子节点的认证路径。因此确认的交易数越多,merkle树的高度约大,进而生成交易所需的公钥量和生成时间越长。zk-snark技术需要可信第三方且需要预计算。虽然交易的验证时间很短(5.6ms)且交易长度短,但交易生成时间(2min2s)和生成所需的公钥量(896mb)过于庞大。

另外,现有的门罗币和零币存在每次交易都由交易发送者生成,交易接收者不能生成交易金额。



技术实现要素:

鉴于上述的分析,本发明实施例旨在提供一种可监管的密态交易金额的生成方法和装置,用以解决现有交易生成时间长、不可监管以及每次交易都由交易发送者生成,交易接收者不能生成交易金额的问题。

一方面,本发明实施例提供了一种可监管的密态交易金额的生成方法,包括:通过生成方生成所述密态交易金额;通过验证方接收所述密态交易金额并对所述密态交易金额进行验证;以及通过监管中心对所述密态交易金额进行监管,其中,所述生成方为交易发送者和接收者中的一个,并且所述验证方为所述交易发送者和接收者中的另一个。

上述技术方案的有益效果如下:本发明实施例提供的可监管的密态交易金额的生成方法能够在有隐私保护的前提下,在数字货币中实现了密态交易金额可以由交易发送者或者交易接收者灵活地生成;以及监管中心对密态交易金额可以实施监管。

基于上述方法的进一步改进,生成方生成所述密态交易金额包括:基于监管中心公钥、交易金额和第一随机数生成未花费交易输出,其中,所述未花费交易输出包括加密金额;基于所述未花费交易输出通过第二随机数和第三随机数分别替换所述交易金额和所述第一随机数生成第一中间变量和第二间变量;对所述监管中心公钥、所述未花费交易输出以及所述第一中间变量和所述第二中间变量进行哈希计算并且将计算的哈希值作为承诺值;基于所述第一中间变量、所述第二中间变量、所述承诺值、所述第二随机数和所述第三随机数进行计算以获得证据;以及根据所述加密金额构造金额范围证明以生成密态交易金额,其中,所述密态交易金额包括所述未花费交易输出、所述证据、所述承载值和所述金额范围证明。

基于上述方法的进一步改进,生成方生成所述密态交易金额包括:根据公式(f,c)=(r*z,r*hm+v*gm)计算所述未花费交易输出(f,c),其中,c为加密金额;根据公式rf=lr*z,rc=lr*hm+lv*gm计算所述第一中间变量rf和所述第二中间变量rc;根据公式c=hash(gm||hm||z||f||c||rf||rc)计算所述哈希值c;根据公式tr=lr–c*r,tv=lv–c*v计算以获得证据(tr,tv,c);以及根据所述加密金额c=r*hm+v*gm构造金额范围证明rangeproof,以生成所述密态交易金额(f,c,tr,tv,c,rangeproof),其中,z∈g为监管中心的公钥,z=z*hm,z∈rz*q;hm和gm是素数阶椭圆曲线点群g的两个生成元;r、lr和lv分别为所述第一随机数、所述第二随机数和所述第三随机数并且r、lr和lv∈z*q;v为交易金额;tr和tv分别为第一中间变量和第二中间变量;zq*为zq\{0},q群g的阶,zq为模q的整数环;hash为抗碰撞哈希函数;∈r为元素从集合中随机选取。

上述进一步改进方案的有益效果是:在每次交易过程中,能够由交易发送者或者交易接收者灵活地生成密态交易金额,相比于现有的环签名、merkle树和zk-snark技术,大幅度缩短了密态交易金额生成时间。

基于上述方法的进一步改进,验证方接收所述密态交易金额并对所述密态交易金额进行验证包括:所述验证方通过安全信道接收所述第一随机数;基于所述第一随机数、监管中心公钥和所述密态交易金额中的未花费交易输出,通过穷举法求解离散对数以获得所述交易金额。

基于上述方法的进一步改进,验证方接收所述密态交易金额并对所述密态交易金额进行验证还包括:根据所述密态交易金额中的证据计算所述第二随机数和所述第三随机数;基于所述监管中心公钥、所述第二随机数和所述第三随机数计算所述第一中间变量和所述第二中间变量;对所述监管中心公钥、所述密态交易金额中的所述未花费交易输出以及计算的所述第一中间变量和所述第二中间变量进行哈希计算并验证计算的哈希值与所述密态交易金额中的承诺值是否相等;以及通过确定计算的交易金额是否在所述金额范围证明内来验证所述金额范围证明是否合法。

基于上述方法的进一步改进,验证方接收所述密态交易金额并对所述密态交易金额进行验证包括:根据所述未花费交易输出的公式(f,c)=(r*z,r*hm+v*gm)通过穷举法求解离散对数以获得所述交易金额v;根据证据(tr,tv,c)通过以下公式计算所述第二随机数lr和所述第三随机数lv:tr=lr–c*r,tv=lv–c*v;根据以下公式计算所述第一中间变量rf和所述第二中间变量rc:rf=lr*z,rc=lr*hm+lv*gm;根据公式hash(gm||hm||z||f||c||rf||rc)计算所述哈希值;以及确定所述交易金额v是否在所述金额范围证明rangeproof内以验证所述金额范围证明rangeproof是否合法,其中,所述密态交易金额为(f,c,tr,tv,c,rangeproof);z∈g为监管中心的公钥,z=z*hm,z∈rz*q;hm和gm是素数阶椭圆曲线点群g的两个生成元;r为第一随机数并且r、lr和lv∈z*q;所述交易金额v为在0≤v<264范围内的整数;tr和tv为中间变量;zq*为zq\{0},q群g的阶,zq为模q的整数环;hash为抗碰撞哈希函数;∈r为元素从集合中随机选取。

上述进一步改进方案的有益效果是:在每次交易过程中,由交易发送者或者交易接收者对密态交易金额进行验证,由于这种方法生成密态交易金额的交易生成时间短,所以相应地缩短了密态交易金额的验证时间。

基于上述方法的进一步改进,监管中心对所述密态交易金额进行监管包括:从区块链上获取所述密态交易金额;验证所述密态交易金额的合法性;以及根据所述监控中心私钥对所述未花费交易输出进行解密。

基于上述方法的进一步改进,验证所述密态交易金额的合法性包括:验证计算的哈希值与所述密态交易金额中的承诺值是否相等;以及通过确定计算的交易金额是否在所述金额范围证明内来验证所述金额范围证明是否合法。

基于上述方法的进一步改进,根据所述监控中心私钥对所述未花费交易输出进行解密包括:根据公式f=r*z=r*z*hm,计算获得r*hm=z-1*f的值;根据c=r*hm+v*gm,计算获得v*gm=c-r*hm的值;根据v*gm以及v∈{0,…,264},通过直接搜索得到明文交易金额v的值,其中,(f,c)为所述密态交易金额中的未花费交易输出,z为所述监控中心公钥,z为所述监控中心私钥;r为第一随机数;hm和gm是素数阶椭圆曲线点群g的两个生成元。

上述进一步改进方案的有益效果是:必要时监管中心可以对密态交易金额进行合法性验证和解密,以对密态交易金额实施监管。

另一方面,本发明实施例提供了一种可监管的密态交易金额的生成装置,包括:生成模块,位于生成方处并用于生成所述密态交易金额;验证模块,位于验证方处并用于通过验证方接收所述密态交易金额并对所述密态交易金额进行验证;以及监管模块,位于监管中心处,用于对所述密态交易金额进行监管,其中,所述生成方为交易发送者和接收者中的一个,并且所述验证方为所述交易发送者和接收者中的另一个。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、在有隐私保护的前提下在数字货币中首次实现了可以灵活地由交易发送者或者交易接收者生成密态交易金额;

2、相比于现有的环签名、merkle树和zk-snark技术,本发明缩短了密态交易金额的生成时间;以及

3、必要时监管中心可以对密态交易金额进行合法性验证和解密,以对密态交易金额实施监管。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为根据本发明实施例的可监管的密态交易金额的生成方法的流程图;

图2为根据本发明实施例的生成方生成密态交易金额的流程图;

图3为根据本发明实施例的验证方接收密态交易金额并对密态交易金额进行验证的流程图;

图4为根据本发明实施例的监管中心对密态交易金额进行监管的流程图;以及

图5为根据本发明实施例的可监管的密态交易金额的生成装置的框图。

附图标记:

502-生成模块;504-验证模块;506-监管模块;

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

本发明的一个具体实施例,公开了一种可监管的密态交易金额的生成方法。如图1所示,可监管的密态交易金额的生成方法包括:步骤s102,通过生成方生成密态交易金额,其中,生成方为交易发送者和接收者中的一个;步骤s104,通过验证方接收密态交易金额并对密态交易金额进行验证,其中,验证方为交易发送者和接收者中的另一个;以及步骤s106,通过监管中心对密态交易金额进行监管。

与现有技术相比,本实施例提供的可监管的密态交易金额的生成方法能够在有隐私保护的前提下,在数字货币中实现了交易金额可以由交易发送者或者交易接收者灵活地生成;以及监管中心对所述密态交易金额可以实施监管。

下文中,将参照图1至图4对可监管的密态交易金额的生成方法进行详细描述。

可监管的密态交易金额的生成方法包括:步骤s102,通过生成方生成密态交易金额,其中,生成方为交易发送者和接收者中的一个。如图2所示,生成方生成密态交易金额包括:步骤s202,基于监管中心公钥、交易金额和第一随机数生成未花费交易输出,其中,未花费交易输出包括加密金额;步骤s204,基于未花费交易输出通过第二随机数和第三随机数分别替换交易金额和第一随机数生成第一中间变量和第二间变量;步骤s206,对监管中心公钥、未花费交易输出以及第一中间变量和第二中间变量进行哈希计算并且将计算的哈希值作为承诺值;步骤s208,基于第一中间变量、第二中间变量、承诺值、第二随机数和第三随机数进行计算以获得证据;以及步骤s210,根据加密金额构造金额范围证明以生成密态交易金额,其中,密态交易金额包括未花费交易输出、证据、承载值和金额范围证明。

具体地,生成方生成密态交易金额包括:根据公式(f,c)=(r*z,r*hm+v*gm)计算未花费交易输出(f,c),其中,c为加密金额;根据公式rf=lr*z,rc=lr*hm+lv*gm计算第一中间变量rf和第二中间变量rc;根据公式c=hash(gm||hm||z||f||c||rf||rc)计算哈希值c;根据公式tr=lr–c*r,tv=lv–c*v计算以获得证据(tr,tv,c);以及根据加密金额c=r*hm+v*gm构造金额范围证明rangeproof,以生成密态交易金额(f,c,tr,tv,c,rangeproof),其中,z∈g为监管中心的公钥,z=z*hm,z∈rz*q;hm和gm是素数阶椭圆曲线点群g的两个生成元;r、lr和lv分别为第一随机数、第二随机数和第三随机数并且r、lr和lv∈z*q;v为交易金额;tr和tv分别为第一中间变量和第二中间变量;zq*为zq\{0},q群g的阶,zq为模q的整数环;hash为抗碰撞哈希函数;∈r为元素从集合中随机选取。

可监管的密态交易金额的生成方法还包括:步骤s104,通过验证方接收密态交易金额并对密态交易金额进行验证,其中,验证方为交易发送者和接收者中的另一个。如图3所示,验证方接收密态交易金额并对密态交易金额进行验证包括:步骤s302,验证方通过安全信道接收第一随机数;步骤s304,基于第一随机数、监管中心公钥和密态交易金额中的未花费交易输出,通过穷举法求解离散对数以获得交易金额;步骤306,根据密态交易金额中的证据计算第二随机数和第三随机数;步骤308,基于监管中心公钥、第二随机数和第三随机数计算第一中间变量和第二中间变量;步骤s310,对监管中心公钥、密态交易金额中的未花费交易输出以及计算的第一中间变量和第二中间变量进行哈希计算并验证计算的哈希值与密态交易金额中的承诺值是否相等;以及步骤s312,通过确定计算的交易金额是否在金额范围证明内来验证金额范围证明是否合法。

具体地,验证方接收密态交易金额并对密态交易金额进行验证包括:根据未花费交易输出的公式(f,c)=(r*z,r*hm+v*gm)通过穷举法求解离散对数以获得交易金额v;根据证据(tr,tv,c)通过以下公式计算第二随机数lr和第三随机数lv:tr=lr–c*r,tv=lv–c*v;根据以下公式计算第一中间变量rf和第二中间变量rc:rf=lr*z,rc=lr*hm+lv*gm;根据公式hash(gm||hm||z||f||c||rf||rc)计算哈希值;以及确定交易金额v是否在金额范围证明rangeproof内以验证金额范围证明rangeproof是否合法,其中,密态交易金额为(f,c,tr,tv,c,rangeproof);z∈g为监管中心的公钥,z=z*hm,z∈rz*q;hm和gm是素数阶椭圆曲线点群g的两个生成元;r为第一随机数并且r、lr和lv∈z*q;交易金额v为在0≤v<264范围内的整数;tr和tv为中间变量;zq*为zq\{0},q群g的阶,zq为模q的整数环;hash为抗碰撞哈希函数;∈r为元素从集合中随机选取。

与现有技术相比,本实施例提供的密态交易金额的生成方法在每次交易过程中,由交易发送者或者交易接收者对密态交易金额进行验证,由于这种方法生成密态交易金额的交易生成时间短,所以相应地也缩短了密态交易金额的验证时间

可监管的密态交易金额的生成方法还包括:步骤s106,通过监管中心对密态交易金额进行监管。如图4所示,监管中心对密态交易金额进行监管包括:步骤s402,从区块链上获取密态交易金额;步骤s404,验证密态交易金额的合法性;以及步骤s406,根据监控中心私钥对未花费交易输出进行解密。具体地。验证密态交易金额的合法性包括:验证计算的哈希值与密态交易金额中的承诺值是否相等;以及通过确定计算的交易金额是否在金额范围证明内来验证金额范围证明是否合法。

具体地,根据监控中心私钥对未花费交易输出进行解密包括:根据公式f=r*z=r*z*hm,计算获得r*hm=z-1*f的值;根据c=r*hm+v*gm,计算获得v*gm=c-r*hm的值;根据v*gm以及v∈{0,…,264},通过直接搜索得到明文交易金额v的值,其中,(f,c)为密态交易金额中的未花费交易输出,z为监控中心公钥,z为监控中心私钥;r为第一随机数;hm和gm是素数阶椭圆曲线点群g的两个生成元。

本实施例提供的可监管的密态交易金额的生成方法必要时监管中心可以对密态交易金额进行合法性验证和解密,以对密态交易金额实施监管。

在日常使用支付宝或者微信支付的时候,可以是发送方生成交易金额,也可以是接收方输入付款金额,但是到目前为止我们看到所有的数字货币都不支持这种方式,只能由交易发送方生成交易金额并发给接收方,而且微信和支付宝是没有隐私保护的,也不是真正的数字货币。本发明利用新的方法生成交易金额,该方法无论是交易发送方还是接收方都可以实施,而另一方总可以验证并计算出实际的交易金额。这种生成交易金额的方法灵活方便,更贴近日常生活经验。更进一步地,因为在交易过程中交易金额是密态的,我们还同时能进行密态金额的监管。

下文中,以具体示例的方式对可监管的密态交易金额的生成方法进行详细描述。

1、初始化

设监管中心的公钥为z∈g,这里z=z*hm,z∈rz*q。

2、生成密态交易金额

设交易金额为v,其隐私保护如下:

(1)随机选取r∈z*q,计算(f,c)=(r*z,r*hm+v*gm);

(2)随机选取lr,lv∈z*q,计算rf=lr*z,rc=lr*hm+lv*gm;

(3)计算c=hash(gm||hm||z||f||c||rf||rc);

(4)计算tr=lr–c*r,tv=lv–c*v,得到证据(tr,tv,c);

(5)根据c=r*hm+v*gm,构造范围证明,范围证明结果记为rangeproof;

(6)则(f,c,tr,tv,c,rangeproof)为金额v的密态可验证数据。

3、验证密态交易金额

这个过程可以由交易发送者生成,也可以由交易接收者来完成。无论由哪一方生成密态交易金额数据,都需要把r通过安全信道秘密发送给对方,由对方进行金额的验证。验证过程如下:

(1)收到r之后,由于v是一个比较小的整数,可以由生成方告知,也可以由式子(f,c)=(r*z,r*hm+v*gm)通过穷举法求解离散对数得到v的值。

(2)由于证据(tr,tv,c)已知,可以从下列式子:

tr=lr–c*r,

tv=lv–c*v,求解得到变量lr和lv的值。

(3)接着可以计算:

rf=lr*z,

rc=lr*hm+lv*gm。

(4)然后判断c和hash(gm||hm||z||f||c||rf||rc)相不相等。

(5)最后验证范围证明rangeproof是否合法。

4、实施监管(需要时)

所有交易过程都是使用密态金额进行交易的,(f,c,tr,tv,c,rangeproof)为金额v的密态可验证数据,其中(f,c)=(r*z,r*hm+v*gm)。监管中心在验证密态金额合法性之后,根据私钥z对(f,c)进行解密。

(1)首先从f=r*z=r*z*hm可以计算得到r*hm=z-1*f;

(2)然后从c=r*hm+v*gm可以计算得到v*gm=c-r*hm的值。

于是最后得到v*gm。由于v∈{0,…,264},是比较小的离散对数,可以通过直接搜索得到明文v的值,也就是金额的明文。

本发明的另一个具体实施例,公开了一种可监管的密态交易金额的生成装置,包括:生成模块502,位于生成方处并用于生成密态交易金额;验证模块504,位于验证方处并用于通过验证方接收密态交易金额并对密态交易金额进行验证;以及监管模块506,位于监管中心处,用于对密态交易金额进行监管,其中,生成方为交易发送者和接收者中的一个,并且验证方为交易发送者和接收者中的另一个。

可监管的密态交易金额的生成装置还包括多个其他模块,由于可监管的密态交易金额的生成装置与可监管的密态交易金额的生成方法相对应,所以为了避免赘述,本文中没有对多个其他模块进行详细描述。

与现有技术相比,本发明实施例提供的可监管的密态交易金额的生成方法和装置至少可实现如下有益效果之一:

1、在有隐私保护的前提下在数字货币中首次实现了可以灵活地由交易发送者或者交易接收者生成密态交易金额,相应地,可以由交易接收者或者交易发送者对密态交易金额进行验证;

2、相比于现有的环签名、merkle树和zk-snark技术,本发明缩短了密态交易金额的生成时间;以及

3、必要时监管中心可以对密态交易金额进行合法性验证和解密,以对密态交易金额实施监管。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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