CN110223067B - 一种具有去中心化特性的链下一对多支付方法及*** - Google Patents
一种具有去中心化特性的链下一对多支付方法及*** Download PDFInfo
- Publication number
- CN110223067B CN110223067B CN201910507784.XA CN201910507784A CN110223067B CN 110223067 B CN110223067 B CN 110223067B CN 201910507784 A CN201910507784 A CN 201910507784A CN 110223067 B CN110223067 B CN 110223067B
- Authority
- CN
- China
- Prior art keywords
- payment
- payee
- amount
- signature
- settlement
- 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/3827—Use of message hashing
-
- 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
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
技术领域
本发明涉及信息安全领域,特别是涉及一种具有去中心化特性的链下一对多支付方法及***。
背景技术
电子支付***试图给用户提供一个尽可能灵活高效的支付方式。电子支付通常提倡使用委托人,即使用可信第三方完成交易,给用户提供一种灵活的服务。可信第三方的存在,虽然具有灵活性,但是也揭露了用户的某些偏好,降低用户的隐私保护。对于隐私保护较高的应用场景,使得去中心化的区块链***发展起来。2008年,中本聪提出区块链并用于服务比特币的公开交易账簿。
区块链***具有以下五个关键优势:一、区块链通过使用不断增长的交易记录以促进在线交易。通过密码算法,即哈希函数和数字签名算法,把交易记录连接起来,使得交易记录是安全的。二、区块链是一个去中心化的、分布式的数据账簿。该账簿用于用户记录交易跨越全世界范围内数以千计的计算机***,使得记录不能被随意的修改而不需要修改随后的区块并产生冲突。三、区块链是一个具有可信性特征的***,允许参与方便捷地验证和审计交易而不需要可信第三方。这极大地降低暗箱操作与非授权干预等风险。四、区块链上的每次改变都需要得到所有成员的认可,使得区块链是一个透明的***,允许用户在分布式账簿上控制信息和交易的过程。最后,区块链消除了数字资产无限重复的特征,因为在交易写入到账簿之前,需要各个参与方确认每笔交易以防止双重花费攻击。
但是,区块链由于其支付的灵活性较低而面临性严峻的挑战。在当前状态下,例如比特币仅能够支持7笔每秒的交易速度,远远不足以发展为一个大容量、高频率的数字货币***。提高区块生成速率或增大区块容量在一定程度上能够增加区块链***的交易速度。但是该方法也会给区块链带来负面的影响,Decker和Wattenhofer已指明其缺点。由于区块生成的过程具有随机特征,在网络中不存在两个不同的节点同时生成两个区块,而其中一个是另外一个区块的子链。虽然这两个区块都是诚实生成的且与交易记录具有一致性,但是这两个区块是相互冲突的。比特币协议保证最终仅有一个生成的区块将被***接受。因此,放弃另一个区块意味着浪费计算资源。如果区块通过网络传播的速度足够快,则随后的区块能够建立在已有区块之上,从而避免资源浪费。增大区块容量意味着区块需要耗费更长的时间以广播到全网,与此同时会产生许多无用的区块。类似场景下,提高区块生成速率意味着区块生成更加频繁。在上一区块广播到全网时,会产生更多的无用区块。此外,Gervais等已经证明简单地通过对区块链重新设置***参数能达到的***容量不能超过100笔交易每秒。
目前仍没有方案能够解决区块链***中离链支付的低灵活性与分布式特性的问题,而该问题是至关重要的。因为在现有的支付通道***中,支付通道一旦建立,则预付款金额与收款方存在严格的一一对应关系。付款方需要通过支付网络支付给其他参与方,而支付网络容易形成中心化的服务商,从而导致离链支付***中心化。
发明内容
本发明的目的是提供一种具有去中心化特性的链下一对多支付方法及***,以解决支付***中的离链支付灵活性较低和中心化的问题。
为实现上述目的,本发明提供了如下方案:
一种具有去中心化特性的链下一对多支付方法,包括:
生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥;所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥;
所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额;
所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性;若所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效,则将所述通道建立与押币交易单存储至区块链***;若所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,则所述区块链***的节点拒绝所述通道建立与押币交易单;
所述付款方对付款金额签名,并将付款签名发送至收款方;
所述收款方验证支付的有效性;当所述支付有效时,所述收款方接受交易;当所述支付无效时,所述收款方拒绝交易;
所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址。
可选的,所述生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥,具体包括:
发行方输入安全参数,生成所述区块链***的公共参数;
根据所述安全参数和所述公共参数,所述付款方运行秘钥生成算法,生成所述付款方的私钥和公钥;
根据所述安全参数和所述公共参数,所述收款方运行秘钥生成算法,生成所述收款方的私钥和公钥。
可选的,所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额,具体包括:
所述付款方输入所述第一私钥、所述冻结金额、所述预付款金额、所述付款方的账户地址和多个收款方的账户地址,生成所述通道建立与押币交易单;
所述区块链***锁定所述付款方通道建立与押币交易单对应的预付款金额和冻结金额。
可选的,所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性,具体包括:
所述区块链***根据输入的所述通道建立与押币交易单和所述第一公钥,验证所述通道建立与押币交易单的有效性;
当所述通道建立与押币交易单有效时,检测所述预付款金额和所述冻结金额是否均小于所述付款方的账户地址中的余额;
当所述预付款金额和所述冻结金额均小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效;
当所述通道建立与押币交易单无效时,或者当所述预付款金额或所述冻结金额不小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效。
可选的,所述付款方对付款金额签名,具体包括:
所述付款方输入所述第一私钥、付款金额、付款方的账户地址、收款方的账户地址以及时间戳,输出付款签名。
可选的,所述收款方验证支付的有效性,具体包括:
所述收款方输入所述付款签名和所述第一公钥,对所述付款签名进行有效性判断;
当所述付款签名有效时,检测所述付款方支付给所述收款方的累计付款金额是否小于所述预付款金额;
当所述付款方支付给所述收款方的累计付款金额小于所述预付款金额时,则确定所述支付有效;
当所述付款签名无效时,或者当所述付款方支付给所述收款方的累计付款金额不小于所述预付款金额时,则确定所述支付无效。
可选的,所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址,具体包括:
所述收款方将所有收款金额打包为结算单,生成结算单签名;所述结算单包括所述收款方对应的结算金额;
所述收款方将所述付款签名和所述结算单签名广播至所述区块链***;
所述区块链***的节点验证所述付款签名和所述结算单签名的有效性;
当所述付款签名和所述结算单签名均有效时,检测是否满足所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额;
当所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额时,将所述结算单签名存储至所述区块链***,提取所述结算单对应的结算金额至所述收款方的账户地址;
当所述付款签名或所述结算单签名无效时,或者当所述收款方的结算金额不小于预付款金额或所有收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述结算单签名,所述收款方结算失败。
可选的,还包括:
判断所述付款方是否进行双重花费;
当所述付款方进行双重花费时,所述收款方通过双重花费交易单从所述冻结金额中提取所述双重花费对应的付款金额。
可选的,还包括:
判断是否满足所述付款方的预付款金额花费完毕,且超过设定比例的收款方结算完成;
当所述付款方的预付款金额花费完毕,且超过设定比例的收款方结算完成时,所述付款方签署未结算付款方对应的结算单,生成未结算付款方的结算单签名;
所述付款方将所述付款签名和所述未结算付款方的结算单签名广播至所述区块链***;
所述区块链***的节点验证所述付款签名和所述未结算付款方的结算单签名的有效性;
当所述付款签名和所述未结算付款方的结算单签名均有效时,检测是否满足所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额;
当所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额时,将所述未结算付款方的结算单签名存储至所述区块链***,提取未结算付款方的结算单签名对应的结算金额至所述未结算收款方的账户地址;
当所述付款签名或所述未结算付款方的结算单签名无效时,或者当所述未结算收款方的结算金额不小于预付款金额或所有未结算收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述未结算付款方的结算单签名,所述未结算收款方结算失败;
当所述付款方对应的所有收款方结算完成时,所述付款方的冻结金额自动解锁,回到所述付款方的账户地址。
本发明还提供一种具有去中心化特性的链下一对多支付***,包括:
初始化模块,用于生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥;所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥;
通道建立与押币模块,用于所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额;
验证模块,用于所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性;若所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效,则将所述通道建立与押币交易单存储至区块链***;若所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,则所述区块链***的节点拒绝所述通道建立与押币交易单;
付款模块,用于所述付款方对付款金额签名,并将付款签名发送至收款方;
收款模块,用于所述收款方验证支付的有效性;当所述支付有效时,所述收款方接受交易;当所述支付无效时,所述收款方拒绝交易;
结算模块,用于所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
付款过程与收款过程仅需要付款方和收款方完成,结算过程仅需要付款方和收款方完成,通道建立与押币两个过程均由付款方独立完成,每个过程都不需要第三方中介,因此不会形成中心化中介,避免了使整个***具有去中心化特性。本发明中每个阶段均不需要第三方中介,仅有付款方和收款方即可完成,对于双重花费攻击实时进行检测,进一步提高了整个支付过程的安全性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1具有去中心化特性的链下一对多支付方法的流程示意图;
图2为本发明实施例2具有去中心化特性的链下一对多支付***的结构示意图;
图3为本发明实施例2具有去中心化特性的链下一对多支付***与基础密码学工具的示意图;
图4为本发明实施例3具有去中心化特性的链下一对多支付***的结构图;
图5为本发明实施例3具有去中心化特性的链下一对多支付***与基础密码学工具的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
图1为本发明实施例1具有去中心化特性的链下一对多支付方法的流程示意图。如图1所示,本实施例具有去中心化特性的链下一对多支付方法包括以下步骤:
步骤100:生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥。所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥。
将安全参数输入区块链***便可以自动输出***的公共参数。根据***公共参数和安全参数,收款方和付款方运行各自秘钥生成算法,便可以生成各自的私钥和公钥。***公共参数,是密码学领域的群基本知识,整个***的运行,都在基本参数上运行。例如:群生成元为g,则所有用户的私钥为随机数x,公钥则计算为g^x,即任意计算都需要以公共参数为基础。本发明中的实体机构包括区块链***的节点、付款方和收款方,每个实体机构的角色都可能由一个或多个实体合作充任。
步骤200:付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额。
在付款方付款之前,需要建立付款方与收款方之间的付款通道以及根据付款方的请求锁定一定数量的预付款金额、冻结金额和多个收款方。付款方输入包括第一私钥、足够数量的冻结金额、预付款金额、付款方的账户地址和多个收款方的账户地址,生成通道建立与押币交易单,区块链***以锁定预付款金额和冻结金额。
步骤300:区块链***的节点验证预付款金额、冻结金额和通道建立与押币交易单的有效性。区块链***根据输入的通道建立与押币交易单和第一公钥,验证所述通道建立与押币交易单的有效性。当所述通道建立与押币交易单有效时,进一步检测所述预付款金额和所述冻结金额是否均小于所述付款方的账户地址中的余额;当所述预付款金额和所述冻结金额均小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效;执行步骤400;
当所述通道建立与押币交易单无效时,或者当所述预付款金额或所述冻结金额不小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,执行步骤500。
步骤400:将通道建立与押币交易单存储至区块链***。区块链***接受该通道建立与押币交易单。
步骤500:区块链***的节点拒绝通道建立与押币交易单。
步骤600:付款方对付款金额签名,并将付款签名发送至收款方。付款方支付给收款方,输入包括私钥,付款金额,付款方账户地址,收款方账户地址以及时间戳,输出付款签名。
步骤700:收款方验证支付的有效性。所述收款方输入所述付款签名和所述第一公钥,对所述付款签名进行有效性判断;当所述付款签名有效时,检测所述付款方支付给所述收款方的累计付款金额是否小于所述预付款金额;当所述付款方支付给所述收款方的累计付款金额小于所述预付款金额时,则确定所述支付有效,执行步骤800;当所述付款签名无效时,或者当所述付款方支付给所述收款方的累计付款金额不小于所述预付款金额时,则确定所述支付无效,执行步骤900。
步骤800:收款方接受交易。
步骤900:收款方拒绝交易。
步骤1000:收款方与区块链***的节点进行结算,提取收款金额至收款方的账户地址。具体过程如下:
所述收款方将所有收款金额打包为结算单,生成结算单签名;所述结算单包括所述收款方对应的结算金额;
所述收款方将所述付款签名和所述结算单签名广播至所述区块链***;
所述区块链***的节点验证所述付款签名和所述结算单签名的有效性;
当所述付款签名和所述结算单签名均有效时,检测是否满足所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额;
当所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额时,将所述结算单签名存储至所述区块链***,提取所述结算单对应的结算金额至所述收款方的账户地址;
当所述付款签名或所述结算单签名无效时,或者当所述收款方的结算金额不小于预付款金额或所有收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述结算单签名,所述收款方结算失败。
作为另一种实施例,可以进一步判断付款方是否进行双重花费,双重花费是区块链领域的特殊攻击,是指把同一笔钱支付给两个不同的收款方。如果付款方进行双重花费,收款方能够通过双重花费交易单从冻结金额中提取所述双重花费对应的付款金额,从而导致付款方遭受损失。
当所有收款方的结算完成后,付款方的冻结金额自动解锁至付款方的账户地址中。
在结算过程中,如果预付款金额花费完毕,且绝大多数收款方完成提款,则付款方能够单独发起结算。结算时,付款方签署未结算付款方对应的结算单,生成未结算付款方的结算单签名;将所述付款签名和所述未结算付款方的结算单签名广播至所述区块链***;所述区块链***的节点验证所述付款签名和所述未结算付款方的结算单签名的有效性;如果均输出有效,进一步检测是否满足所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额。当所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额时,将所述未结算付款方的结算单签名存储至所述区块链***,提取未结算付款方的结算单签名对应的结算金额至所述未结算收款方的账户地址;当所述付款签名或所述未结算付款方的结算单签名无效时,或者当所述未结算收款方的结算金额不小于预付款金额或所有未结算收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述未结算付款方的结算单签名,所述未结算收款方结算失败。但是,付款方发起的该单向结算需要等待一段时间才能够生效。
当付款方对应的所有收款方结算完成时,付款方的冻结金额自动解锁,回到付款方的账户地址。
对于绝大多数收款方是否完成提款,可以采用设定比例阈值的方法,例如,设定比例阈值为90%。首先获得付款方对应的多个收款方的结算状态,进一步判断付款方对应的多个收款方完成结算的人数比例是否大于设定比例阈值,如果大于设定比例阈值时,则表示绝大多数收款方完成提款,区块链***可以接受付款方的结算请求。
实施例2
本实施例为实施例1对应的***,图2为本发明实施例2具有去中心化特性的链下一对多支付***的结构示意图,如图2所示,本实施例的具有去中心化特性的链下一对多支付***包括:初始化模块210、通道建立与押币模块220、验证模块230、付款模块240、收款模块250、结算模块260。
初始化模块210,用于生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥;所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥。具体过程为:
节点输入安全参数1λ,输出包括***公共参数Params;
付款方运行秘钥生成算法KGen,输入包括安全参数1λ和公共参数Params,输出包括公钥和私钥,如(PK0,SK0)←KGen(1λ,Params);
收款方运行秘钥生成算法KGen,输入包括安全参数1λ和公共参数Params,输出包括公钥和私钥,如(PKi,SKi)←KGen(1λ,Params),1≤i≤n。
通道建立与押币模块220,用于所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额。具体过程为:
δ0←Sign(SK0,channel),
验证模块230,用于所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性;若所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效,则将所述通道建立与押币交易单存储至区块链***;若所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,则所述区块链***的节点拒绝所述通道建立与押币交易单。具体过程为:
节点运行验证算法Verify,输入通道建立签名对(channel,δ0)以及对应的公钥PK0,输出有效性判断Valid/Invalid:
Valid/Invalid←Verify(PK0,channel,δ0).
付款模块240,用于所述付款方对付款金额签名,并将付款签名发送至收款方。具体过程为:
付款方运行签名算法Sign,输入私钥SK0,付款金额mi,其账户地址ID0,收款方账户地址IDi以及时间戳T,输出付款签名δ1,i:
δ1,i←Sign(SK0,payi,T).
其中,payi=(mi,ID0,IDi,T)。付款方发送付款签名对(payi,δ1,i,PK0)给收款方IDi。
收款模块250,用于所述收款方验证支付的有效性;当所述支付有效时,所述收款方接受交易;当所述支付无效时,所述收款方拒绝交易。具体过程为:
收款方运行验证算法Verify,输入付款签名(payi,δ1,i)以及对应的公钥PK0,输出有效性判断Valid/Invalid:
Valid/Invalid←Verify(PK0,payi,δ1,i).
如果有效,且m≤M,则接受,否则拒绝。
结算模块260,用于所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址。具体过程为:
(1)收款方运行签名算法Sign,输入私钥SKi和结算单balancei,输出结算单签名δ2,i:
δ2,i←Sign(SKi,balancei),
其中,balancei=(ID0,IDi,payi,δ1,i,PK0)。收款方把付款签名对(payi,δ1,i)和结算单签名对(balancei,δ2,i)广播到区块链***中。
(2)节点运行验证算法Verify,输入付款签名对(payi,δ1,i)和结算单签名对(balancei,δ2,i)以及对应的公钥PK0,PKi,输出有效性判断Valid/Invalid:
Valid/Invalid←Verify(PK0,payi,δ1,i)
Valid/Invalid←Verify(PKi,balancei,δ2,i).
(3)如果预付款金额花费完毕,且绝大多数收款方完成结算,则付款方能够独立发起结算。
付款方运行签名算法Sign,输入私钥SK0和结算单balancei,...,balancen,输出结算单签名δ′2,i,...,n:
δ′2,i,...,n←Sign(SK0,balancei,...,balancen),
该单向结算单签名需要等待一段时间后才能够生效,其中等待时间在通道建立时由交易双方共同协商并设置。
图3为本发明实施例2具有去中心化特性的链下一对多支付***与基础密码学工具的示意图。结合图3,本实施例的各个模块均涉及密码学工具,需要用到的密码学基础工具,包括哈希函数、数字签名密码学工具。
哈希函数(Hash Function)
哈希函数族Hash是一系列函数。其中,每个函数H从定义域{0,1}m映射到值域{0,1}n,使得m≥n。正式地,哈希函数满足以下三个条件:
(1)确定性:对于一个已知的输入,哈希函数总是输出相同的哈希值:
(2)随机性:对任意一个大的输入集合,哈希函数总是输出一个均匀分布的随机数:
其中,Negl(λ)是在安全参数下λ的可忽略概率。
数字签名(Digital Signature)
数字签名包括3个算法,即秘钥生成算法KeyGen,签名算法Sign和验证算法Verify,分别用于秘钥生成,签名和验证签名。对于一个固定的安全参数λ,这三个算法如下运行:
(1)秘钥生成算法:输入安全参数λ,输出随机私钥SK和一个对应的公钥PK:
(PK,SK)←KeyGen(1λ).
(2)签名算法:输入私钥SK和消息m,该消息来自某个固定的集合M,输出签名σ:
σ←Sign(SK,m).
(3)验证算法:输入公钥PK和消息签名对(m,σ),输出有效性判断Valid/Invalid:
Valid/Invalid←Verify(PK,m,σ).
实施例3
图4为本发明实施例3具有去中心化特性的链下一对多支付***的结构图。如图4所示,本实施例包含3类实体:节点、付款方和收款方。其中,付款方和收款方的公钥和私钥可以表示为(SK,PK)。
图5为本发明实施例3具有去中心化特性的链下一对多支付***与基础密码学工具的示意图。如图5所示,本实施例中,初始化由节点、付款方和收款方各自独立完成,通道建立与押币由付款方独立完成,验证由节点完成,付款由付款方完成,收款由收款方完成,结算由付款方和收款方完成。每个过程均涉及密码学工具,需要用到的密码学基础工具,包括哈希函数、数字签名密码学工具。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种具有去中心化特性的链下一对多支付方法,其特征在于,包括:
生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥;所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥;
所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额;付款方输入包括第一私钥、足够数量的冻结金额、预付款金额、付款方的账户地址和多个收款方的账户地址,生成通道建立与押币交易单;
所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性;第一公钥验证所述通道建立与押币交易单的有效性;若所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效,则将所述通道建立与押币交易单存储至区块链***;若所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,则所述区块链***的节点拒绝所述通道建立与押币交易单;
所述付款方对付款金额签名,并将付款签名发送至收款方;
所述收款方验证支付的有效性;当所述支付有效时,所述收款方接受交易;当所述支付无效时,所述收款方拒绝交易;
所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址;结算模块,用于所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址,具体过程为:收款方运行签名算法:输入第二私钥和结算单,输出结算单签名;收款方把付款签名和结算单签名广播到区块链***中;节点运行验证算法:输入付款签名和结算单签名以及对应的第一公钥和第二公钥,输出付款签名和结算单签名的有效性判断,如果均有效,则将付款签名和结算单签名存储到区块链***,否则拒绝。
2.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,所述生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥,具体包括:
发行方输入安全参数,生成所述区块链***的公共参数;
根据所述安全参数和所述公共参数,所述付款方运行秘钥生成算法,生成所述付款方的私钥和公钥;
根据所述安全参数和所述公共参数,所述收款方运行秘钥生成算法,生成所述收款方的私钥和公钥。
3.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性,具体包括:
所述区块链***根据输入的所述通道建立与押币交易单和所述第一公钥,验证所述通道建立与押币交易单的有效性;
当所述通道建立与押币交易单有效时,检测所述预付款金额和所述冻结金额是否均小于所述付款方的账户地址中的余额;
当所述预付款金额和所述冻结金额均小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效;
当所述通道建立与押币交易单无效时,或者当所述预付款金额或所述冻结金额不小于所述付款方的账户地址中的余额时,则确定所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效。
4.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,所述付款方对付款金额签名,具体包括:
所述付款方输入所述第一私钥、付款金额、付款方的账户地址、收款方的账户地址以及时间戳,输出付款签名。
5.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,所述收款方验证支付的有效性,具体包括:
所述收款方输入所述付款签名和所述第一公钥,对所述付款签名进行有效性判断;
当所述付款签名有效时,检测所述付款方支付给所述收款方的累计付款金额是否小于所述预付款金额;
当所述付款方支付给所述收款方的累计付款金额小于所述预付款金额时,则确定所述支付有效;
当所述付款签名无效时,或者当所述付款方支付给所述收款方的累计付款金额不小于所述预付款金额时,则确定所述支付无效。
6.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址,具体包括:
所述收款方将所有收款金额打包为结算单,生成结算单签名;所述结算单包括所述收款方对应的结算金额;
所述收款方将所述付款签名和所述结算单签名广播至所述区块链***;
所述区块链***的节点验证所述付款签名和所述结算单签名的有效性;
当所述付款签名和所述结算单签名均有效时,检测是否满足所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额;
当所述收款方的结算金额小于预付款金额且所有收款方的结算金额之和小于冻结金额时,将所述结算单签名存储至所述区块链***,提取所述结算单对应的结算金额至所述收款方的账户地址;
当所述付款签名或所述结算单签名无效时,或者当所述收款方的结算金额不小于预付款金额或所有收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述结算单签名,所述收款方结算失败。
7.根据权利要求6所述的具有去中心化特性的链下一对多支付方法,其特征在于,还包括:
判断所述付款方是否进行双重花费;
当所述付款方进行双重花费时,所述收款方通过双重花费交易单从所述冻结金额中提取所述双重花费对应的付款金额。
8.根据权利要求1所述的具有去中心化特性的链下一对多支付方法,其特征在于,还包括:
判断是否满足所述付款方的预付款金额花费完毕,且超过设定比例的收款方结算完成;
当所述付款方的预付款金额花费完毕,且超过设定比例的收款方结算完成时,所述付款方签署未结算付款方对应的结算单,生成未结算付款方的结算单签名;
所述付款方将所述付款签名和所述未结算付款方的结算单签名广播至所述区块链***;
所述区块链***的节点验证所述付款签名和所述未结算付款方的结算单签名的有效性;
当所述付款签名和所述未结算付款方的结算单签名均有效时,检测是否满足所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额;
当所述未结算收款方的结算金额小于预付款金额且所有未结算收款方的结算金额之和小于冻结金额时,将所述未结算付款方的结算单签名存储至所述区块链***,提取未结算付款方的结算单签名对应的结算金额至所述未结算收款方的账户地址;
当所述付款签名或所述未结算付款方的结算单签名无效时,或者当所述未结算收款方的结算金额不小于预付款金额或所有未结算收款方的结算金额之和不小于冻结金额时,所述区块链***拒绝所述未结算付款方的结算单签名,所述未结算收款方结算失败;
当所述付款方对应的所有收款方结算完成时,所述付款方的冻结金额自动解锁,回到所述付款方的账户地址。
9.一种具有去中心化特性的链下一对多支付***,其特征在于,包括:
初始化模块,用于生成区块链***的公共参数、第一私钥、第一公钥、第二私钥和第二公钥;所述区块链***的公共参数由发行方生成;所述第一私钥为付款方生成的私钥,所述第一公钥为所述付款方生成的公钥;所述第二私钥为收款方生成的私钥,所述第二公钥为所述收款方生成的公钥;
通道建立与押币模块,用于所述付款方生成通道建立与押币交易单,锁定输入的预付款金额和冻结金额;付款方输入包括第一私钥、足够数量的冻结金额、预付款金额、付款方的账户地址和多个收款方的账户地址,生成通道建立与押币交易单;
验证模块,用于所述区块链***的节点验证所述预付款金额、所述冻结金额和所述通道建立与押币交易单的有效性;第一公钥验证所述通道建立与押币交易单的有效性;若所述预付款金额、所述冻结金额和所述通道建立与押币交易单均有效,则将所述通道建立与押币交易单存储至区块链***;若所述预付款金额、所述冻结金额或所述通道建立与押币交易单无效,则所述区块链***的节点拒绝所述通道建立与押币交易单;
付款模块,用于所述付款方对付款金额签名,并将付款签名发送至收款方;
收款模块,用于所述收款方验证支付的有效性;当所述支付有效时,所述收款方接受交易;当所述支付无效时,所述收款方拒绝交易;
结算模块,用于所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址;结算模块,用于所述收款方与所述区块链***的节点进行结算,提取收款金额至所述收款方的账户地址,具体过程为:收款方运行签名算法:输入第二私钥和结算单,输出结算单签名;收款方把付款签名和结算单签名广播到区块链***中;节点运行验证算法:输入付款签名和结算单签名以及对应的第一公钥和第二公钥,输出付款签名和结算单签名的有效性判断,如果均有效,则将付款签名和结算单签名存储到区块链***,否则拒绝。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507784.XA CN110223067B (zh) | 2019-06-12 | 2019-06-12 | 一种具有去中心化特性的链下一对多支付方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507784.XA CN110223067B (zh) | 2019-06-12 | 2019-06-12 | 一种具有去中心化特性的链下一对多支付方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110223067A CN110223067A (zh) | 2019-09-10 |
CN110223067B true CN110223067B (zh) | 2021-04-06 |
Family
ID=67816709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910507784.XA Active CN110223067B (zh) | 2019-06-12 | 2019-06-12 | 一种具有去中心化特性的链下一对多支付方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110223067B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751468B (zh) * | 2019-09-24 | 2023-04-28 | 上海交通大学 | 用于区块链扩展的多向状态通道方法、***及介质 |
CN111539712A (zh) * | 2020-05-18 | 2020-08-14 | 北京俩撇科技有限公司 | 一种基于区块链的下单、结账方法及装置 |
CN112184188A (zh) * | 2020-06-20 | 2021-01-05 | 黄立峰 | 交易处理方法、装置、电子设备及存储介质 |
CN111784330B (zh) * | 2020-07-08 | 2024-03-15 | 上海乾臻信息科技有限公司 | 基于数据库的伪队列结算方法、***及电子设备 |
CN113743935A (zh) * | 2021-08-19 | 2021-12-03 | 北京航空航天大学 | 基于Mimblewimble的链下匿名支付通道方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681301A (zh) * | 2016-01-16 | 2016-06-15 | 杭州复杂美科技有限公司 | 区块链上的结算方法 |
CN106920080A (zh) * | 2017-02-15 | 2017-07-04 | 捷德(中国)信息科技有限公司 | 数字货币的账户管理方法和*** |
CN108399571A (zh) * | 2018-01-30 | 2018-08-14 | 厦门快商通信息技术有限公司 | 基于区块链智能合约的无担保交易方法及*** |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN109190384A (zh) * | 2018-07-26 | 2019-01-11 | 百色学院 | 一种多中心区块链熔断保护***及方法 |
CN109583893A (zh) * | 2018-11-21 | 2019-04-05 | 北京航空航天大学 | 可追踪的基于区块链的数字货币交易*** |
CN109784888A (zh) * | 2019-01-28 | 2019-05-21 | 杭州复杂美科技有限公司 | 红包处理方法、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017954A1 (en) * | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
WO2018222797A1 (en) * | 2017-06-02 | 2018-12-06 | Walmart Apollo, Llc | Systems and methods for product review management with distributed database |
-
2019
- 2019-06-12 CN CN201910507784.XA patent/CN110223067B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681301A (zh) * | 2016-01-16 | 2016-06-15 | 杭州复杂美科技有限公司 | 区块链上的结算方法 |
CN106920080A (zh) * | 2017-02-15 | 2017-07-04 | 捷德(中国)信息科技有限公司 | 数字货币的账户管理方法和*** |
CN108399571A (zh) * | 2018-01-30 | 2018-08-14 | 厦门快商通信息技术有限公司 | 基于区块链智能合约的无担保交易方法及*** |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN109190384A (zh) * | 2018-07-26 | 2019-01-11 | 百色学院 | 一种多中心区块链熔断保护***及方法 |
CN109583893A (zh) * | 2018-11-21 | 2019-04-05 | 北京航空航天大学 | 可追踪的基于区块链的数字货币交易*** |
CN109784888A (zh) * | 2019-01-28 | 2019-05-21 | 杭州复杂美科技有限公司 | 红包处理方法、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
区块链技术的去中心化众筹平台搭建研究;周鲜华;《会计之友》;20190104;全文 * |
基于区块链技术的国际贸易结算新模式研究;李洛浦;《中国优秀硕士学位论文全文数据库》;20181031;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110223067A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110223067B (zh) | 一种具有去中心化特性的链下一对多支付方法及*** | |
CN109964242B (zh) | 一种基于信任关系的区块链共识方法 | |
CN106878000B (zh) | 一种联盟链共识方法及*** | |
Jogenfors | Quantum bitcoin: an anonymous, distributed, and secure currency secured by the no-cloning theorem of quantum mechanics | |
Bissias et al. | Sybil-resistant mixing for bitcoin | |
CN106920098B (zh) | 基于区块链和数字货币的数字票据交易监管***及方法 | |
CN110770770A (zh) | 挖掘由验证者节点提供的区块链交易的方法和*** | |
RU2157001C2 (ru) | Способ проведения платежей (варианты) | |
US20070215689A1 (en) | Money transfers using digital cash | |
KR102332226B1 (ko) | 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법 | |
CN110223066A (zh) | 一种基于区块链的链下一对多支付方法及*** | |
CN108805551A (zh) | 一种安全的细粒度预支付方法及装置 | |
KR20180052838A (ko) | 수취인 증명 기반의 불변의 이중 기록을 이용한 안심송금 방법 | |
CN113744036A (zh) | 一种基于区块链数字签名的量子支票交易方法 | |
CN111539719B (zh) | 基于盲签名的可审计混币服务方法及***模型 | |
Blum et al. | Superlight–A permissionless, light-client only blockchain with self-contained proofs and BLS signatures | |
Suliyanti et al. | Evaluation of hash rate-based double-spending based on proof-of-work blockchain | |
CN112418834A (zh) | 比特币兼容的支持链下交易的安全混币处理方法及*** | |
Bala et al. | Security enhancement in Bitcoin protocol | |
CN112995356B (zh) | 一种基于区块链的域名解析服务***及方法 | |
Lei et al. | BFastPay: A routing-free protocol for fast payment in bitcoin network | |
Kohad et al. | Consensus Algorithms in Blockchain Technology | |
CN111311210A (zh) | 一种非对称加密的数字货币交易数据处理方法及装置 | |
CN115021946B (zh) | 一种基于环签名的去中心化混币方法 | |
Ogiela et al. | Protocol for detection of counterfeit transactions in electronic currency exchange |
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 |