CN117670532A - 一种基于区块链中心化货币系统进行双离线支付的方法 - Google Patents
一种基于区块链中心化货币系统进行双离线支付的方法 Download PDFInfo
- Publication number
- CN117670532A CN117670532A CN202311414744.3A CN202311414744A CN117670532A CN 117670532 A CN117670532 A CN 117670532A CN 202311414744 A CN202311414744 A CN 202311414744A CN 117670532 A CN117670532 A CN 117670532A
- Authority
- CN
- China
- Prior art keywords
- payment
- transaction
- payee
- payer
- offline payment
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000007246 mechanism Effects 0.000 claims abstract description 26
- 238000012546 transfer Methods 0.000 claims description 30
- 230000009977 dual effect Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 239000003999 initiator Substances 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于区块链中心化货币系统进行双离线支付的方法,该方法包括下述步骤:付款方通过区块链发起交易向托管机构预存离线支付额度;付款方向收款方出示当前离线余额信息;收款方判断是否接受离线付款;付款方向收款方发送离线支付票据;当重新获得网络连接时收款方将其持有的离线支付票据发送至区块链网络;当托管机构监听区块链上的提款请求后,获取离线支付票据信息,托管机构向收款方付款并扣除付款方离线支付余额。本发明以预存离线支付金额以及超额支付惩罚为核心,实现了收付款双方均在无网络连接的场景下进行交易的双离线支付。
Description
技术领域
本发明涉及区块链数字货币支付技术领域,具体涉及一种基于区块链中心化货币系统进行双离线支付的方法。
背景技术
目前,基于公有链的去中心化数字货币系统发展迅速,2014年发布的以太坊允许用户自由地构建并在链上发布去中心化应用,在这个高度开放的区块链平台上,开发者们创造以去中心化金融为代表的许多有价值的应用,锁定在去中心化金融应用中的数字货币资产的市场价值也在不断攀升,但是基于公有链构建去中心化的数字货币系统及金融应用仍存在着一些缺陷,其中的一项缺陷是对于数字货币系统而言,想让数字货币和实物货币一样支持双离线支付十分困难;
双离线支付是指收付款双方均在无网络连接的场景下进行交易。对于实物货币而言,付款方交出其持有的货币以后就完成了所有权的转移。但是在数字代币系统中,代币的确权不是依靠物理实体的转移而是依靠登记在数字账本上的记录,而数据的易复制性使得支付方在收款方重新联网之前伪造付款交易变得十分简单。因此,亟需一种能够确保付款方无法双重花费的方法,以实现数字货币双离线支付。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提供一种基于区块链中心化货币系统进行双离线支付的方法,本发明以预存离线支付金额以及超额支付惩罚为核心,付款方在离线支付之前,必须向指定托管机构预存其离线支付可用额度,其离线可支付金额上限以此额度为限;在检测到付款方超额支付之后,托管机构可以拒绝超额提款的请求,并没收其剩余预存款项,并报送监管机构停用其账户及冻结其当前持有代币,本发明解决了双重花费问题,实现了数字货币双离线支付,扩展了数字货币的应用场景。
为了达到上述目的,本发明采用以下技术方案:
本发明提供一种基于区块链中心化货币系统进行双离线支付的方法,包括下述步骤:
付款方通过区块链发起交易,向托管机构预存离线支付额度;
付款方出示离线账户信息,向收款方出示自己在区块上的离线账户信息的默克尔树路径证明;
收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,并与存储在本地的区块头中相应字段进行比较,判断默克尔树路径证明是否为真,若为真则接受离线支付请求;
当收款方判定接受离线支付请求后,付款方通过近场通信向收款方发送已签名的离线支付票据;
当收款方重新获得网络连接时,收款方将其持有的离线支付票据发送至区块链网络;
当托管机构监听区块链上的提款请求后,获取离线支付票据信息,若付款方的账户离线支付余额大于票据支付金额则向收款方转账;否则视为付款方超额支付,停止向收款方转账,并通过罚款交易没收付款方剩余预存款项。
作为优选的技术方案,在向托管机构预存离线支付额度的步骤之前,还包括离线支付权限请求步骤,付款方向区块链运营机构请求离线支付权限,并选择离线的托管机构,向托管机构预存离线支付额度。
作为优选的技术方案,所述向托管机构预存离线支付额度,向托管机构通过转账交易的方式进行预存,转账交易的数据结构包括:交易类型、交易版本、被转账代币、收款方公钥、付款方签名和交易编号;
所述被转账代币表示为代币数组,代币数组内的元素为代币的标识符,所述收款方公钥表示新的代币持有者的公钥,所述付款方签名表示当前代币持有者数字签名,所述交易编号由当前交易的哈希散列值表示;
转账完成后,付款方通过存款交易修改离线账户支付余额,当存款交易通过节点认证被写入区块后,离线支付额度在原有数额的基础上加上当前存款的金额;
存款交易的数据结构包括:交易类型、交易版本、存款交易编号、存款方公钥、存款方签名、交易编号;
所述存款交易编号表示付款方向托管机构转账的一笔转账交易的编号,所述存款方公钥用于告知系统存款的账号,所述存款方签名用于证明交易发起方是拥有对应账户私钥,所述交易编号由当前交易的哈希散列值表示。
作为优选的技术方案,在付款方出示离线账户信息的步骤之前,付款方和付款方存储最近的区块头数据,付款方保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息,进行双离线支付时,进行近场通信获得付款方和付款方存储的最旧区块编号,付款方将对应区块的账户数据以及结点数据发送给收款方。
作为优选的技术方案,所述收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,具体步骤包括:
当收款方收到付款方账户在区块的默克尔树路径证明时,收款方从叶子结点开始自底向上重新计算各结点的哈希值,直至根节点;
收款方将计算出的根结点的哈希值与客户端中区块头所存储的根结点哈希值进行比较,判断是否一致,若一致,表示付款方提供的账户状态正确,否则,表示付款方伪造了账户状态,收款方拒绝离线支付请求;
当判定付款方账户状态正确时,收款方根据账户离线时长和可支付余额判断是否接受此次离线支付请求,若接受,则向付款方发送接受付款回应。
作为优选的技术方案,所述离线支付票据的数据结构包括:时间戳、付款方公钥、收款方公钥、托管机构公钥、离线支付交易的金额、付款方签名、票据编号;
所述时间戳作为随机数,所述票据编号由当前票据的哈希散列值表示,作为离线支付票据的全局唯一标识符。
作为优选的技术方案,所述收款方将其持有的离线支付票据发送至区块链网络,具体包括:
收款方将其持有的离线支付票据发送至区块链网络,区块链网络节点验证该离线支付票据的票据编号是否唯一,若不是唯一则拒绝该离线支付票据,若是唯一则检查签名是否合法,若合法则将该离线支付票据加入到交易内存池等待打包;
一棵新的修改的默克尔前缀树被创建以存储离线支付票据状态,在托管机构付款前,离线支付票据状态为未支付;
当离线支付票据被写入区块时,在默克尔前缀树中插入包含该离线支付票据的结点。
作为优选的技术方案,若付款方的账户离线支付余额大于票据支付金额则向收款方转账,托管机构使用转账交易向收款方付款,通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额;
若付款方的账户离线支付余额小于票据支付金额,托管机构停止向收款方转账,将付款方账户中的已登记金额、已支付金额再加上离线支付余额的值,报送监管机构停用其账户及冻结其当前持有代币,未完成支付的离线支付票据一直保持未支付状态,在支付账户恢复为可用状态时,托管机构再次向目标账户付款。
作为优选的技术方案,所述通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额,所述付款交易的数据结构包括:交易类型、交易版本、转账交易编号、离线支付票据的编号、托管方签名、交易编号;
所述转账交易编号表示是托管机构向目标账户转账的一笔转账交易的编号,所述交易编号由当前交易的哈希散列值表示;
区块链网络节点收到一笔付款交易后,验证交易是否合法,具体包括:
使用哈希运算计算交易编号是否合法,若合法,进入下一步验证;
检查托管方签名是否合法,若是,进入下一步验证;
取出离线支付票据的编号指向的票据中的付款方公钥、收款方公钥、托管方公钥和支付金额;
检查收款方账户是否存在,再检查账户的身份认证级别和状态,若满足实名注册要求且处于可用状态,进入下一步验证,否则为未授权用户接收代币,违反交易规则,丢弃;
检查转账交易编号指向的转账交易是否存在,若存在,进入下一步验证;
计算转账交易总金额是否等于票据支付金额,若相等,修改离线支付票据的支付状态和付款方账户中的已支付金额;
若上述交易验证全部通过,将交易标记为合法并保存到交易缓存池,等待共识排序。
作为优选的技术方案,所述罚款交易的数据结构包括:交易类型、交易版本、离线支付票据的编号、托管方签名、交易编号;
所述托管方签名用于证明交易发起方拥有对应账户私钥,所述交易编号由当前交易的哈希散列值表示。
本发明与现有技术相比,具有如下优点和有益效果:
本发明在双离线场景下,以预存离线支付金额以及超额支付惩罚为核心,实现了收付款双方均在无网络连接的场景下进行交易的双离线支付,解决了基于区块链的中心化货币系统中的双重花费问题,扩展了数字货币系统的应用场景。
附图说明
图1为本发明基于区块链中心化货币系统进行双离线支付的方法的流程示意图;
图2为本发明区块头数据结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
如图1所示,本实施例提供一种基于区块链中心化货币系统进行双离线支付的方法,包括下述步骤:
S1:付款方预存离线支付额度:付款方完成身份认证后,可以申请开通离线支付功能,然后向指定托管机构预存离线支付款项,并更新自己账户的余额,具体步骤包括:
S11:付款方通过实名认证,取得离线支付权限:用户向区块链运营机构提交实名认证资料,申请开通离线支付权限,并选择任一有资质的官方指定机构作为自己的离线资金托管机构;
S12:付款方通过转账交易向托管机构指定账户(以下简称托管账户)存入一定数额代币。
如表1所示,转账交易的数据结构如下:
表1转账交易的数据结构
S13:当转账完成后,用户通过存款交易更新自己的离线账户支付余额。当存款交易通过区块链网络节点认证被写入区块后,离线支付额度会在原有数额的基础上加上此次存款的金额(刚开通未存款时金额为零)。
如表2所示,存款交易的数据结构如下:
表2存款交易的数据结构
当存款交易通过区块链网络节点认证被写入区块后,离线支付额度会在原有数额的基础上加上此次存款的金额,如表3所示,用户的账户状态被修改为如下账户状态:
表3开通了离线支付功能且完成预存金额的账户状态
S2:付款方出示离线账户信息:付款方向收款方出示自己在区块N上的账户信息的默克尔树路径证明,目的是使收款方确信账户信息真实有效,如图2所示,得到默克尔树路径的结构,具体步骤如下:
S21:当收付款双方决定进行双离线支付时,进行近场通信获得双方客户端所存储的最旧区块编号N;
S22:付款方将对应区块N的账户数据以及结点数据发送给收款方;
在本实施例中,为了完成双离线支付,收付款双方的客户端必须存储最近的区块头数据,而且付款方还要存储账户的默克尔树路径,默克尔树路径的作用是当客户端只存储了区块头而没有存储完整区块数据时,也能验证账户的状态。付款方为了向收款方证明账户状态,其需要保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息。
S3:收款方决定是否接受离线支付:收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值accountRootHash,并与存储在本地的区块头中相应字段进行比较,判断证明是否为真,然后再决定是否要接受此次离线支付,具体步骤包括:
S31:当收款方收到付款方账户在区块N的默克尔树路径证明时,收款方从叶子结点开始自底向上重新计算各结点的哈希值,直至根节点,具体的,如图2所示,付款方为了证明存储在叶子结点LN3中的账户数据D,需要提供以下数据:(H(BN1),H(BN2),H(BN3),H(BN4),H(LN1),H(LN2),D)。收款方收到数据D后,计算H(LN3)=H(D),计算H(BN4)=H(H(LN2),H(LN3)),计算H(BN3)=H(H(BN4)),计算H(BN2)=H(H(LN1),H(BN3)),最后令accountRootHash'=H(H(BN1),H(BN2));
S32:收款方将计算出的根结点的哈希值accountRootHash'与客户端中区块头所存储的根结点哈希值accountRootHash进行比较,观察是否一致,若一致,说明付款方提供的账户状态正确;否则,付款方伪造了账户状态,收款方应该直接拒绝离线支付请求;
S33:当付款方账户状态正确时,收款方再根据账户离线时长(即区块N中存储的时刻与当前时刻的时间差)和可支付余额来决定是否接受此次离线支付请求,若接受,则向付款方发送接受付款回应;
S4:付款方发送离线支付票据:收款方决定接受离线支付后,付款方通过近场通信向收款方发送已签名的离线支付票据,具体步骤包括:
S41:付款方通过近场通信向收款方发送离线支付票据,如表4所示,得到离线支付票据的数据结构,离线支付票据中含有时间戳和票据编号等数据,其中的时间戳作为随机数,允许付款方向同一个收款方多次离线付款。票据编号为离线支付票据的全局唯一标识符,同一个票据编号只能被上链一次。
表4离线支付票据的数据结构
字段 | 符号 | 描述 |
时间戳 | timestamp | 时间戳,作为随机数 |
付款方 | payerPubKey | 付款方公钥,付款时扣除该地址离线支付额度 |
收款方 | payeePubKey | 收款方公钥,托管机构向该地址付款 |
托管方 | escrowPubKey | 托管方公钥,指明该支票由哪间托管机构代为付款 |
金额 | value | 金额,指明了此次双离线支付交易的金额 |
付款方签名 | paymentSig | 付款方数字签名,当签名合法时该支票才有效 |
票据编号 | checkid | 票据编号,由当前票据的哈希散列值表示 |
离线支付票据的作用有三:(1)付款方不能抵赖自己曾经的离线支付行为;(2)收款方仅被允许进行一次合法提款;(3)托管方不能抵赖没有按照协议向收款方付款的行为。
S42:收款方收到票据后,验证其签名是否合法,若合法,面对面的双离线支付流程结束。
S5:收款方上传离线支付票据:当收款方重新获得网络连接时,将其持有的离线支付票据发送至区块链网络,具体步骤包括:
S51:当收款方重新获得网络连接时,收款方就会将其持有的离线支付票据发送至区块链网络。
S52:区块链网络节点会首先验证该票据的票据编号checkid是否唯一(即该票据从未被打包进区块),若否,拒绝该支票;否则,检查签名是否合法,若合法,则将该票据加入到交易内存池等待打包。
S53:一棵新的修改的默克尔前缀树(MPT)被创建以存储支票状态,在托管机构付款前,支票状态为未支付。
S54:当票据被写入区块时,会在MPT中插入包含该票据的结点。
S6:托管机构向收款方付款:当托管机构监听区块链上的提款请求后,获取离线支付票据信息,若付款人离线支付余额充足,则向收款方转账;否则视为付款方超额支付,采取对应的惩罚措施,具体步骤包括:
S61:托管机构监听区块链上的提款请求,获取离线支付票据的相关信息;
S62:托管机构检查账户离线支付余额是否大于票据支付金额,若是,托管机构使用转账交易向收款方付款,然后通过付款交易修改票据的支付状态和付款方账户中的已支付金额,如表5所示,得到付款交易的数据结构如下:
表5付款交易的数据结构
S63:区块链网络节点收到一笔付款交易后,其按照以下流程验证交易是否合法:(1)使用哈希运算计算txid是否合法,若合法,进入下一步;(2)检查托管方签名(escrowSig)是否合法,若是,进入下一步;(3)取出checkid指向的票据中的付款方公钥(payerPubKey)、收款方公钥(payeePubKey)、托管方公钥(escrowPubKey)和支付金额(value);(4)检查收款方账户是否存在,然后再检查账户的身份认证级别和状态,若满足实名注册要求且处于可用状态,进入下一步,否则为未授权用户接收代币,违反交易规则,丢弃;(5)检查paymentTxid指向的转账交易是否存在,若存在,进入下一步;(6)计算paymentTx总金额是否等于票据支付金额,若相等,修改票据的支付状态和付款方账户中的已支付金额;(7)最后,若上述检查全部通过,那么将交易标记为合法并保存到交易缓存池,等待共识排序。第(6)步的主要作用是确保托管方足额支付,若托管方只支付了一部分金额,那么此笔付款交易不会生效,同时票据的支付状态和付款方账户中的已支付金额也不会被修改,有效地防止托管方作恶。
S64:当离线支付余额小于票据支付金额,此时是一笔超额提款,托管机构将不会向目标账户付款,并通过罚款交易没收付款方剩余预存款项,如表6所示,得到罚款交易的数据结构。当离线支付余额(deposit与paid的差值)小于票据支付金额(value)时,罚款交易合法,然后将付款方账户中的已登记金额(claim)和已支付金额(paid)加上离线支付余额的值,同时报送监管机构停用其账户及冻结其当前持有代币。未完成支付的离线支付票据一直会保持未支付状态,在支付账户恢复为可用状态时,托管机构会再次尝试向目标账户付款。
表6罚款交易的数据结构
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链中心化货币系统进行双离线支付的方法,其特征在于,包括下述步骤:
付款方通过区块链发起交易,向托管机构预存离线支付额度;
付款方出示离线账户信息,向收款方出示自己在区块上的离线账户信息的默克尔树路径证明;
收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,并与存储在本地的区块头中相应字段进行比较,判断默克尔树路径证明是否为真,若为真则接受离线支付请求;
当收款方判定接受离线支付请求后,付款方通过近场通信向收款方发送已签名的离线支付票据;
当收款方重新获得网络连接时,收款方将其持有的离线支付票据发送至区块链网络;
当托管机构监听区块链上的提款请求后,获取离线支付票据信息,若付款方的账户离线支付余额大于票据支付金额则向收款方转账;否则视为付款方超额支付,停止向收款方转账,并通过罚款交易没收付款方剩余预存款项。
2.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在向托管机构预存离线支付额度的步骤之前,还包括离线支付权限请求步骤,付款方向区块链运营机构请求离线支付权限,并选择离线的托管机构,向托管机构预存离线支付额度。
3.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述向托管机构预存离线支付额度,向托管机构通过转账交易的方式进行预存,转账交易的数据结构包括:交易类型、交易版本、被转账代币、收款方公钥、付款方签名和交易编号;
所述被转账代币表示为代币数组,代币数组内的元素为代币的标识符,所述收款方公钥表示新的代币持有者的公钥,所述付款方签名表示当前代币持有者数字签名,所述交易编号由当前交易的哈希散列值表示;
转账完成后,付款方通过存款交易修改离线账户支付余额,当存款交易通过节点认证被写入区块后,离线支付额度在原有数额的基础上加上当前存款的金额;
存款交易的数据结构包括:交易类型、交易版本、存款交易编号、存款方公钥、存款方签名、交易编号;
所述存款交易编号表示付款方向托管机构转账的一笔转账交易的编号,所述存款方公钥用于告知系统存款的账号,所述存款方签名用于证明交易发起方是拥有对应账户私钥,所述交易编号由当前交易的哈希散列值表示。
4.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,在付款方出示离线账户信息的步骤之前,付款方和付款方存储最近的区块头数据,付款方保存账户的状态数据以及通向存储该数据的叶子结点的其他结点的信息,进行双离线支付时,进行近场通信获得付款方和付款方存储的最旧区块编号,付款方将对应区块的账户数据以及结点数据发送给收款方。
5.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述收款方根据付款方提供的默克尔树路径证明数据重新计算账户根哈希值,具体步骤包括:
当收款方收到付款方账户在区块的默克尔树路径证明时,收款方从叶子结点开始自底向上重新计算各结点的哈希值,直至根节点;
收款方将计算出的根结点的哈希值与客户端中区块头所存储的根结点哈希值进行比较,判断是否一致,若一致,表示付款方提供的账户状态正确,否则,表示付款方伪造了账户状态,收款方拒绝离线支付请求;
当判定付款方账户状态正确时,收款方根据账户离线时长和可支付余额判断是否接受此次离线支付请求,若接受,则向付款方发送接受付款回应。
6.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述离线支付票据的数据结构包括:时间戳、付款方公钥、收款方公钥、托管机构公钥、离线支付交易的金额、付款方签名、票据编号;
所述时间戳作为随机数,所述票据编号由当前票据的哈希散列值表示,作为离线支付票据的全局唯一标识符。
7.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述收款方将其持有的离线支付票据发送至区块链网络,具体包括:
收款方将其持有的离线支付票据发送至区块链网络,区块链网络节点验证该离线支付票据的票据编号是否唯一,若不是唯一则拒绝该离线支付票据,若是唯一则检查签名是否合法,若合法则将该离线支付票据加入到交易内存池等待打包;
一棵新的修改的默克尔前缀树被创建以存储离线支付票据状态,在托管机构付款前,离线支付票据状态为未支付;
当离线支付票据被写入区块时,在默克尔前缀树中插入包含该离线支付票据的结点。
8.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,若付款方的账户离线支付余额大于票据支付金额则向收款方转账,托管机构使用转账交易向收款方付款,通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额;
若付款方的账户离线支付余额小于票据支付金额,托管机构停止向收款方转账,将付款方账户中的已登记金额、已支付金额再加上离线支付余额的值,报送监管机构停用其账户及冻结其当前持有代币,未完成支付的离线支付票据一直保持未支付状态,在支付账户恢复为可用状态时,托管机构再次向目标账户付款。
9.根据权利要求8所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述通过付款交易修改离线支付票据的支付状态和付款方账户中的已支付金额,所述付款交易的数据结构包括:交易类型、交易版本、转账交易编号、离线支付票据的编号、托管方签名、交易编号;
所述转账交易编号表示是托管机构向目标账户转账的一笔转账交易的编号,所述交易编号由当前交易的哈希散列值表示;
区块链网络节点收到一笔付款交易后,验证交易是否合法,具体包括:
使用哈希运算计算交易编号是否合法,若合法,进入下一步验证;
检查托管方签名是否合法,若是,进入下一步验证;
取出离线支付票据的编号指向的票据中的付款方公钥、收款方公钥、托管方公钥和支付金额;
检查收款方账户是否存在,再检查账户的身份认证级别和状态,若满足实名注册要求且处于可用状态,进入下一步验证,否则为未授权用户接收代币,违反交易规则,丢弃;
检查转账交易编号指向的转账交易是否存在,若存在,进入下一步验证;
计算转账交易总金额是否等于票据支付金额,若相等,修改离线支付票据的支付状态和付款方账户中的已支付金额;
若上述交易验证全部通过,将交易标记为合法并保存到交易缓存池,等待共识排序。
10.根据权利要求1所述的基于区块链中心化货币系统进行双离线支付的方法,其特征在于,所述罚款交易的数据结构包括:交易类型、交易版本、离线支付票据的编号、托管方签名、交易编号;
所述托管方签名用于证明交易发起方拥有对应账户私钥,所述交易编号由当前交易的哈希散列值表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311414744.3A CN117670532A (zh) | 2023-10-30 | 2023-10-30 | 一种基于区块链中心化货币系统进行双离线支付的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311414744.3A CN117670532A (zh) | 2023-10-30 | 2023-10-30 | 一种基于区块链中心化货币系统进行双离线支付的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117670532A true CN117670532A (zh) | 2024-03-08 |
Family
ID=90074215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311414744.3A Pending CN117670532A (zh) | 2023-10-30 | 2023-10-30 | 一种基于区块链中心化货币系统进行双离线支付的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117670532A (zh) |
-
2023
- 2023-10-30 CN CN202311414744.3A patent/CN117670532A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11037111B2 (en) | Method for issuing currency and making payment by managing balance database for each block in blockchain network and server using same | |
JP6920333B2 (ja) | ブロックチェーン上のセキュアなピアツーピア通信の方法 | |
US20200193432A1 (en) | Method and system for settling a blockchain transaction | |
US20200127813A1 (en) | Method and system for creating a user identity | |
JP6297851B2 (ja) | 分散型ユーザ間で価値を電子的に交換するためのシステムおよび方法 | |
US7004382B2 (en) | Payment validation network | |
CN112037068B (zh) | 资源转移方法、系统、装置、计算机设备和存储介质 | |
KR101837167B1 (ko) | Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버 | |
WO2013100824A2 (ru) | Система расчетов электронными чеками и способы выпуска, перевода, оплаты и верификации электронных чеков | |
RU96119343A (ru) | Электронная денежная система (варианты), электронная банкнота, способ предъявления пароля сети электронной денежной системы, способ изъятия денег с банковского счета, способ внесения депозита, способ произведения платежа, способ обмена иностранной валюты | |
CN110852730B (zh) | 基于数字货币的交易处理方法及装置和电子设备 | |
CN110223067B (zh) | 一种具有去中心化特性的链下一对多支付方法及系统 | |
WO2021209043A1 (zh) | 基于区块链的流量统计 | |
US20040034597A1 (en) | System and method for managing micropayment transactions, corresponding client terminal and trader equipment | |
US20220253813A1 (en) | Cryptographicaly secured hybrid (on and off blockchain) cryptocurrency system | |
CN110503429B (zh) | 一种去中心化的内容交互方法及系统 | |
US11373177B2 (en) | Method for issuing currency and making payment using utxo-based protocol and server using same | |
CN111242785A (zh) | 一种票据处理方法、装置及电子设备、存储介质 | |
CN117670532A (zh) | 一种基于区块链中心化货币系统进行双离线支付的方法 | |
CN112488684A (zh) | 一种基于法定数字货币的区块链资产券款对付方法、系统 | |
CN112330440A (zh) | 一种基于区块链去中心化的信用体系构建方法 | |
GB2528471A (en) | A method and system for secure payment | |
KR20200103928A (ko) | 블록체인 기반의 원리금 수취증서 제공 방법 | |
JP3435681B2 (ja) | 分割可能な電子現金方法及びその装置 | |
CN110009468A (zh) | 用于医疗自助付费的数据处理方法及装置 |
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 |