一种硬件钱包数字货币选取方法及硬件钱包技术

技术编号:28039519 阅读:20 留言:0更新日期:2021-04-09 23:22
本发明专利技术提供了一种硬件钱包数字货币选取方法和硬件钱包,该方法包括:获取支付金额,选取可用金额大于或等于支付金额的数字货币,若没有或交易时间大于预设时间,执行选取数字货币组合的操作,若交易时间小于预设时间,则输出该数字货币;选取数字货币组合的操作包括,选取金额最小的数字货币组合,若小于支付金额,去掉金额最小的数字货币,再选择金额最小的数字货币组成数字货币组合,直至选择到大于或等于支付金额的数字货币,或无剩余数字货币,输出待输出数字货币,若所有数字货币之和小于支付金额,则结束流程。通过上述数字货币选取方法,在硬件钱包离线交易时,数据量小,交易速度快。

【技术实现步骤摘要】
一种硬件钱包数字货币选取方法及硬件钱包
本专利技术涉及电子
,尤其涉及一种硬件钱包数字货币选取方法及硬件钱包。
技术介绍
现有的数字货币交易过程中,在脱机交易过程中,由于不能联网实时结算,会产生一条支付数据链,在具有支付数据链的数字货币交易过程中,由于其数据量过大,容易造成交易流程变慢的问题,针对不同的交易金额,付款方硬件钱包需要组合取出对应金额的数字货币,不同的组合方式下,传输、计算、校验对应的时间不尽相同。如何设计一种数字货币支付的组合方式,使得交易流程获得最优性能成为亟待解决的问题。
技术实现思路
本专利技术旨在解决上述问题。本专利技术的主要目的在于提供一种硬件钱包数字货币选取方法。本专利技术的另一目的在于提供一种硬件钱包。为达到上述目的,本专利技术的技术方案具体是这样实现的:本专利技术一方面提供了一种硬件钱包数字货币选取方法,包括:S1,获取支付金额;S2,将存储的数字货币按照可用金额从大到小排列,其中,数字货币包括:初始数字货币;和/或,数字货币包括:初始数字货币和至少一个支付数据链;S3,判断是否存在至少一个可用金额大于等于支付金额的数字货币,如果存在则执行步骤S4,如果不存在则执行步骤S9;S4,获取大于等于支付金额的全部数字货币,判断全部数字货币中的每个数字货币是否包含支付数据链,如果有不包含支付数据链的数字货币,则执行S5,如果没有不包含支付数据链的数字货币,则执行S6S5,获取不包含支付数据链的数字货币,执行S7;S6,获取包含支付数据链最少的数字货币,执行S7;S7,选取的数字货币数量确定为一,确定一个可用金额最接近支付金额的数字货币,计算可用金额最接近支付金额的数字货币的交易时间,其中,交易时间包括:传输可用金额最接近支付金额的数字货币的耗时、对可用金额最接近支付金额的数字货币进行签名的耗时和对端设备验证可用金额最接近支付金额的数字货币的签名的耗时之和;S8,判断可用金额最接近支付金额的数字货币的交易时间是否大于预设时间,如果大于预设时间,执行S9,如果不大于预设时间,执行S20;S9,在剩余数字货币中选取数字货币;S10,选取的数字货币数量加一,将剩余数字货币从大到小进行排列;S11,选取可用金额最小的数字货币组合,判断可用金额最小的数字货币组合是否大于等于支付金额,如果可用金额最小的数字货币组合小于支付金额,执行步骤S12,如果可用金额最小的数字货币组合大于等于支付金额,则执行S14;S12,判断是否还有剩余货币,如果还有剩余货币,执行S13,如果没有剩余货币,且选取的数字货币数量小于硬件钱包中数字货币的总数,执行S10,如果没有剩余货币,且选取的数字货币数量等于硬件钱包中数字货币的总数,执行S22;S13,去掉可用金额最小的数字货币,返回执行S11;S14,获取包含支付数据链最多的数字货币;S15,计算包含支付数据链最多的数字货币的交易时间;S16,判断包含支付数据链最多的数字货币的交易时间是否大于预设时间,如果包含支付数据链最多的数字货币的交易时间大于预设时间,则返回执行S10,如果包含支付数据链最多的数字货币的交易时间小于等于预设时间,则执行S17;S17,确定最优的可用金额最小的数字货币组合,计算最优的可用金额最小的数字货币组合的交易时间;S18,如果存在可用金额最接近支付金额的数字货币,判断最优的可用金额最小的数字货币组合的交易时间是否大于可用金额最接近支付金额的数字货币的交易时间,如果最优的可用金额最小的数字货币组合的交易时间大于可用金额最接近支付金额的数字货币的交易时间,返回执行S20,如果可用金额最小的数字货币组合的交易时间不大于可用金额最接近支付金额的数字货币的交易时间,则执行S19;如果不存在可用金额最接近支付金额的数字货币,则执行S19;S19,将最优的可用金额最小的数字货币组合作为待输出数字货币,执行S21;S20,将可用金额最接近支付金额的数字货币作为待输出数字货币,执行S21;S21,输出待输出数字货币;S22,结束流程。此外,在选取的数字货币数量加一,将剩余数字货币从大到小进行排列之后,选取可用金额最小的数字货币组合之前,还包括:判断全部数字货币的可用金额是否大于等于支付金额,在判断全部数字货币的可用金额大于等于支付金额的情况下,执行选取可用金额最小的数字货币组合的步骤。此外,获取支付金额之前,还包括:设置基本信息参数,其中,基本信息参数包括:传输初始数字货币的耗时mX、传输一条支付数据链的耗时X、计算一次签名的耗时B和验证一条签名的耗时C。此外,预设时间为:mX+X+B+3Cms。由上述本专利技术提供的技术方案可以看出,本专利技术提供了一种硬件钱包,包括:输入模块、第一判断模块、第二判断模块、第一获取模块、第二获取模块、第一交易时间计算模块、数字货币选取模块、数字货币数量增加模块、数字货币组合选取模块、剩余货币判断模块、数字货币去掉模块、第二交易时间计算模块、第三交易时间计算模块、第二待输出数字货币确定模块、第一待输出数字货币确定模块、输出模块和流程结束模块,其中,输入模块,用于获取支付金额,并触发第一判断模块执行操作;第一判断模块,用于将存储的数字货币按照可用金额从大到小排列,其中,数字货币包括:初始数字货币;和/或,数字货币包括:初始数字货币和至少一个支付数据链;判断是否存在至少一个可用金额大于等于支付金额的数字货币,如果存在则触发第二判断模块执行操作,如果不存在则触发数字货币选取模块执行操作;第二判断模块,用于获取大于等于支付金额的全部数字货币,判断全部数字货币中的每个数字货币是否包含支付数据链,如果有不包含支付数据链的数字货币,则触发第一获取模块执行操作,如果没有不包含支付数据链的数字货币,则触发第二获取模块执行操作;第一获取模块,用于获取不包含支付数据链的数字货币,触发第一交易时间计算模块执行操作;第二获取模块,用于获取包含支付数据链最少的数字货币,触发第一交易时间计算模块执行操作;第一交易时间计算模块,用于选取的数字货币数量确定为一,确定一个可用金额最接近支付金额的数字货币,计算可用金额最接近支付金额的数字货币的交易时间,其中,交易时间包括:传输可用金额最接近支付金额的数字货币的耗时、对可用金额最接近支付金额的数字货币进行签名的耗时和对端设备验证可用金额最接近支付金额的数字货币的签名的耗时之和;判断可用金额最接近支付金额的数字货币的交易时间是否大于预设时间,如果大于预设时间,触发数字货币选取模块执行操作,如果不大于预设时间,触发第一待输出数字货币确定模块执行操作;数字货币选取模块,用于在剩余数字货币中选取数字货币,触发数字货币数量增加模块执行操作;数字货币数量增加模块,用于选取的数字货币数量加一,将剩余数字货币从大到小进行排列,触发数字货币组合选取模块执行操作;数字货币组合选取模块,选取可用金额最小的数字货币组合,判断可用金额最小的数字货币组合是否大于等于支付金额,如果可用金额最小的数字货币组合小于支付金额,触发剩余货币判断模块执行操作,如果可用金额最小的数字货币组合大于等于支付金额,则触发第二交易时间计算模块执本文档来自技高网...

