CN110599164B - 一种可监管的链下任意收款方快速支付方法 - Google Patents
一种可监管的链下任意收款方快速支付方法 Download PDFInfo
- Publication number
- CN110599164B CN110599164B CN201910822235.1A CN201910822235A CN110599164B CN 110599164 B CN110599164 B CN 110599164B CN 201910822235 A CN201910822235 A CN 201910822235A CN 110599164 B CN110599164 B CN 110599164B
- Authority
- CN
- China
- Prior art keywords
- branch
- user
- transaction
- business
- private key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/407—Cancellation of a transaction
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种可监管的链下任意收款方快速支付方法。所述方法包括:央行生成系统公共参数、央行的私钥和公钥;央行分发密钥给商行,商行分发密钥给支行,支行分发密钥给用户;用户对交易额签名并加密发送给支行;支行解密并验证签名有效性;若有效,则接受交易并通知收款方;若无效,则拒绝。支行对所有交易单签名并发送给商行,商行验证交易单签名的有效性;若有效,则存储到区块链上,若无效,则拒绝。本发明方法通过分级密钥分发,使得央行能够监管整个交易系统;由于用户交易行为仅由支行完成,所以本发明交易系统与现有中心化系统相兼容,且交易速度与现有的中心化系统相等,能够满足快速交易需求。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种可监管的链下任意收款方快速支付方法。
背景技术
近十年来,分布式密码货币的影响力不断增长。这些密码货币的底层创新是其共识机制,允许多个用户维护其区块链系统。其中,密码货币的一个最具潜力的应用方向为微支付,即快速完成小额支付。微支付能够应用于与物联网、WiFi共享连接等方向。
但是,基于区块链的密码货币系统具有重大的性能缺陷。首先,每个交易在存储到区块链系统之前均需要被全网节点验证。其次,区块链系统上的共识机制使得确认一笔交易需要耗费大量的时间。最后,目前旷工仅处理具有高额交易费的交易单。如果交易费接近或超过交易额本身,则小额支付没有任何实现的可能。对此,一个潜在的解决方案为离链支付。离链支付允许用户快速完成交易而不需要把交易单存储到区块链系统上,支付通道通过智能合约(即哈希时间锁),能够完成任意复杂的交易规则;但是其支付通道仍然需要交易路径费用,且交易速度取决于路径长度,并要求各个中介均在线。如果中介突然拒绝合作,则交易失败,仍无法满足快速支付需求。
Defrawy等人基于安全多方计算设计出一个多个服务器协同存储账本和监管的方案;该方案中,用户仅需要到身份认证服务器上认证一次,把身份秘密分享给n个服务器;服务器个数需要大于规定的阈值才能联合恢复出用户的身份。但是,这类方案的监管是有限的,而不能从根本上解决区块链系统的严格监管问题。
因此,目前仍没有方案能够解决区块链系统中的监管问题和快速支付问题,而该问题是至关重要的。此外,现有的区块链系统,包括链下快速支付方案,远远不能满足实际应用需求。因此,可监管的链下任意收款方快速支付方案亟待研究。
发明内容
本发明的目的是提供一种可监管的链下任意收款方快速支付方法,以解决目前区块链系统无法实现严格监管和快速交易的问题。
为实现上述目的,本发明提供了如下方案:
一种可监管的链下任意收款方快速支付方法,所述可监管的链下任意收款方快速支付方法基于一种可监管的链下任意收款方快速支付系统;所述可监管的链下任意收款方快速支付系统包括央行、商行、支行和用户;所述方法包括:
所述央行根据获取的安全参数生成公共参数、央行私钥和央行公钥;
所述央行根据所述央行私钥生成商行私钥,并将所述商行私钥分发给所述商行;
所述商行根据所述商行私钥生成商行公钥及支行私钥,并将所述支行私钥分发给所述支行;
所述支行根据所述支行私钥生成支行公钥及用户私钥,并将所述用户私钥分发给所述用户;
所述用户根据所述用户私钥生成用户公钥;
所述用户根据所述用户私钥和当前交易的付款信息生成交易单签名密文,并将所述交易单签名密文发送至所述支行;
所述支行对所述交易单签名密文进行解密并根据所述用户公钥验证签名是否有效;
若所述支行验证签名无效,则所述支行拒绝交易;
若所述支行验证签名有效,则所述支行接受交易并通知收款方;
所述支行对所有交易单签名并发送至所述商行,所述商行验证交易单签名的有效性;
若所述商行验证所述交易单签名有效,所述商行将与所述交易单签名对应的交易单存储到区块链上;
若所述商行验证所述交易单签名无效,所述商行拒绝所述交易单签名对应的交易单。
可选的,在所述用户根据所述用户私钥生成用户公钥之后,还包括:
所述央行根据所述央行私钥和所述商行公钥生成所述商行的商行公钥证书;
所述央行根据所述央行私钥和所述支行公钥生成所述支行的支行公钥证书;
所述支行根据所述支行私钥和所述用户公钥生成所述用户的用户公钥证书。
可选的,所述央行根据获取的安全参数生成公共参数、央行私钥和央行公钥,具体包括:
所述央行获取安全参数1λ;
所述央行根据所述安全参数1λ生成公共参数Params;
所述央行根据所述安全参数1λ和所述公共参数Params,采用密钥生成算法KGen生成央行私钥SK0和央行公钥PK0。
可选的,所述央行根据所述央行私钥生成商行私钥,具体包括:
所述央行获取所述商行的商行身份ID1;
所述央行根据所述央行私钥SK0和所述商行身份ID1,采用哈希函数生成随机数作为所述商行的商行私钥SK1。
可选的,所述商行根据所述商行私钥生成商行公钥及支行私钥,具体包括:
所述商行根据所述商行私钥SK1和所述公共参数Params,采用密钥生成算法KGen生成所述商行的商行公钥PK1;
所述商行获取所述支行的支行身份ID2;
所述商行根据所述商行私钥SK1和所述支行身份ID2,采用哈希函数生成随机数作为所述支行的支行私钥SK2。
可选的,所述支行根据所述支行私钥生成支行公钥及用户私钥,具体包括:
所述支行根据所述支行私钥SK2和公共参数Params,采用密钥生成算法KGen生成所述支行的支行公钥PK2;
所述支行获取所述用户的用户身份ID3;
所述支行根据所述支行私钥SK2和所述用户身份ID3,采用哈希函数生成随机数作为所述用户的用户私钥SK3。
可选的,所述用户根据所述用户私钥生成用户公钥,具体包括:
所述用户根据所述用户私钥SK3和所述公共参数Params,采用密钥生成算法KGen生成所述用户的用户公钥PK3。
可选的,所述用户根据所述用户私钥和当前交易的付款信息生成交易单签名密文,具体包括:
所述用户获取当前交易的付款信息pay;所述付款信息pay包括付款金额m、用户账户地址ID3、收款方账户地址ID'3以及时间戳T;
所述用户根据所述用户私钥SK3及所述付款信息pay,采用签名算法sign生成付款签名δ3;
所述用户根据所述付款签名δ3与对应的付款信息pay组成交易单签名对(pay,δ3);
所述用户根据所述支行公钥PK2和所述交易单签名对(pay,δ3),采用加密算法Enc生成交易单签名密文C。
可选的,所述支行对所述交易单签名密文进行解密并根据所述用户公钥验证签名是否有效,具体包括:
所述支行采用解密算法Dec对所述交易单签名密文C进行解密,获得交易单签名对(pay,δ3);
所述支行根据所述用户公钥PK3,采用验证算法Verify验证所述交易单签名对(pay,δ3)是否有效;
若所述验证算法Verify的输出为Valid,则确定签名有效;
若所述验证算法Verify的输出为Invalid,则确定签名无效。
可选的,所述支行对所有交易单签名并发送至所述商行,所述商行验证交易单签名的有效性,具体包括:
所述支行根据所述支行私钥SK2和所有交易单Pay=(payi,δi),1≤i≤n,采用签名算法sign生成结算单签名σ;其中(payi,δi)表示第i个交易单;n为交易单数量;
所述支行根据所述结算单签名σ和所有交易单Pay=(payi,δi)生成结算单签名对(Pay,σ);
所述支行将所述结算单签名对(Pay,σ)广播到区块链中;
所述商行根据所述结算单签名对(Pay,σ)以及对应的支行公钥PK2,采用验证算法Verify验证所述结算单签名对(Pay,σ)是否有效;
若所述验证算法Verify的输出为Valid,则确定交易单签名有效;
若所述验证算法Verify的输出为Invalid,则确定交易单签名无效。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供一种可监管的链下任意收款方快速支付方法,所述方法包括:央行生成系统公共参数、央行的私钥和公钥;央行分发密钥给商行,商行分发密钥给支行,支行分发密钥给用户;商行和支行到央行注册并获得公钥证书,用户到支行注册并获得公钥证书;用户对交易额签名并加密发送给支行;支行解密并验证签名有效性;若有效,则接受交易并通知收款方;若无效,则拒绝。支行对所有交易单签名并发送给商行,商行验证交易单签名的有效性;若有效,则存储到区块链上,若无效,则拒绝。本发明通过分级密钥分发,使得央行能够监管整个交易系统;由于用户交易行为仅由支行完成,所以本发明交易系统与现有中心化系统相兼容,且交易速度与现有的中心化系统相等,能够满足快速交易需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的可监管的链下任意收款方快速支付方法的流程示意图;
图2为本发明提供的可监管的链下任意收款方快速支付系统的结构示意图;
图3为本发明提供的可监管的链下任意收款方快速支付方法与基础密码学工具的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种可监管的链下任意收款方快速支付方法,以解决目前区块链系统无法实现严格监管和快速交易的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明提供的可监管的链下任意收款方快速支付方法的流程示意图;图2为本发明提供的可监管的链下任意收款方快速支付系统的结构示意图。参见图1和图2,本发明提供的可监管的链下任意收款方快速支付方法,基于一种可监管的链下任意收款方快速支付系统;如图2所示,所述可监管的链下任意收款方快速支付系统中包括4类实体:央行、商行、支行和用户。其中,各个实体的密钥(私钥,公钥)可以表示为(SK,PK)。图2中Tx1、Tx2、Tx3、Tx4表示4个交易单;H()表示哈希函数;Pre:H()表示对上一个区块计算哈希函数值;BankInfo表示商行和支行的基本信息,例如商行和支行的公钥;TransMerkle表示交易单的Merkle根,即对多个交易单计算哈希函数,计算出一个最终的哈希函数值。
如图1所示,所述可监管的链下任意收款方快速支付方法具体包括:
步骤100:生成系统公共参数、央行的私钥和公钥。
所述央行根据获取的安全参数生成公共参数、央行私钥和央行公钥,具体包括:
步骤1.1:所述央行获取安全参数1λ。
步骤1.2:所述央行根据所述安全参数1λ生成公共参数Params。
所述央行输入包括安全参数1λ,输出包括系统的公共参数Params。
步骤1.3:所述央行根据所述安全参数1λ和所述公共参数Params,采用密钥生成算法KGen生成央行私钥SK0和央行公钥PK0。
所述央行运行密钥生成算法KGen,输入包括安全参数1λ和公共参数Params,输出包括公钥和私钥,表示如下:
(PK0,SK0)←KGen(1λ,Params)。
步骤200:央行分发密钥给商行,商行分发密钥给支行,支行分发密钥给用户。
所述步骤200具体包括:
步骤2.1:所述央行根据所述央行私钥生成商行私钥,并将所述商行私钥分发给所述商行,具体包括:
所述央行获取所述商行的商行身份ID1。
所述央行根据所述央行私钥SK0和所述商行身份ID1,采用哈希函数生成随机数作为所述商行的商行私钥SK1,具体过程为:
所述央行运行哈希函数Hash,哈希函数Hash的输入包括央行私钥SK0和商行身份ID1,输出包括随机数Rand1作为商行的私钥SK1,表示如下:
SK1←Rand1←Hash(SK0,ID1)。
所述央行将所述商行私钥SK1分发给所述商行。
步骤2.2:所述商行根据所述商行私钥生成商行公钥及支行私钥,并将所述支行私钥分发给所述支行,具体包括:
所述商行根据所述商行私钥SK1和所述公共参数Params,采用密钥生成算法KGen生成所述商行的商行公钥PK1;具体过程为:
所述商行运行密钥生成算法KGen,输入包括所述商行私钥SK1和公共参数Params,输出包括商行公钥PK1,表示如下:
PK1←KGen(SK1,Params)。
所述商行获取所述支行的支行身份ID2。
所述商行根据所述商行私钥SK1和所述支行身份ID2,采用哈希函数生成随机数作为所述支行的支行私钥SK2,具体过程为:
所述商行运行哈希函数Hash,输入包括商行私钥SK1和支行身份ID2,输出包括随机数Rand2作为支行的私钥SK2,表示如下:
SK2←Rand2←Hash(SK1,ID2)。
所述商行将所述支行私钥SK2分发给所述支行。
步骤2.3:所述支行根据所述支行私钥生成支行公钥及用户私钥,并将所述用户私钥分发给所述用户,具体包括:
所述支行根据所述支行私钥SK2和公共参数Params,采用密钥生成算法KGen生成所述支行的支行公钥PK2;具体过程为:
所述支行运行密钥生成算法KGen,输入包括所述支行私钥SK2和公共参数Params,输出包括支行公钥PK2,表示如下:
PK2←KGen(SK2,Params)。
所述支行获取所述用户的用户身份ID3。
所述支行根据所述支行私钥SK2和所述用户身份ID3,采用哈希函数生成随机数作为所述用户的用户私钥SK3,具体过程为:
所述支行运行哈希函数Hash,输入包括支行私钥SK2和用户身份ID3,输出包括随机数Rand3作为用户的私钥SK3,表示如下:
SK3←Rand3←Hash(SK2,ID3)。
步骤2.4:所述用户根据所述用户私钥生成用户公钥;
所述用户根据所述用户私钥SK3和所述公共参数Params,采用密钥生成算法KGen生成所述用户的用户公钥PK3,具体过程为:
所述用户运行密钥生成算法KGen,输入包括所述用户私钥SK3和公共参数Params,输出包括用户公钥PK3,表示如下:
PK3←KGen(SK3,Params)。
步骤300:商行和支行到央行注册并获得公钥证书,用户到支行注册并获得公钥证书。
在所述步骤2.4所述用户根据所述用户私钥生成用户公钥之后,还包括:
步骤3.1:所述央行根据所述央行私钥和所述商行公钥生成所述商行的商行公钥证书;具体过程为:
所述央行运行签名算法Sign,输入包括所述央行私钥SK0和所述商行公钥PK1,输出包括所述商行公钥证书Cert1,表示如下:
Cert1←Sign(SK0,PK1)。
步骤3.2:所述央行根据所述央行私钥和所述支行公钥生成所述支行的支行公钥证书;具体过程为:
所述央行运行签名算法Sign,输入包括所述央行私钥SK0和所述支行公钥PK2,输出包括所述支行公钥证书Cert2,表示如下:
Cert2←Sign(SK0,PK2)。
步骤3.3:所述支行根据所述支行私钥和所述用户公钥生成所述用户的用户公钥证书;具体过程为:
所述支行运行签名算法Sign,输入包括所述支行私钥SK2和所述用户公钥PK3,输出包括所述用户公钥证书Cert3,表示如下:
Cert3←Sign(SK2,PK3)。
步骤400:用户对交易额签名并加密发送给支行。
所述用户根据所述用户私钥和当前交易的付款信息生成交易单签名密文,并将所述交易单签名密文发送至所述支行;具体包括:
步骤4.1:所述用户获取当前交易的付款信息pay;所述付款信息pay包括付款金额m、用户账户地址ID3、收款方账户地址ID'3以及时间戳T;
步骤4.2:所述用户根据所述用户私钥SK3及所述付款信息pay,采用签名算法sign生成付款签名δ3;具体过程为:
所述用户运行签名算法Sign,输入包括用户私钥SK3、付款金额m、其账户地址ID3、收款方账户地址ID'3以及时间戳T,输出包括付款签名δ3,表示如下:
δ3←Sign(SK3,pay),其中,pay=(m,ID3,ID'3,T)。
步骤4.3:所述用户根据所述付款签名δ3与对应的付款信息pay组成交易单签名对(pay,δ3)。
步骤4.4:所述用户根据所述支行公钥PK2和所述交易单签名对(pay,δ3),采用加密算法Enc生成交易单签名密文C;具体过程为:
所述用户运行加密算法Enc,输入包括所述支行公钥PK2和付款签名对(pay,δ3),输出包括交易单签名的密文C,表示如下:
C←Enc(PK2,pay,δ3)。
步骤500:支行解密并验证签名有效性。
所述支行对所述交易单签名密文进行解密并根据所述用户公钥验证签名是否有效;具体包括:
步骤5.1:所述支行采用解密算法Dec对所述交易单签名密文C进行解密,获得交易单签名对(pay,δ3);具体过程为:
所述支行运行解密算法Dec,输入包括所述支行的私钥SK2和交易单签名的密文C,输出包括交易单签名对(pay,δ3),表示为:
(pay,δ3)←Dec(SK2,C)。
步骤5.2:所述支行根据所述用户公钥PK3,采用验证算法Verify验证所述交易单签名对(pay,δ3)是否有效;具体过程如下:
所述支行运行验证算法Verify,输入包括交易单签名对(pay,δ3)以及对应的用户公钥PK3,输出包括有效性判断结果Valid/Invalid,表示为:
Valid/Invalid←Verify(PK3,pay,δ3)。
步骤5.3:若所述验证算法Verify的输出为Valid,则确定签名有效;
步骤5.4:若所述验证算法Verify的输出为Invalid,则确定签名无效。
步骤600:若无效,则拒绝交易。
若所述支行验证签名无效,则所述支行拒绝交易。
步骤700:若有效,则接受交易并通知收款方。
若所述支行验证签名有效,则所述支行接受交易并通知收款方。
步骤800:支行对所有交易单签名并发送给商行。
所述支行对所有交易单签名并发送至所述商行,具体包括:
步骤8.1:所述支行根据所述支行私钥SK2和所有交易单Pay=(payi,δi),1≤i≤n,采用签名算法sign生成结算单签名σ;具体过程为:
所述支行运行签名算法Sign,输入包括支行私钥SK2和所有交易单(payi,δi),1≤i≤n,输出包括结算单签名σ,表示为:
σ←Sign(SK2,Pay),其中Pay=(payi,δi),1≤i≤n;
其中(payi,δi)表示第i个交易单;n为交易单数量。
步骤8.2:所述支行根据所述结算单签名σ和所有交易单Pay=(payi,δi)生成结算单签名对(Pay,σ)。
步骤8.3所述支行将所述结算单签名对(Pay,σ)广播到区块链系统中。
步骤900:商行验证交易单签名的有效性。
所述商行验证交易单签名的有效性,具体包括:
步骤9.1:所述商行根据所述结算单签名对(Pay,σ)以及对应的支行公钥PK2,采用验证算法Verify验证所述结算单签名对(Pay,σ)是否有效;具体过程为:
所述商行运行验证算法Verify,输入包括结算单签名对(Pay,σ)以及对应的支行公钥PK2,输出包括有效性判断结果Valid/Invalid,表示如下:
Valid/Invalid←Verify(PK2,Pay,σ)。
步骤9.2:若所述验证算法Verify的输出为Valid,则确定交易单签名有效;
步骤9.3:若所述验证算法Verify的输出为Invalid,则确定交易单签名无效。
步骤1000:若无效,则拒绝交易单。
若所述商行验证所述交易单签名无效,所述商行拒绝所述交易单签名对应的交易单。
步骤1100:若有效,则存储到区块链上。
若所述商行验证所述交易单签名有效,所述商行将所述交易单签名对应的交易单存储到区块链上。
图3为本发明提供的可监管的链下任意收款方快速支付方法与基础密码学工具的示意图。如图3所示,本发明方法的初始化过程由各行各自独立完成,密钥分发由央行、商行、支行和用户共同完成,注册由由央行、商行、支行和用户共同完成,付款由付款方(用户)完成,收款由支行和用户共同完成,结算由支行和商行共同完成。每个过程均涉及密码学工具,本发明方法需要用到的密码学基础工具包括哈希函数、数字签名和公钥加密。下面结合图3对本发明采用的密码学工具进行具体介绍:
(一)哈希函数(Hash Function)
哈希函数族Hash是一系列函数。其中,每个函数H从定义域{0,1}m映射到值域{0,1}n,使得m≥n,m、n均为整数。正式地,本发明采用的所述哈希函数Hash满足以下三个条件:
(1)确定性:对于一个已知的输入,哈希函数的输出总是包括相同的哈希值:
其中,Pr[]是指概率,x和y是哈希函数的任意两个输入值,H(x)则是计算出来的一个哈希函数值,H(y)是计算出的另一个哈希函数值,这条公式的含义是:任意两个哈希函数值H(x)和H(y),如果这两个哈希函数值相等,则其输入值x和y也是相等的概率为1。
(2)随机性:对任意一个大的输入集合,哈希函数的输出总是包括一个均匀分布的随机数:
(3)抗碰撞性:从哈希函数族Hash中随机取出一个函数H,对任意多项式时间的攻击者A,存在一个可忽略函数Negl(·),使得以下条件成立:
Pr[(x,y)←A(1λ):(x,y∈{0,1}m)∧(x≠y)∧(H(x)=H(y))]≤Negl(λ)
其中,Negl(λ)是在安全参数下λ的可忽略概率。中的A是指攻击者,攻击者的输入为1λ,λ是一个安全参数。(x,y)中的x和y是指攻击者输出的两个值,如果这两个输入值不等,而计算出的哈希函数值相等,则这件事发生的概率可忽略。
(二)数字签名(Digital Signature)
数字签名包括3个算法,即密钥生成算法KGen,签名算法Sign和验证算法Verify,分别用于密钥生成,签名和验证签名。对于一个固定的安全参数λ,这三个算法如下运行:
(1)密钥生成算法:输入包括安全参数λ,输出包括随机私钥SK和一个对应的公钥PK:
(PK,SK)←KGen(1λ)
(2)签名算法:输入包括私钥SK和消息m,该消息m来自某个固定的集合M,输出包括签名σ:
σ←Sign(SK,m)
(3)验证算法:输入包括公钥PK和消息签名对(m,σ),输出包括有效性判断结果Valid/Invalid:
Valid/Invalid←Verify(PK,m,σ)
(三)公钥加密(Public Key Encryption)
公钥加密包括3个算法,即密钥生成算法KGen,加密算法Enc和解密算法Dec,分别用于密钥生成,加密和解密。对于一个固定的安全参数λ,这三个算法如下运行:
(1)密钥生成算法:输入包括安全参数λ,输出包括随机私钥SK和一个对应的公钥PK:
(PK,SK)←KGen(1λ)
(2)加密算法:输入包括公钥PK和消息m,该消息m来自某个固定的集合M,输出包括密文C:
C←Enc(PK,m)
(3)解密算法:输入包括私钥SK和密文C,输出包括明文m:
m←Dec(SK,C)。
实施例
本发明实施例提供的可监管的链下任意收款方快速支付方法,具体包括:
步骤100:生成系统公共参数、央行的私钥和公钥。具体过程为:
所述央行输入包括安全参数1λ,输出包括系统公共参数Params=(g,p,Z/pZ,SHA256);其中p是央行随机选择的一个大素数,p≥2λ,其长度为λ。从群Z/pZ中随机选择生成元g。Z/pZ是一个群,g是群Z/pZ中的生成元。SHA256是一个具体的哈希函数。
所述央行运行密钥生成算法KGen,输入包括安全参数1λ和公共参数Params=(g,p,Z/pZ,SHA256),输出包括央行的公钥和私钥,表示为(y,x)←KGen(1λ,Params),其中y与x的关系为y=gx mod p;其中y为央行公钥,x为央行私钥,mod p是密码学的一个计算方式,令g的x次方除p后的余数等于y,所以密码学记为y=gx mod p。
步骤200:央行分发密钥给商行,商行分发密钥给支行,支行分发密钥给用户。具体过程为:
所述央行运行哈希函数SHA256,输入包括央行私钥SK0=x0和商行身份ID1,输出包括随机数x1作为商行的私钥SK1=x1,表示为:
SK1=x1←SHA256(x0,ID1);
所述商行运行密钥生成算法KGen,输入包括所述商行私钥SK1和公共参数Params,输出包括商行公钥PK1=y1,表示为:
所述商行运行哈希函数SHA256,输入包括商行私钥SK1=x1和支行身份ID2,输出包括随机数x2作为支行的私钥SK2=x2,表示为:
SK2=x2←SHA256(x1,ID2);
所述支行运行密钥生成算法KGen,输入包括所述支行私钥SK2=x2和公共参数Params,输出包括支行公钥PK2=y2,表示为:
所述支行运行哈希函数SHA256,输入包括支行私钥SK2=x2和用户身份ID3,输出包括随机数x3作为用户的私钥SK3,表示如下:
SK3=x3←SHA256(x2,ID3);
所述用户运行密钥生成算法KGen,输入包括所述用户私钥SK3=x3和公共参数Params,输出包括用户公钥PK3=y3,表示如下:
步骤300:商行和支行到央行注册并获得公钥证书,用户到支行注册并获得公钥证书。具体过程为:
步骤400:用户对交易额签名并加密发送给支行。具体过程为:
所述用户运行ElGamal签名算法Sign,选择随机数K4,计算计算其中,pay=(m,ID3,ID'3,T),付款金额m,用户账户地址ID3,收款方账户地址ID'3以及时间戳T,输出包括付款签名(r4,s4)。
所述用户运行ElGamal加密算法Enc,选择随机数u∈Z/(p-1)Z,输入包括所述支行公钥PK2=y2和付款签名对(pay,r4,s4),计算U=gu,其中PAY=(pay,r4,s4),输出包括交易单签名的密文(U,V)。
步骤500:支行解密并验证签名有效性;步骤700:若有效,则接受交易并通知收款方;步骤600:若无效,则拒绝交易。具体过程为:
所述支行运行验证算法Verify,输入包括交易单签名对(pay,r4,s4)以及对应的公钥PK3=y3,计算如果等式成立,则验证算法Verify的输出为Valid,表明签名有效并通知收款方,否则验证算法Verify的输出为Invalid,表明签名无效,支行拒绝交易。
步骤800:支行对所有交易单签名并发送给商行,步骤900:商行验证交易单签名的有效性;步骤1100:若有效,则存储到区块链上,步骤1000:若无效,则拒绝交易单。具体过程为:
所述支行运行ElGamal签名算法Sign,选择随机数K5,计算输入包括私钥SK2=x2和所有交易单(payi,δi),1≤i≤n,计算其中Pay=(payi,δi),1≤i≤n,输出包括结算单签名(r5,s5)。所述支行把结算单签名对(Pay,r5,s5)广播到区块链系统中。
所述商行运行验证算法Verify,输入包括结算单签名对(Pay,r5,s5)以及对应的公钥PK2=y2,计算如果等式成立,则验证算法Verify的输出为Valid,表明交易单签名有效,将对应交易单存储到区块链系统,否则验证算法Verify的输出为Invalid,表明交易单签名无效,商行拒绝该交易单。
本发明实施例中用到的密码学基础工具包括SHA256、ElGamal签名和ElGamal加密。下面对本发明实施例采用的密码学工具SHA256、ElGamal签名和ElGamal加密做具体介绍:
(一)SHA256
SHA256从定义域{0,1}m映射到值域{0,1}256,使得m≥256,m为整数。正式地,哈希函数SHA256满足以下三个条件:
(1)确定性:对于一个已知的输入,SHA256的输出总是包括相同的哈希值:
(2)随机性:对任意一个大的输入集合,SHA256的输出总是包括一个均匀分布的随机数:
(3)抗碰撞性:对任意多项式时间的攻击者A,存在一个可忽略函数Negl(·),使得以下条件成立:
Pr[(x,y)←A(1λ):(x,y∈{0,1}m)∧(x≠y)∧(SHA256(x)=SHA256(y))]≤Negl(λ)
其中,Negl(λ)是在安全参数下λ的可忽略概率。
(二)ElGamal签名(ElGamal Signature)
ElGamal签名包括3个算法,即密钥生成算法KGen,签名算法Sign和验证算法Verify,分别用于密钥生成,签名和验证签名。对于一个固定的安全参数λ,这三个算法如下运行:
(1)密钥生成算法:随机选择一个大素数p,p≥2k,其长度为k。从群Z/pZ中随机选择生成元g。私钥为x∈Z/(p-1)Z,公钥为y=gx mod p。
(2)签名算法:选择随机数K,计算r=gK mod p,计算
s=K-1(SHA256(m,r)-xr)mod(p-1)
则签名为(r,s);m为消息。
(3)验证算法:输入包括公钥y和消息签名对(m,r,s),判断以下等式是否成立:
gSHA256(m,r)=yrrs mod p
如果等式成立,则验证算法输出为有效(Valid),否则验证算法输出为无效(Invalid)。
(三)ElGamal加密(ElGamal Encryption)
ElGamal加密包括3个算法,即密钥生成算法KGen,加密算法Enc和解密算法Dec,分别用于密钥生成,加密和解密。对于一个固定的安全参数λ,这三个算法如下运行:
(1)密钥生成算法:随机选择一个大素数p,p≥2k,其长度为k。从群Z/pZ中随机选择生成元g。私钥为x∈Z/(p-1)Z,公钥为y=gx mod p。
(2)加密算法:选择随机数u∈Z/(p-1)Z,计算
U=gu,V=m·yu
则密文C=(U,V),m为消息。
(3)解密算法:输入包括私钥x和密文(U,V),输出包括明文m:
m=V·U-x。
本发明方法通过分级密钥分发技术,使得央行能够监管整个交易系统;由于用户交易行为仅由支行完成,所以该交易系统与现有中心化系统相兼容,且交易速度与现有的中心化系统相等,能够满足实际应用中的快速支付需求。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种可监管的链下任意收款方快速支付方法,其特征在于,所述可监管的链下任意收款方快速支付方法基于一种可监管的链下任意收款方快速支付系统;所述可监管的链下任意收款方快速支付系统包括央行、商行、支行和用户;所述方法包括:
所述央行根据获取的安全参数生成公共参数、央行私钥和央行公钥;所述央行根据获取的安全参数生成公共参数、央行私钥和央行公钥,具体包括:
所述央行获取安全参数1λ;
所述央行根据所述安全参数1λ生成公共参数Params;
所述央行根据所述安全参数1λ和所述公共参数Params,采用密钥生成算法KGen生成央行私钥SK0和央行公钥PK0;
所述央行根据所述央行私钥生成商行私钥,并将所述商行私钥分发给所述商行;所述央行根据所述央行私钥生成商行私钥,具体包括:
所述央行获取所述商行的商行身份ID1;
所述央行根据所述央行私钥SK0和所述商行身份ID1,采用哈希函数生成随机数作为所述商行的商行私钥SK1;
所述商行根据所述商行私钥生成商行公钥及支行私钥,并将所述支行私钥分发给所述支行;
所述支行根据所述支行私钥生成支行公钥及用户私钥,并将所述用户私钥分发给所述用户;
所述用户根据所述用户私钥生成用户公钥;
所述用户根据所述用户私钥和当前交易的付款信息生成交易单签名密文,并将所述交易单签名密文发送至所述支行;
所述支行对所述交易单签名密文进行解密并根据所述用户公钥验证签名是否有效;
若所述支行验证签名无效,则所述支行拒绝交易;
若所述支行验证签名有效,则所述支行接受交易并通知收款方;
所述支行对所有交易单签名并发送至所述商行,所述商行验证交易单签名的有效性;
若所述商行验证所述交易单签名有效,所述商行将与所述交易单签名对应的交易单存储到区块链上;
若所述商行验证所述交易单签名无效,所述商行拒绝所述交易单签名对应的交易单。
2.根据权利要求1所述的可监管的链下任意收款方快速支付方法,其特征在于,在所述用户根据所述用户私钥生成用户公钥之后,还包括:
所述央行根据所述央行私钥和所述商行公钥生成所述商行的商行公钥证书;
所述央行根据所述央行私钥和所述支行公钥生成所述支行的支行公钥证书;
所述支行根据所述支行私钥和所述用户公钥生成所述用户的用户公钥证书。
3.根据权利要求1所述的可监管的链下任意收款方快速支付方法,其特征在于,所述商行根据所述商行私钥生成商行公钥及支行私钥,具体包括:
所述商行根据所述商行私钥SK1和所述公共参数Params,采用密钥生成算法KGen生成所述商行的商行公钥PK1;
所述商行获取所述支行的支行身份ID2;
所述商行根据所述商行私钥SK1和所述支行身份ID2,采用哈希函数生成随机数作为所述支行的支行私钥SK2。
4.根据权利要求3所述的可监管的链下任意收款方快速支付方法,其特征在于,所述支行根据所述支行私钥生成支行公钥及用户私钥,具体包括:
所述支行根据所述支行私钥SK2和公共参数Params,采用密钥生成算法KGen生成所述支行的支行公钥PK2;
所述支行获取所述用户的用户身份ID3;
所述支行根据所述支行私钥SK2和所述用户身份ID3,采用哈希函数生成随机数作为所述用户的用户私钥SK3。
5.根据权利要求4所述的可监管的链下任意收款方快速支付方法,其特征在于,所述用户根据所述用户私钥生成用户公钥,具体包括:
所述用户根据所述用户私钥SK3和所述公共参数Params,采用密钥生成算法KGen生成所述用户的用户公钥PK3。
6.根据权利要求5所述的可监管的链下任意收款方快速支付方法,其特征在于,所述用户根据所述用户私钥和当前交易的付款信息生成交易单签名密文,具体包括:
所述用户获取当前交易的付款信息pay;所述付款信息pay包括付款金额m、用户账户地址ID3、收款方账户地址ID'3以及时间戳T;
所述用户根据所述用户私钥SK3及所述付款信息pay,采用签名算法sign生成付款签名δ3;
所述用户根据所述付款签名δ3与对应的付款信息pay组成交易单签名对(pay,δ3);
所述用户根据所述支行公钥PK2和所述交易单签名对(pay,δ3),采用加密算法Enc生成交易单签名密文C。
7.根据权利要求6所述的可监管的链下任意收款方快速支付方法,其特征在于,所述支行对所述交易单签名密文进行解密并根据所述用户公钥验证签名是否有效,具体包括:
所述支行采用解密算法Dec对所述交易单签名密文C进行解密,获得交易单签名对(pay,δ3);
所述支行根据所述用户公钥PK3,采用验证算法Verify验证所述交易单签名对(pay,δ3)是否有效;
若所述验证算法Verify的输出为Valid,则确定签名有效;
若所述验证算法Verify的输出为Invalid,则确定签名无效。
8.根据权利要求7所述的可监管的链下任意收款方快速支付方法,其特征在于,所述支行对所有交易单签名并发送至所述商行,所述商行验证交易单签名的有效性,具体包括:
所述支行根据所述支行私钥SK2和所有交易单Pay=(payi,δi),1≤i≤n,采用签名算法sign生成结算单签名σ;其中(payi,δi)表示第i个交易单;n为交易单数量;
所述支行根据所述结算单签名σ和所有交易单Pay=(payi,δi)生成结算单签名对(Pay,σ);
所述支行将所述结算单签名对(Pay,σ)广播到区块链中;
所述商行根据所述结算单签名对(Pay,σ)以及对应的支行公钥PK2,采用验证算法Verify验证所述结算单签名对(Pay,σ)是否有效;
若所述验证算法Verify的输出为Valid,则确定交易单签名有效;
若所述验证算法Verify的输出为Invalid,则确定交易单签名无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910822235.1A CN110599164B (zh) | 2019-09-02 | 2019-09-02 | 一种可监管的链下任意收款方快速支付方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910822235.1A CN110599164B (zh) | 2019-09-02 | 2019-09-02 | 一种可监管的链下任意收款方快速支付方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110599164A CN110599164A (zh) | 2019-12-20 |
CN110599164B true CN110599164B (zh) | 2022-05-10 |
Family
ID=68856895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910822235.1A Active CN110599164B (zh) | 2019-09-02 | 2019-09-02 | 一种可监管的链下任意收款方快速支付方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110599164B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290733B (zh) * | 2020-02-18 | 2022-07-19 | 杭州复杂美科技有限公司 | 结算方法、设备和存储介质 |
CN111431710B (zh) * | 2020-03-24 | 2021-09-10 | 数据通信科学技术研究所 | 一种发送方可查阅且第三方可监管的加密方法和装置 |
CN113657893B (zh) * | 2021-08-16 | 2023-05-23 | 四川长虹网络科技有限责任公司 | 一种数字钱包支付加解密方法及数字钱包 |
CN117236961B (zh) * | 2023-11-16 | 2024-02-20 | 中国兵器工业信息中心 | 链上链下的多方交易安全监管方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982205A (zh) * | 2017-03-01 | 2017-07-25 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 基于区块链的数字资产处理方法和装置 |
CN108564353A (zh) * | 2018-04-27 | 2018-09-21 | 数字乾元科技有限公司 | 基于区块链的支付系统及方法 |
CN108805551A (zh) * | 2018-06-06 | 2018-11-13 | 北京航空航天大学 | 一种安全的细粒度预支付方法及装置 |
CN108964905A (zh) * | 2018-07-18 | 2018-12-07 | 胡祥义 | 一种安全高效的区块链实现方法 |
CN109040057A (zh) * | 2018-07-26 | 2018-12-18 | 百色学院 | 一种基于区块链的多密钥分级保护隐私系统及方法 |
CN109741061A (zh) * | 2019-01-08 | 2019-05-10 | 睿亚区块链科技(深圳)有限公司 | 一种基于区块链技术的跨境支付交易系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10153908B2 (en) * | 2010-04-30 | 2018-12-11 | T-Central, Inc. | Secure communication of IOT devices for vehicles |
-
2019
- 2019-09-02 CN CN201910822235.1A patent/CN110599164B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982205A (zh) * | 2017-03-01 | 2017-07-25 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 基于区块链的数字资产处理方法和装置 |
CN108564353A (zh) * | 2018-04-27 | 2018-09-21 | 数字乾元科技有限公司 | 基于区块链的支付系统及方法 |
CN108805551A (zh) * | 2018-06-06 | 2018-11-13 | 北京航空航天大学 | 一种安全的细粒度预支付方法及装置 |
CN108964905A (zh) * | 2018-07-18 | 2018-12-07 | 胡祥义 | 一种安全高效的区块链实现方法 |
CN109040057A (zh) * | 2018-07-26 | 2018-12-18 | 百色学院 | 一种基于区块链的多密钥分级保护隐私系统及方法 |
CN109741061A (zh) * | 2019-01-08 | 2019-05-10 | 睿亚区块链科技(深圳)有限公司 | 一种基于区块链技术的跨境支付交易系统 |
Non-Patent Citations (1)
Title |
---|
区块链的网络安全: 威胁与对策;房卫东等;《信息安全学报》;20180331;第87-104页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110599164A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110599164B (zh) | 一种可监管的链下任意收款方快速支付方法 | |
EP3563553B1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
Ziegeldorf et al. | Coinparty: Secure multi-party mixing of bitcoins | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN107392603B (zh) | 使用数字货币的交易方法和装置 | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
Yi et al. | A new blind ECDSA scheme for bitcoin transaction anonymity | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
CN114338045A (zh) | 基于区块链和联邦学习的情报数据可验证性安全共享方法及系统 | |
CN107707358A (zh) | 一种ec‑kcdsa数字签名生成方法及系统 | |
CN112733163B (zh) | 基于离散对数相等性证明的可监管零知识证明方法及装置 | |
CN112202544B (zh) | 一种基于Paillier同态加密算法的智能电网数据安全聚合方法 | |
Chow et al. | Server-aided signatures verification secure against collusion attack | |
CN112600675B (zh) | 基于群签名的电子投票方法及装置、电子设备、存储介质 | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
Wang et al. | Dynamic threshold ECDSA signature and application to asset custody in blockchain | |
Islam et al. | Certificateless strong designated verifier multisignature scheme using bilinear pairings | |
Verbücheln | How perfect offline wallets can still leak bitcoin private keys | |
WO2019174404A1 (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
Chiou et al. | Design and implementation of a mobile voting system using a novel oblivious and proxy signature | |
Deng et al. | Designated‐Verifier Anonymous Credential for Identity Management in Decentralized Systems | |
CN111314059A (zh) | 账户权限代理的处理方法、装置、设备及可读存储介质 | |
Ebrahimi et al. | Enhancing cold wallet security with native multi-signature schemes in centralized exchanges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |