System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于区块链中心化货币系统进行双离线支付的方法技术方案_技高网

一种基于区块链中心化货币系统进行双离线支付的方法技术方案

技术编号:40590217 阅读:9 留言:0更新日期:2024-03-12 21:50
本发明专利技术公开了一种基于区块链中心化货币系统进行双离线支付的方法,该方法包括下述步骤:付款方通过区块链发起交易向托管机构预存离线支付额度;付款方向收款方出示当前离线余额信息;收款方判断是否接受离线付款;付款方向收款方发送离线支付票据;当重新获得网络连接时收款方将其持有的离线支付票据发送至区块链网络;当托管机构监听区块链上的提款请求后,获取离线支付票据信息,托管机构向收款方付款并扣除付款方离线支付余额。本发明专利技术以预存离线支付金额以及超额支付惩罚为核心,实现了收付款双方均在无网络连接的场景下进行交易的双离线支付。

【技术实现步骤摘要】

本专利技术涉及区块链数字货币支付,具体涉及一种基于区块链中心化货币系统进行双离线支付的方法


技术介绍

1、目前,基于公有链的去中心化数字货币系统发展迅速,2014年发布的以太坊允许用户自由地构建并在链上发布去中心化应用,在这个高度开放的区块链平台上,开发者们创造以去中心化金融为代表的许多有价值的应用,锁定在去中心化金融应用中的数字货币资产的市场价值也在不断攀升,但是基于公有链构建去中心化的数字货币系统及金融应用仍存在着一些缺陷,其中的一项缺陷是对于数字货币系统而言,想让数字货币和实物货币一样支持双离线支付十分困难;

2、双离线支付是指收付款双方均在无网络连接的场景下进行交易。对于实物货币而言,付款方交出其持有的货币以后就完成了所有权的转移。但是在数字代币系统中,代币的确权不是依靠物理实体的转移而是依靠登记在数字账本上的记录,而数据的易复制性使得支付方在收款方重新联网之前伪造付款交易变得十分简单。因此,亟需一种能够确保付款方无法双重花费的方法,以实现数字货币双离线支付。


技术实现思路

1、为了克服现有技术存在的缺陷与不足,本专利技术提供一种基于区块链中心化货币系统进行双离线支付的方法,本专利技术以预存离线支付金额以及超额支付惩罚为核心,付款方在离线支付之前,必须向指定托管机构预存其离线支付可用额度,其离线可支付金额上限以此额度为限;在检测到付款方超额支付之后,托管机构可以拒绝超额提款的请求,并没收其剩余预存款项,并报送监管机构停用其账户及冻结其当前持有代币,本专利技术解决了双重花费问题,实现了数字货币双离线支付,扩展了数字货币的应用场景。

2、为了达到上述目的,本专利技术采用以下技术方案:

3、本专利技术提供一种基于区块链中心化货币系统进行双离线支付的方法,包括下述步骤:

4、付款方通过区块链发起交易,向托管机构预存离线支付额度;

5、付款方出示离线账户信息,向收款方出示自己在区块上的离线账户信息的默克尔树路径证明;

6、收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,并与存储在本地的区块头中相应字段进行比较,判断默克尔树路径证明是否为真,若为真则接受离线支付请求;

7、当收款方判定接受离线支付请求后,付款方通过近场通信向收款方发送已签名的离线支付票据;

8、当收款方重新获得网络连接时,收款方将其持有的离线支付票据发送至区块链网络;

9、当托管机构监听区块链上的提款请求后,获取离线支付票据信息,若付款方的账户离线支付余额大于票据支付金额则向收款方转账;否则视为付款方超额支付,停止向收款方转账,并通过罚款交易没收付款方剩余预存款项。

10、作为优选的技术方案,在向托管机构预存离线支付额度的步骤之前,还包括离线支付权限请求步骤,付款方向区块链运营机构请求离线支付权限,并选择离线的托管机构,向托管机构预存离线支付额度。

11、作为优选的技术方案,所述向托管机构预存离线支付额度,向托管机构通过转账交易的方式进行预存,转账交易的数据结构包括:交易类型、交易版本、被转账代币、收款方公钥、付款方签名和交易编号;

12、所述被转账代币表示为代币数组,代币数组内的元素为代币的标识符,所述收款方公钥表示新的代币持有者的公钥,所述付款方签名表示当前代币持有者数字签名,所述交易编号由当前交易的哈希散列值表示;

13、转账完成后,付款方通过存款交易修改离线账户支付余额,当存款交易通过节点认证被写入区块后,离线支付额度在原有数额的基础上加上当前存款的金额;

14、存款交易的数据结构包括:交易类型、交易版本、存款交易编号、存款方公钥、存款方签名、交易编号;

15、所述存款交易编号表示付款方向托管机构转账的一笔转账交易的编号,所述存款方公钥用于告知系统存款的账号,所述存款方签名用于证明交易发起方是拥有对应账户私钥,所述交易编号由当前交易的哈希散列值表示。

16、作为优选的技术方案,在付款方出示离线账户信息的步骤之前,付款方和付款方存储最近的区块头数据,付款方保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息,进行双离线支付时,进行近场通信获得付款方和付款方存储的最旧区块编号,付款方将对应区块的账户数据以及结点数据发送给收款方。