【技术保护点】
1.一种硬件钱包数字货币选取方法,其特征在于,包括:/nS1,获取支付金额;/nS2,将存储的数字货币按照可用金额从大到小排列,其中,所述数字货币包括:初始数字货币;和/或,所述数字货币包括:初始数字货币和至少一个支付数据链;/nS3,判断是否存在至少一个可用金额大于等于所述支付金额的数字货币,如果存在则执行步骤S4,如果不存在则执行步骤S9;/nS4,获取大于等于所述支付金额的全部数字货币,判断全部数字货币中的每个数字货币是否包含支付数据链,如果有不包含支付数据链的数字货币,则执行S5,如果没有不包含支付数据链的数字货币,则执行S6;/nS5,获取所述不包含支付数据链的数字货币,执行S7;/nS6,获取包含支付数据链最少的数字货币,执行S7;/nS7,选取的数字货币数量确定为一,确定一个可用金额最接近所述支付金额的数字货币,计算所述可用金额最接近所述支付金额的数字货币的交易时间,其中,所述交易时间包括:传输所述可用金额最接近所述支付金额的数字货币的耗时、对所述可用金额最接近所述支付金额的数字货币进行签名的耗时和对端设备验证所述可用金额最接近所述支付金额的数字货币的签名的耗时之和;/nS8,判断所述可用金额最接近所述支付金额的数字货币的交易时间是否大于预设时间,如果大于预设时间,执行S9,如果不大于预设时间,执行S20;/nS9,在剩余数字货币中选取数字货币;/nS10,选取的数字货币数量加一,将剩余数字货币从大到小进行排列;/nS11,选取可用金额最小的数字货币组合,判断所述可用金额最小的数字货币组合是否大于等于所述支付金额,如果所述可用金额最小的数字货币组合小于所述支付金额,执行步骤S12,如果所述可用金额最小的数字货币组合大于等于所述支付金额,则执行S14;/nS12,判断是否还有剩余货币,如果还有剩余货币,执行S13,如果没有剩余货币,且选取的数字货币数量小于所述硬件钱包中数字货币的总数,执行S10,如果没有剩余货币,且选取的数字货币数量等于所述硬件钱包中数字货币的总数,执行S22;/nS13,去掉可用金额最小的数字货币,返回执行S11;/nS14,获取包含支付数据链最多的数字货币;/nS15,计算所述包含支付数据链最多的数字货币的交易时间;/nS16,判断所述包含支付数据链最多的数字货币的交易时间是否大于所述预设时间,如果所述包含支付数据链最多的数字货币的交易时间大于所述预设时间,则返回执行S10,如果所述包含支付数据链最多的数字货币的交易时间小于等于所述预设时间,则执行S17;/nS17,确定最优的可用金额最小的数字货币组合,计算所述最优的可用金额最小的数字货币组合的交易时间;/nS18,如果存在可用金额最接近所述支付金额的数字货币,判断所述最优的可用金额最小的数字货币组合的交易时间是否大于所述可用金额最接近所述支付金额的数字货币的交易时间,如果所述最优的可用金额最小的数字货币组合的交易时间大于所述可用金额最接近所述支付金额的数字货币的交易时间,返回执行S20,如果所述可用金额最小的数字货币组合的交易时间不大于可用金额最接近所述支付金额的数字货币的交易时间,则执行S19;如果不存在可用金额最接近所述支付金额的数字货币,则执行S19;/nS19,将所述最优的可用金额最小的数字货币组合作为待输出数字货币,执行S21;/nS20,将所述可用金额最接近所述支付金额的数字货币作为待输出数字货币,执行S21;/nS21,输出所述待输出数字货币;/nS22,结束流程。/n...

【技术特征摘要】
1.一种硬件钱包数字货币选取方法,其特征在于,包括:
S1,获取支付金额;
S2,将存储的数字货币按照可用金额从大到小排列,其中,所述数字货币包括:初始数字货币;和/或,所述数字货币包括:初始数字货币和至少一个支付数据链;
S3,判断是否存在至少一个可用金额大于等于所述支付金额的数字货币,如果存在则执行步骤S4,如果不存在则执行步骤S9;
S4,获取大于等于所述支付金额的全部数字货币,判断全部数字货币中的每个数字货币是否包含支付数据链,如果有不包含支付数据链的数字货币,则执行S5,如果没有不包含支付数据链的数字货币,则执行S6;
S5,获取所述不包含支付数据链的数字货币,执行S7;
S6,获取包含支付数据链最少的数字货币,执行S7;
S7,选取的数字货币数量确定为一,确定一个可用金额最接近所述支付金额的数字货币,计算所述可用金额最接近所述支付金额的数字货币的交易时间,其中,所述交易时间包括:传输所述可用金额最接近所述支付金额的数字货币的耗时、对所述可用金额最接近所述支付金额的数字货币进行签名的耗时和对端设备验证所述可用金额最接近所述支付金额的数字货币的签名的耗时之和;
S8,判断所述可用金额最接近所述支付金额的数字货币的交易时间是否大于预设时间,如果大于预设时间,执行S9,如果不大于预设时间,执行S20;
S9,在剩余数字货币中选取数字货币;
S10,选取的数字货币数量加一,将剩余数字货币从大到小进行排列;
S11,选取可用金额最小的数字货币组合,判断所述可用金额最小的数字货币组合是否大于等于所述支付金额,如果所述可用金额最小的数字货币组合小于所述支付金额,执行步骤S12,如果所述可用金额最小的数字货币组合大于等于所述支付金额,则执行S14;
S12,判断是否还有剩余货币,如果还有剩余货币,执行S13,如果没有剩余货币,且选取的数字货币数量小于所述硬件钱包中数字货币的总数,执行S10,如果没有剩余货币,且选取的数字货币数量等于所述硬件钱包中数字货币的总数,执行S22;
S13,去掉可用金额最小的数字货币,返回执行S11;
S14,获取包含支付数据链最多的数字货币;
S15,计算所述包含支付数据链最多的数字货币的交易时间;
S16,判断所述包含支付数据链最多的数字货币的交易时间是否大于所述预设时间,如果所述包含支付数据链最多的数字货币的交易时间大于所述预设时间,则返回执行S10,如果所述包含支付数据链最多的数字货币的交易时间小于等于所述预设时间,则执行S17;
S17,确定最优的可用金额最小的数字货币组合,计算所述最优的可用金额最小的数字货币组合的交易时间;
S18,如果存在可用金额最接近所述支付金额的数字货币,判断所述最优的可用金额最小的数字货币组合的交易时间是否大于所述可用金额最接近所述支付金额的数字货币的交易时间,如果所述最优的可用金额最小的数字货币组合的交易时间大于所述可用金额最接近所述支付金额的数字货币的交易时间,返回执行S20,如果所述可用金额最小的数字货币组合的交易时间不大于可用金额最接近所述支付金额的数字货币的交易时间,则执行S19;如果不存在可用金额最接近所述支付金额的数字货币,则执行S19;
S19,将所述最优的可用金额最小的数字货币组合作为待输出数字货币,执行S21;
S20,将所述可用金额最接近所述支付金额的数字货币作为待输出数字货币,执行S21;
S21,输出所述待输出数字货币;
S22,结束流程。