17、作为优选的技术方案,所述收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,具体步骤包括:

18、当收款方收到付款方账户在区块的默克尔树路径证明时,收款方从叶子结点开始自底向上重新计算各结点的哈希值,直至根节点;

19、收款方将计算出的根结点的哈希值与客户端中区块头所存储的根结点哈希值进行比较,判断是否一致,若一致,表示付款方提供的账户状态正确,否则,表示付款方伪造了账户状态,收款方拒绝离线支付请求;

20、当判定付款方账户状态正确时,收款方根据账户离线时长和可支付余额判断是否接受此次离线支付请求,若接受,则向付款方发送接受付款回应。

21、作为优选的技术方案,所述离线支付票据的数据结构包括:时间戳、付款方公钥、收款方公钥、托管机构公钥、离线支付交易的金额、付款方签名、票据编号;

22、所述时间戳作为随机数,所述票据编号由当前票据的哈希散列值表示,作为离线支付票据的全局唯一标识符。

23、作为优选的技术方案,所述收款方将其持有的离线支付票据发送至区块链网络,具体包括:

24、收款方将其持有的离线支付票据发送至区块链网络,区块链网络节点验证该离线支付票据的票据编号是否唯一,若不是唯一则拒绝该离线支付票据,若是唯一则检查签名是否合法,若合法则将该离线支付票据加入到交易内存池等待打包;

25、一棵新的修改的默克尔前缀树被创建以存储离线支付票据状态,在托管机构付款前,离线支付票据状态为未支付;

26、当离线支付票据被写入区块时,在默克尔前缀树中插入包含该离线支付票据的结点。

27、作为优选的技术方案,若付款方的账户离线支付余额大于票据支付金额则向收款方转账,托管机构使用转账交易向收款方付款,通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额;

28、若付款方的账户离线支付余额小于票据支付金额,托管机构停止向收款方转账,将付款方账户中的已登记金额、已支付金额再加上离线支付余额的值,报送监管机构停用其账户及冻结其当前持有代币,未完成支付的离线支付票据一直保持未支付状态,在支付账户恢复为可用状态时,托管机构再次向目标账户付款。

29、作为优选的技术方案,所述通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额,所述付款交易的数据结构包括:交易类型、交易版本、转账交易编号、离线支付票据的编号、托管方签名、交易编号;

30、所述转账交易编号表示是托管机构向目标账户转账的一笔转账交易的编号,所述交易编号由当前交易的哈希散列值表示;...

【技术保护点】

1.一种基于区块链中心化货币系统进行双离线支付的方法,其特征在于,包括下述步骤:

2.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在向托管机构预存离线支付额度的步骤之前,还包括离线支付权限请求步骤,付款方向区块链运营机构请求离线支付权限,并选择离线的托管机构,向托管机构预存离线支付额度。

3.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述向托管机构预存离线支付额度,向托管机构通过转账交易的方式进行预存,转账交易的数据结构包括:交易类型、交易版本、被转账代币、收款方公钥、付款方签名和交易编号;

4.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在付款方出示离线账户信息的步骤之前,付款方和付款方存储最近的区块头数据,付款方保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息,进行双离线支付时,进行近场通信获得付款方和付款方存储的最旧区块编号,付款方将对应区块的账户数据以及结点数据发送给收款方。

5.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,具体步骤包括:

6.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述离线支付票据的数据结构包括:时间戳、付款方公钥、收款方公钥、托管机构公钥、离线支付交易的金额、付款方签名、票据编号;

7.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述收款方将其持有的离线支付票据发送至区块链网络,具体包括:

8.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,若付款方的账户离线支付余额大于票据支付金额则向收款方转账,托管机构使用转账交易向收款方付款,通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额;

9.根据权利要求8所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额,所述付款交易的数据结构包括:交易类型、交易版本、转账交易编号、离线支付票据的编号、托管方签名、交易编号;

10.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述罚款交易的数据结构包括:交易类型、交易版本、离线支付票据的编号、托管方签名、交易编号;

...

【技术特征摘要】

1.一种基于区块链中心化货币系统进行双离线支付的方法,其特征在于,包括下述步骤:

2.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在向托管机构预存离线支付额度的步骤之前,还包括离线支付权限请求步骤,付款方向区块链运营机构请求离线支付权限,并选择离线的托管机构,向托管机构预存离线支付额度。

3.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述向托管机构预存离线支付额度,向托管机构通过转账交易的方式进行预存,转账交易的数据结构包括:交易类型、交易版本、被转账代币、收款方公钥、付款方签名和交易编号;

4.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在付款方出示离线账户信息的步骤之前,付款方和付款方存储最近的区块头数据,付款方保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息,进行双离线支付时,进行近场通信获得付款方和付款方存储的最旧区块编号,付款方将对应区块的账户数据以及结点数据发送给收款方。

5.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈...

【专利技术属性】
技术研发人员:吴昊天李一凡郑裕聪陈思洪汝旗
申请(专利权)人:华南理工大学
类型:发明
国别省市:

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

1