2.根据权利要求1所述的方法,其特征在于,在所述选取的数字货币数量加一,将剩余数字货币从大到小进行排列之后,所述选取可用金额最小的数字货币组合之前,还包括:
判断全部数字货币的可用金额是否大于等于所述支付金额,在判断全部数字货币的可用金额大于等于所述支付金额的情况下,执行所述选取可用金额最小的数字货币组合的步骤。


3.根据权利要求1所述的方法,其特征在于,还包括:所述获取支付金额之前,还包括:
设置基本信息参数,其中,所述基本信息参数包括:传输所述初始数字货币的耗时mX、传输一条支付数据链的耗时X、计算一次签名的耗时B和验证一条签名的耗时C。


4.根据权利要求3所述的方法,其特征在于,所述预设时间为:mX+X+B+3Cms。


5.一种硬件钱包,其特征在于,包括:输入模块、第一判断模块、第二判断模块、第一获取模块、第二获取模块、第一交易时间计算模块、数字货币选取模块、数字货币数量增加模块、数字货币组合选取模块、剩余货币判断模块、数字货币去掉模块、第二交易时间计算模块、第三交易时间计算模块、第二待输出数字货币确定模块、第一待输出数字货币确定模块、输出模块和流程结束模块,其中,
所述输入模块,用于获取支付金额,并触发所述第一判断模块执行操作;
所述第一判断模块,用于将存储的数字货币按照可用金额从大到小排列,其中,所述数字货币包括:初始数字货币;和/或,所述数字货币包括:初始数字货币和至少一个...

【专利技术属性】
技术研发人员:李东声
申请(专利权)人:天地融科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1