You are on page 1of 21

(19)中华人民共和国国家知识产权局

(12)发明专利申请
(10)申请公布号 CN 110458542 A
(43)申请公布日 2019.11.15
(21)申请号 201910711125 .8 H04L 29/06(2006 .01)
(22)申请日 2019 .08 .02

(71)申请人 中国工商银行股份有限公司
地址 100140 北京市西城区复兴门内大街
55号

(72)发明人 庞齐章 苏恒 姚新亮 李狄威 

(74)专利代理机构 北京三友知识产权代理有限
公司 11127
代理人 王涛 任默闻

(51)Int .Cl .
G06Q 20/06(2012 .01)
G06Q 20/10(2012 .01)
G06Q 20/36(2012 .01)
G06Q 20/38(2012 .01)
G06Q 20/40(2012 .01)
权利要求书3页 说明书10页 附图7页

(54)发明名称
基于区块链的离线支付系统及方法
(57)摘要
本发明提供了一种基于区块链的离线支付
系统及方法, 由各银行主节点组成区块链主干网
络,用户轻节点接入区块链主干网络, 通过非对
称加密技术对付款方转账信息进行加密传输保
障资金安全和通信安全 , 由付款方输入转账金
额,用户钱包对用户信息、转账金额等信息进行
非对称加密及签名并发送到主干网中进行交易
验证, 验证通过即把交易信息进行区块打包加入
到区块链中 , 若干后继区块产生后即完成交易,
可达到防篡改的目标, 从而达到了现实世界中离
线快捷支付, 提高交易流程的体验,加快区块链
技术的应用推广。
CN 110458542 A
CN 110458542 A 权 利 要 求 书 1/3 页

1 .一种基于区块链的离线支付方法,其特征在于,所述方法包含:
获取付款用户输入的转账金额和约定随机数, 对所述转账金额、 所述约定随机数、付款
端地址和时间戳进行加密签名处理获得付款加密信息及对应的付款签名证书; 根据所述付
款签名证书授权生成预设周期的允许锁定证书;
根据付款端地址和所述允许锁定证书生成金额锁定请求对付款端地址对应账户内转
账金额部分进行锁定;
获取收款用户输入的收款金额和约定随机数, 对所述收款金额、约定随机数、 收款端地
址和时间戳进行加密签名处理获得收款加密信息及对应的收款签名证书; 将所述收款加密
信息、所述收款签名证书、所述付款加密信息和所述付款签名证书广播发送至区块链网络
上的主节点;
根据所述收款签名证书和所述付款签名证书解析所述收款加密信息和所述付款加密
信息, 获得付款原文信息和收款原文信息;
当所述获得付款原文信息和所述收款原文信息中约定随机数一致且所述转账金额和
所述收款金额一致时, 向区块链网络上其他节点发起交易共识请求;
根据共识结果和所述收款端地址将付款端地址对应账户内锁定的转账金额解锁并做
转账处理; 根据处理结果生成区块并广播。
2 .根据权利要求1所述的基于区块链的离线支付方法, 其特征在于,根据所述付款签名
证书授权生成预设周期的允许锁定证书之后还包含: 根据所述付款签名证书、 所述允许锁
定证书、 所述付款加密信息、所述付款端地址生成条码信息; 扫描解析所述条码信息获得所
述付款签名证书、 所述允许锁定证书、所述付款加密信息和所述付款端地址。
3 .根据权利要求2所述的基于区块链的离线支付方法, 其特征在于,所述条码信息为二
维码信息。
4 .根据权利要求1所述的基于区块链的离线支付方法, 其特征在于,所述方法之前还包
含:
通过付款端获取付款用户输入的身份信息和付款账户, 根据所述付款账户生成付款端
地址;
根据所述身份信息通过非对称加密算法生成付款用户密钥对, 将所述密钥对中私钥反
馈至付款用户, 并将所述付款端地址和所述密钥对中公钥发送至区块链网络上公布;
所述区块链网络根据所述公钥生成数字证书后反馈至付款用户。
5 .根据权利要求1所述的基于区块链的离线支付方法, 其特征在于,所述方法之前还包
含:
通过收款端获取收款用户输入的身份信息和收款账户, 根据所述收款账户生成收款端
地址;
根据所述身份信息通过非对称加密算法生成收款用户密钥对, 将所述密钥对中私钥反
馈至收款用户, 并将所述收款端地址和所述密钥对中公钥发送至区块链网络上公布;
所述区块链网络根据所述公钥生成数字证书后反馈至收款用户。
6 .根据权利要求5所述的基于区块链的离线支付方法,其特征在于, 所述方法还包含:
通过收款端获得收款端地址和收款金额, 根据收款用户的私钥对所述收款端地址进行
数字签名获得签名信息;

2
CN 110458542 A 权 利 要 求 书 2/3 页

将所述签名信息、 所述收款端地址、 所述收款用户的公钥交由付款端;


所述付款端根据所述签名信息和所述收款用户的公钥对所述收款端地址进行验证, 当
验证通过后提供付款端地址至所述收款端;
所述收款端将所述收款端地址、 所述付款端地址和所述收款金额广播发送至区块链网
络上的主节点;
根据所述付款端地址和所述收款端地址对所述付款端地址对应账户进行转账处理, 根
据处理结果生成区块并广播。
7 .一种基于区块链的离线支付系统, 其特征在于,所述系统包含付款端、收款端和区块
链网络;
所述付款端用于获取付款用户输入的转账金额和约定随机数, 对所述转账金额、所述
约定随机数、 付款端地址和时间戳进行加密签名处理获得付款加密信息及对应的付款签名
证书; 根据所述付款签名证书授权生成预设周期的允许锁定证书;
所述收款端用于根据付款端地址和所述允许锁定证书生成金额锁定请求对付款端地
址对应账户内转账金额部分进行锁定; 以及,获取收款用户输入的收款金额和约定随机数,
对所述收款金额、约定随机数、 收款端地址和时间戳进行加密签名处理获得收款加密信息
及对应的收款签名证书; 将所述收款加密信息、 所述收款签名证书、所述付款加密信息和所
述付款签名证书广播发送至区块链网络上的主节点;
所述区块链网络用于根据所述收款签名证书和所述付款签名证书解析所述收款加密
信息和所述付款加密信息, 获得付款原文信息和收款原文信息; 当所述获得付款原文信息
和所述收款原文信息中约定随机数一致且所述转账金额和所述收款金额一致时, 向区块链
网络上其他节点发起交易共识请求; 以及,根据共识结果和所述收款端地址将付款端地址
对应账户内锁定的转账金额解锁并做转账处理; 根据处理结果生成区块并广播。
8 .根据权利要求7所述的基于区块链的离线支付系统, 其特征在于,所述付款端还包含
根据所述付款签名证书、 所述允许锁定证书、 所述付款加密信息、所述付款端地址生成条码
信息; 所述收款端还包含扫描解析所述条码信息获得所述付款签名证书、所述允许锁定证
书、所述付款加密信息和所述付款端地址。
9 .根据权利要求7所述的基于区块链的离线支付系统, 其特征在于,所述系统还包含注
册模块, 所述注册模块用于获取付款用户输入的身份信息和付款账户, 根据所述付款账户
生成付款端地址; 根据所述身份信息通过非对称加密算法生成付款用户密钥对, 将所述密
钥对中私钥反馈至付款用户, 并将所述付款端地址和所述密钥对中公钥发送至区块链网络
上公布; 并接收所述区块链网络根据所述公钥反馈的数字证书; 或,获取收款用户输入的身
份信息和收款账户, 根据所述收款账户生成收款端地址; 根据所述身份信息通过非对称加
密算法生成收款用户密钥对, 将所述密钥对中私钥反馈至收款用户, 并将所述收款端地址
和所述密钥对中公钥发送至区块链网络上公布; 并接收所述区块链网络根据所述公钥反馈
的数字证书。
10 .一种计算机设备,包括存储器、 处理器及存储在存储器上并可在处理器上运行的计
算机程序, 其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方
法。
11 .一种计算机可读存储介质, 其特征在于,所述计算机可读存储介质存储有执行权利

3
CN 110458542 A 权 利 要 求 书 3/3 页

要求1至6任一所述方法的计算机程序。

4
CN 110458542 A 说 明 书 1/10 页

基于区块链的离线支付系统及方法

技术领域
[0001] 本发明涉及区块链技术领域,
尤其是涉及一种区块链离线支付的系统和方法。

背景技术
[0002] 随着移动支付的普及, 人们已经越来越习惯于用手机代替钱包, 实行无纸化交易。
目前支付形式主要是以下两种: 1、当用户需要进行支付\转账时, 需要通过微信、支付宝等
app扫描商家二维码, 输入金额, 支付验证完成后即可以把钱转入商家账户。2、用户通过app
的付款码功能进行显示, 商家通过扫码机器进行扫描, 就会在用户账户上扣除金额, 金额由
商家输入, 扫描直接扣款, 每笔交易记录包含如转账方、接受方、 金额、时间等交易信息。这
两种支付方式, 第一种依赖网络的稳定性, 当网络信号差的时候, 容易支付失败;第二种方
式不但限制转账金额大小, 还依赖于商家的诚信度及技术公司的技术能力, 若出现技术漏
洞, 容易造成用户资金盗刷现象, 且需要特定的扫码枪等设备, 无法实现用户与用户之间的
离线支付。
[0003] 区块链系统是将数据及数据的操作记录, 通过密码学方法进行加密和散列, 从而
形成一种公开透明、不可篡改、可追溯的分布式数据库记账系统, 该技术可以在支付清算、
存证取证、 价值转移、供应链金融、用户征信、 监管审计等领域进行广泛应用。 区块链记录了
创世块以来的所有交易记录, 当区块规模达到一定程度, 历史交易记录将不会被篡改。
[0004] 现有技术中如比特币、 以太坊等区块链网络用户进行转账支付后打包生成区块后
往往需要等待若干新块产生后达到当前交易不可篡改后才能实现转账流程闭环, 整个流程
耗时较长(需要十分钟以上才能确认交易)。这种操作造成了区块链技术的在线支付时效低
的特性, 也影响了用户的使用体验。
[0005] 现有离线支付场景流程中, 需要特定设备对离线设备进行二维码扫码, 输入金额
才能完成交易。这种支付手段十分依赖商家的诚信, 一旦商家输入大于约定交易金额的数
额,用户将会遭遇资金损失; 这种支付手段依赖扫码设备的稳定性, 如果设备发生故障,交
易将无法进行, 同时扫码设备体积较大, 不方便携带。

发明内容
[0006] 本发明目的在于提供一种基于区块链的离线支付系统及方法, 在保证资金安全的
前提下提高交易流畅性, 降低交易过程中对网络的依赖。
[0007] 为达上述目的,本发明所提供的基于区块链的离线支付方法, 具体包含:获取付款
用户输入的转账金额和约定随机数, 对所述转账金额、所述约定随机数、付款端地址和时间
戳进行加密签名处理获得付款加密信息及对应的付款签名证书; 根据所述付款签名证书授
权生成预设周期的允许锁定证书; 根据付款端地址和所述允许锁定证书生成金额锁定请求
对付款端地址对应账户内转账金额部分进行锁定; 获取收款用户输入的收款金额和约定随
机数, 对所述收款金额、约定随机数、收款端地址和时间戳进行加密签名处理获得收款加密
信息及对应的收款签名证书; 将所述收款加密信息、所述收款签名证书、所述付款加密信息

5
CN 110458542 A 说 明 书 2/10 页

和所述付款签名证书广播发送至区块链网络上的主节点; 根据所述收款签名证书和所述付
款签名证书解析所述收款加密信息和所述付款加密信息, 获得付款原文信息和收款原文信
息; 当所述获得付款原文信息和所述收款原文信息中约定随机数一致且所述转账金额和所
述收款金额一致时, 向区块链网络上其他节点发起交易共识请求; 根据共识结果和所述收
款端地址将付款端地址对应账户内锁定的转账金额解锁并做转账处理; 根据处理结果生成
区块并广播。
[0008] 在上述基于区块链的离线支付方法中, 优选的,根据所述付款签名证书授权生成
预设周期的允许锁定证书之后还包含: 根据所述付款签名证书、所述允许锁定证书、所述付
款加密信息、 所述付款端地址生成条码信息; 扫描解析所述条码信息获得所述付款签名证
书、 所述允许锁定证书、 所述付款加密信息和所述付款端地址。
[0009] 在上述基于区块链的离线支付方法中, 优选的,所述条码信息为二维码信息。
[0010] 在上述基于区块链的离线支付方法中, 优选的,所述方法之前还包含:通过付款端
获取付款用户输入的身份信息和付款账户, 根据所述付款账户生成付款端地址; 根据所述
身份信息通过非对称加密算法生成付款用户密钥对, 将所述密钥对中私钥反馈至付款用
户, 并将所述付款端地址和所述密钥对中公钥发送至区块链网络上公布; 所述区块链网络
根据所述公钥生成数字证书后反馈至付款用户。
[0011] 在上述基于区块链的离线支付方法中, 优选的,所述方法之前还包含:通过收款端
获取收款用户输入的身份信息和收款账户, 根据所述收款账户生成收款端地址; 根据所述
身份信息通过非对称加密算法生成收款用户密钥对, 将所述密钥对中私钥反馈至收款用
户, 并将所述收款端地址和所述密钥对中公钥发送至区块链网络上公布; 所述区块链网络
根据所述公钥生成数字证书后反馈至收款用户。
[0012] 在上述基于区块链的离线支付方法中, 优选的,所述方法还包含:通过收款端获得
收款端地址和收款金额, 根据收款用户的私钥对所述收款端地址进行数字签名获得签名信
息; 将所述签名信息、所述收款端地址、所述收款用户的公钥交由付款端; 所述付款端根据
所述签名信息和所述收款用户的公钥对所述收款端地址进行验证, 当验证通过后提供付款
端地址至所述收款端; 所述收款端将所述收款端地址、所述付款端地址和所述收款金额广
播发送至区块链网络上的主节点; 根据所述付款端地址和所述收款端地址对所述付款端地
址对应账户进行转账处理, 根据处理结果生成区块并广播。
[0013] 本发明还提供一种基于区块链的离线支付系统, 所述系统包含付款端、收款端和
区块链网络; 所述付款端用于获取付款用户输入的转账金额和约定随机数, 对所述转账金
额、所述约定随机数、付款端地址和时间戳进行加密签名处理获得付款加密信息及对应的
付款签名证书; 根据所述付款签名证书授权生成预设周期的允许锁定证书; 所述收款端用
于根据付款端地址和所述允许锁定证书生成金额锁定请求对付款端地址对应账户内转账
金额部分进行锁定; 以及,获取收款用户输入的收款金额和约定随机数, 对所述收款金额、
约定随机数、 收款端地址和时间戳进行加密签名处理获得收款加密信息及对应的收款签名
证书; 将所述收款加密信息、所述收款签名证书、所述付款加密信息和所述付款签名证书广
播发送至区块链网络上的主节点; 所述区块链网络用于根据所述收款签名证书和所述付款
签名证书解析所述收款加密信息和所述付款加密信息, 获得付款原文信息和收款原文信
息; 当所述获得付款原文信息和所述收款原文信息中约定随机数一致且所述转账金额和所

6
CN 110458542 A 说 明 书 3/10 页

述收款金额一致时, 向区块链网络上其他节点发起交易共识请求; 以及,根据共识结果和所


述收款端地址将付款端地址对应账户内锁定的转账金额解锁并做转账处理; 根据处理结果
生成区块并广播。
[0014] 在上述基于区块链的离线支付系统中, 优选的, 所述付款端还包含根据所述付款
签名证书、所述允许锁定证书、所述付款加密信息、所述付款端地址生成条码信息; 所述收
款端还包含扫描解析所述条码信息获得所述付款签名证书、所述允许锁定证书、所述付款
加密信息和所述付款端地址。
[0015] 在上述基于区块链的离线支付系统中, 优选的, 所述系统还包含注册模块,所述注
册模块用于获取付款用户输入的身份信息和付款账户, 根据所述付款账户生成付款端地
址; 根据所述身份信息通过非对称加密算法生成付款用户密钥对, 将所述密钥对中私钥反
馈至付款用户, 并将所述付款端地址和所述密钥对中公钥发送至区块链网络上公布; 并接
收所述区块链网络根据所述公钥反馈的数字证书; 或,
获取收款用户输入的身份信息和收
款账户, 根据所述收款账户生成收款端地址; 根据所述身份信息通过非对称加密算法生成
收款用户密钥对, 将所述密钥对中私钥反馈至收款用户, 并将所述收款端地址和所述密钥
对中公钥发送至区块链网络上公布; 并接收所述区块链网络根据所述公钥反馈的数字证
书。
[0016] 本发明还提供一种计算机设备, 包括存储器、处理器及存储在存储器上并可在处
理器上运行的计算机程序, 所述处理器执行所述计算机程序时实现上述方法。
[0017] 本发明还提供一种计算机可读存储介质, 所述计算机可读存储介质存储有执行上
述方法的计算机程序。
[0018] 本发明的有益技术效果在于: 方便快捷:解决了当前移动支付转账无法实现用户
与用户级别离线转账的问题, 通过本系统,用户与用户之间只要有任一方在线, 随时随地可
以进行快捷的离线支付。信任传递: 由付款方与收款方缔约交易随机数, 均输入转账金额,
解决了当前移动支付中商家欺诈, 输入金额比约定金额多导致用户金钱损失的问题, 通过
本系统,用户无需再担心扣更多的钱的问题。性能提升: 本系统通过状态机中初始状态一
致, 输入一致必将结果一致的原理, 验证请求信息正确后即完成交易, 后续再进行共识打
包, 解决了当前区块链交易中确认时间长的问题。本系统交易确认时间将是秒级, 比当前区
块链交易的分钟级别的确认时间达到极大的提升。

附图说明
[0019] 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分,
并不
构成对本发明的限定。在附图中:
[0020] 图1为一种支付区块链主节点网络系统的架构图;
[0021] 图2为一种支付区块链节点网络请求处理流程图;
[0022] 图3为一种支付钱包系统的结构图;
[0023] 图4为一种支付钱包用户注册流程图;
[0024] 图5为一种支付钱包查询流程图;
[0025] 图6A和图6B为一种支付钱包付款方离线的支付流程图;
[0026] 图7A和图7B为一种支付钱包收款方离线的支付流程图;

7
CN 110458542 A 说 明 书 4/10 页

[0027] 图8为一种基于区块链的离线支付系统的结构示意图。

具体实施方式
[0028] 以下将结合附图及实施例来详细说明本发明的实施方式, 借此对本发明如何应用
技术手段来解决技术问题, 并达成技术效果的实现过程能充分理解并据以实施。需要说明
的是, 只要不构成冲突, 本发明中的各个实施例及各实施例中的各个特征可以相互结合, 所
形成的技术方案均在本发明的保护范围之内。
[0029] 另外, 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系
统中执行, 并且, 虽然在流程图中示出了逻辑顺序, 但是在某些情况下, 可以以不同于此处
的顺序执行所示出或描述的步骤。
[0030] 请参考图6A所示, 本发明所提供的基于区块链的离线支付方法, 具体包含: S101获
取付款用户输入的转账金额和约定随机数, 对所述转账金额、 所述约定随机数、 付款端地址
和时间戳进行加密签名处理获得付款加密信息及对应的付款签名证书; S102根据所述付款
签名证书授权生成预设周期的允许锁定证书; S103根据付款端地址和所述允许锁定证书生
成金额锁定请求对付款端地址对应账户内转账金额部分进行锁定; S104获取收款用户输入
的收款金额和约定随机数, 对所述收款金额、约定随机数、 收款端地址和时间戳进行加密签
名处理获得收款加密信息及对应的收款签名证书; S105将所述收款加密信息、 所述收款签
名证书、 所述付款加密信息和所述付款签名证书广播发送至区块链网络上的主节点; S106
根据所述收款签名证书和所述付款签名证书解析所述收款加密信息和所述付款加密信息,
获得付款原文信息和收款原文信息; S107当所述获得付款原文信息和所述收款原文信息中
约定随机数一致且所述转账金额和所述收款金额一致时, 向区块链网络上其他节点发起交
易共识请求; S108根据共识结果和所述收款端地址将付款端地址对应账户内锁定的转账金
额解锁并做转账处理; S109根据处理结果生成区块并广播。值得说明的是, 该实施例中采用
付款端和收款端仅为便于理解上述整体流程, 实际工作中,用户无论出于付款端还是收款
端均可采用同一支付钱包进行支付, 具体说明将在后续详述, 在此就不再一一解释。
[0031] 在上述实施例中采用非对称加密算法进行数据加密及数字签名, 具体步骤如下:
[0032] 1、发送方对原始信息M进行哈希运算得到哈希值e, 将M使用区块链加密公钥进行
加密得到加密信息; 然后发送方自己的用户私钥对M运用e进行数字签名, 将M的签名与加密
信息发送给接收方。
[0033] 2、接收方使用加密私钥对加密信息进行解密得到m, 对m进行哈希运算得到哈希值
E,与接收到的签名信息进行签名认证。
[0034] 所用发送方操作具体包括:
[0035] 发送方选取随机数t后, 根据如下公式1、 2计算点H1和点H2的坐标:
[0036] H1=tG   (公式1)
[0037] H2=tQ2   (公式2)
[0038] 其中, G为X-Y坐标系中的一个预定点, Q2为所述加密公钥;
[0039] 发 送 方 根 据 如 下 公 式 3 对 M 进 行 处 理 ,得 到 处 理 后的 信 息 m :

8
CN 110458542 A 说 明 书 5/10 页

[0040] 其中,
n为设定参数, 为点H2的横坐标;
[0041] 之后,
所述发送方将( m)作为得到的加密信息;
[0042] 其中, 为点H1的横坐标。
[0043] 发送方选取随机数k后, 根据如下公式5计算点P坐标(x1 ,
y1) ,
并根据如下公式6、
7
计算出M的签名(r, s):
[0044] kG=(x1 ,
y1)   (公式5)
[0045] r=x1mod  n   (公式6)
[0046] s=(k+e-r-d)mod  n   (公式7)
[0047] 其中, G为X-Y坐标系中的一个预定点, n为设定参数,d为签名私钥。
[0048] 所述接收方利用得到的e, 以及接收到的M的签名进行签名认证, 具体包括:
[0049] 所述接收方根据如下公式8计算出所述点P的坐标:
[0050] P=u1G+Q   (公式8)
[0051] 其中, Q=dG, u1 ,
根据如下公式9计算得到:
[0052] u1=(s+r-e)mod  n   (公式9)
[0053] 接收方使用加密私钥将所述加密信息进行解密得到M, 具体包括:
[0054] 所述接收方将加密私钥与 相乘得到 后,
根据如下公式4得到所述原始信息M:

[0055]

[0056] 接收方在如下公式10中运用点P的横坐标x1计算验证值v:
[0057] v=x1mod  n   (公式10)
[0058] 若v等于r, 则判断签名有效; 否则,判断签名无效。
[0059] 在本发明一实施例中, 根据所述付款签名证书授权生成预设周期的允许锁定证书
之后还可包含: 根据所述付款签名证书、所述允许锁定证书、所述付款加密信息、所述付款
端地址生成条码信息; 扫描解析所述条码信息获得所述付款签名证书、 所述允许锁定证书、
所述付款加密信息和所述付款端地址; 其中,所述条码信息可为二维码信息或其他信息, 其
作用在于便于收款端快速获知付款端提供的相关信息, 本领域相关技术人员可根据实际需
要选择合适的条码信息进行使用, 本发明在此并不做过多限制。
[0060] 在本发明一实施例中, 所述方法之前还可包含: 通过付款端获取付款用户输入的
身份信息和付款账户, 根据所述付款账户生成付款端地址; 根据所述身份信息通过非对称
加密算法生成付款用户密钥对, 将所述密钥对中私钥反馈至付款用户, 并将所述付款端地
址和所述密钥对中公钥发送至区块链网络上公布; 所述区块链网络根据所述公钥生成数字
证书后反馈至付款用户。 或,通过收款端获取收款用户输入的身份信息和收款账户, 根据所
述收款账户生成收款端地址; 根据所述身份信息通过非对称加密算法生成收款用户密钥
对, 将所述密钥对中私钥反馈至收款用户, 并将所述收款端地址和所述密钥对中公钥发送
至区块链网络上公布; 所述区块链网络根据所述公钥生成数字证书后反馈至收款用户; 以
此, 通过上述实例可使得用户完成身份注册, 具体的,请参考图4所示,在图4中提供了一种
支付钱包用户的注册流程, 在该实例中付款用户和收款用户均通过支付钱包进行交易, 详
细流程如下:
[0061] 步骤S401: 用户打开支付钱包进行第一次注册, 填写用户信息,绑定银行卡号,绑

9
CN 110458542 A 说 明 书 6/10 页

定支付设备, 填写助记词。
[0062] 步骤S402:支付钱包根据助记词、 设备信息,基于BIP-39协议生成全局唯一钱包地
址, 这里的钱包地址绑定用户设备, 利于监管。
[0063] 步骤S403:利用非对称加密算法, 生成秘钥对, 将钱包地址、秘钥对中的公钥发送
给最近区块链CA节点; 将钱包地址、 秘钥对中的公钥发送给最近区块链主节点, 最近区块链
主节点对用户钱包地址世界状态初始化, 并广播给全网各节点。
[0064] 步骤S404:
区块链CA节点根据上传的用户公钥生成数字证书, 返回给用户钱包。
[0065] 步骤S405:用户钱包接收到生成的数字证书, 对钱包进行初始化查询, 获得初始状
态, 用户注册成功。
[0066] 在实际工作中, 通过上述流程完成注册过后, 即可进行账号确认流程, 以此便于用
户确认交易完成状态, 具体的, 请参考图5所示:
[0067] 步骤S501:
用户通过联网移动设备如手机、 平板电脑等登录支付钱包。
[0068] 步骤S502:支付钱包根据默认配置的发现节点信息, 发出链接请求到支付区块链
主网络, 当能接收到2f+1个主节点的信息回复, 建立链接成功。
[0069] 步骤S503:链接主网成功后发出查询余额变动及交易查询请求, 当接收2f+1个相
同的余额变动及交易变动回复, 即表示数据同步成功。
[0070] 步骤S504:
将余额变动信息及交易变动信息返回前端页面, 展示给用户。
[0071] 通过上述流程过后, 即可执行利用支付钱包的支付了, 其中付款方离线支付的流
程请参考图6B所示, 具体如下:
[0072] 步骤S601:离线付款用户打开钱包, 输入约定转账金额及约定随机数, 这里的随机
数可以是若干数字、 字母、 中文的组合, 是后续交易校验流程的关键, 是必输字段,否则无法
进行离线转账功能。接着通过支付钱包的控制管理层用户鉴权模块的人脸、 指纹、
密码等验
证方式, 对用户进行真实性验证,用户验证通过即可进入下一步骤, 否则返回用户校验失
败。
[0073] 步骤S602:支付钱包通过支撑层加密模块的区块链公钥, 利用非对称加密算法对
付款钱包地址、转账金额、约定随机数、 时间戳进行加密, 使用付款用户私钥对加密信息进
行数字签名, 生成签名证书, 同时生成允许有效期为半小时的锁定证书, 将加密信息、签名
证书、 允许锁定证书、 付款钱包地址通过二维码生成算法生成付款二维码, 展示给收款方。
[0074] 步骤S603:
在线收款方打开支付钱包收款功能, 输入与付款方约定的随机数。
[0075] 步骤S604:
收款用户通过移动设备扫描付款方展示的二维码获得付款信息。
[0076] 步骤S605:收款钱包根据获得的付款钱包地址、允许锁定证书, 发起金额锁定请
求, 将付款用户的满足转账金额部分金额进行锁定, 锁定期间无法进行其他转账交易, 锁定
成功则进入下一步骤。
[0077] 步骤S606:收款钱包通过支撑层加密模块的区块链公钥, 利用非对称加密算法对
收款钱包地址、转账金额、约定随机数、 时间戳进行加密, 使用收款用户私钥对加密信息进
行数字签名, 生成签名证书, 将收款加密信息、 签名证书、付款加密信息、 付款证书广播发送
给区块链主节点。
[0078] 步骤S607:区块链节点用CA证书公钥解密签名证书, 获得用户公钥, 付款加密信
息、 收款加密信息进行真实性验证, 信息未被篡改即进入下一步骤。

10
CN 110458542 A 说 明 书 7/10 页

[0079] 步骤S608: 区块链节点通过私钥对付款加密信息、 收款加密信息进行解密并验证


有效期, 解密成功并信息有效则进入下一步骤。
[0080] 步骤S609: 解密成功后获得付款原文信息和收款原文信息, 比较付款原文与收款
原文中的约定随机数, 一致则进入下一步骤。
[0081] 步骤S610: 比较付款原文与收款原文中的转账金额, 一致则往用户钱包发送转账
成功信息, 并往主节点发送可交易信息进入下一阶段共识状态。
[0082] 步骤S611: 收款用户钱包收到f+1个转账成功返回, 根据状态机原理, 初始状态一
致, 输入一致, 最终结果一致, 区块链主网中关于该交易必定共识成功。 前端显示转账成功。
[0083] 步骤S612: 区块链主网对这笔转账共识成功, 付款地址锁定金额解除锁定, 往收款
账号进行转账, 修改付款地址的时间状态。
[0084] 步骤S613: leader节点将该交易信息加入到交易确认队列, 进行区块打包, 并区块
广播。
[0085] 在本发明一实施例中, 所述方法还可收款端离线状态下的收款流程, 请参考图7A
所示, 具体包含: S201通过收款端获得收款端地址和收款金额, 根据收款用户的私钥对所述
收款端地址进行数字签名获得签名信息; S202将所述签名信息、所述收款端地址、 所述收款
用户的公钥交由付款端; S203所述付款端根据所述签名信息和所述收款用户的公钥对所述
收款端地址进行验证, 当验证通过后提供付款端地址至所述收款端; S204所述收款端将所
述收款端地址、 所述付款端地址和所述收款金额广播发送至区块链网络上的主节点; S205
根据所述付款端地址和所述收款端地址对所述付款端地址对应账户进行转账处理, 根据处
理结果生成区块并广播。通过上述实施例可实现收款方离线支付, 实际工作中, 使用流程可
参考图7B所示:
[0086] 步骤S701: 收款用户打开支付钱包, 对钱包地址用用户私钥进行数字签名生成签
名信息, 将收款钱包地址、 数字签名、用户公钥通过二维码生成算法生成收款二维码, 展示
给付款方。
[0087] 步骤S702: 收款方通过移动设备扫描收款方展示的二维码获得收款信息, 并输入
转账金额, 进行余额是否充足判断, 充足则进入下一步骤。
[0088] 步骤S703: 根据获得的收款签名信息、 公钥、钱包地址对钱包地址进行真实性验证
并验证消息时效性, 消息有效过则进入转账流程。
[0089] 步骤S704: 将转账金额、 收款地址、 付款地址广播发送给区块链节点。
[0090] 步骤S705: 区块链节点判断收款地址是否存在, 不存在则返回错误信息, 存在则从
付款地址往收款地址进行转账操作, 并修改世界状态。 成功往付款钱包发送转账成功信息。
[0091] 步骤S706: leader节点将该交易信息加入到交易确认队列, 进行区块打包, 并区块
广播。
[0092] 步骤S707: 付款用户钱包收到f+1个转账成功返回, 根据状态机原理, 初始状态一
致, 输入一致, 最终结果一致, 区块链主网中关于该交易必定共识成功。 前端显示转账成功。
[0093] 请参考图8所示, 本发明还提供一种基于区块链的离线支付系统, 所述系统包含付
款端、 收款端和区块链网络; 所述付款端用于获取付款用户输入的转账金额和约定随机数,
对所述转账金额、所述约定随机数、付款端地址和时间戳进行加密签名处理获得付款加密
信息及对应的付款签名证书; 根据所述付款签名证书授权生成预设周期的允许锁定证书;

11
CN 110458542 A 说 明 书 8/10 页

所述收款端用于根据付款端地址和所述允许锁定证书生成金额锁定请求对付款端地址对
应账户内转账金额部分进行锁定; 以及, 获取收款用户输入的收款金额和约定随机数, 对所
述收款金额、约定随机数、 收款端地址和时间戳进行加密签名处理获得收款加密信息及对
应的收款签名证书; 将所述收款加密信息、 所述收款签名证书、 所述付款加密信息和所述付
款签名证书广播发送至区块链网络上的主节点; 所述区块链网络用于根据所述收款签名证
书和所述付款签名证书解析所述收款加密信息和所述付款加密信息, 获得付款原文信息和
收款原文信息; 当所述获得付款原文信息和所述收款原文信息中约定随机数一致且所述转
账金额和所述收款金额一致时, 向区块链网络上其他节点发起交易共识请求; 以及, 根据共
识结果和所述收款端地址将付款端地址对应账户内锁定的转账金额解锁并做转账处理; 根
据处理结果生成区块并广播。
[0094] 其中, 所述付款端还包含根据所述付款签名证书、 所述允许锁定证书、 所述付款加
密信息、所述付款端地址生成条码信息; 所述收款端还包含扫描解析所述条码信息获得所
述付款签名证书、所述允许锁定证书、所述付款加密信息和所述付款端地址。在实际工作
中, 所述基于区块链的离线支付系统可参考图1所示, 包含付款方网络、 收款方网络、 区块链
网络组成。如图的付款方网络包括手机、 平板通过支付钱包、 支付网站等方式接入区块链网
络, 这里的接入设备仅做轻节点接入, 仅做发起请求操作, 不参与协议层的区块共识及打包
工作, 离线状态下付款网络发起一笔交易用户需要输入转账金额、约定随机数, 然后付款钱
包进行加密、 签名, 最后展示以加密信息、 签名信息、签名证书生成的二维码。如图的收款方
网络包括手机、 平板通过支付钱包、 支付网站等方式接入区块链网络, 在线状态下收款网络
接收一笔交易用户需要输入转账金额、约定随机数, 然后收款钱包进行加密、签名, 最后将
收款方交易请求信息、付款方交易请求信息一起发送给区块链网络。如图的区块链网络包
括网络层及存储层, 网络层主要是各节点进行共识通信、 区块打包等操作的核心处理层。存
储层主要为KV数据库, 存储带是世界状态的信息。工作状态下, 各节点接收到付款方发送的
收款方交易请求信息、付款方交易请求信息后进行信息正确性验证, 验证成功即返回成功
并往区块链主节点发送可交易信息, 主节点接收到f+1个可交易信息即该交易为真实交易,
进行广播共识, 写入存储层。
[0095] 在上述结构中 , 支付区块链节点网络请求的处理流程可如图2所示, 具体步骤如
下:
[0096] Request阶段: 支付钱包客户端进行发起交易请求, 支付钱包支撑层广播模块将交
易请求广播到临近所有的支付区块链节点, 等待返回。
[0097] 消息验证阶段: 支付区块链节点接收到交易请求, 对请求进行签名验证, 解密,时
效性验证, 交易金额验证, 验证成功则返回成功信息并往主节点发送验证成功通知, 支付钱
包收到f+1个交易成功返回信息则显示转账成功提示, 主节点收到f+1个成功通知, 判断该
交易为合法交易, 进行下一步共识。
[0098] pre-prepare阶段到commit阶段:主节点将交易信息再次广播分发, 进行区块链内
部共识, 最后reply阶段由leader节点进行交易打包, 生成区块。
[0099] 在本发明一实施例中, 所述系统还包含注册模块, 所述注册模块用于获取付款用
户输入的身份信息和付款账户, 根据所述付款账户生成付款端地址; 根据所述身份信息通
过非对称加密算法生成付款用户密钥对, 将所述密钥对中私钥反馈至付款用户, 并将所述

12
CN 110458542 A 说 明 书 9/10 页

付款端地址和所述密钥对中公钥发送至区块链网络上公布; 并接收所述区块链网络根据所
述公钥反馈的数字证书; 或,获取收款用户输入的身份信息和收款账户, 根据所述收款账户
生成收款端地址; 根据所述身份信息通过非对称加密算法生成收款用户密钥对, 将所述密
钥对中私钥反馈至收款用户, 并将所述收款端地址和所述密钥对中公钥发送至区块链网络
上公布; 并接收所述区块链网络根据所述公钥反馈的数字证书。
[0100] 综上, 本发明所提供的基于区块链的离线支付系统整体上可包含交互层、控制管
理层、 支撑层,具体请参考图3所示:
[0101] 系统交互层: 所述系统交互层包括注册登录模块、系统交易模块以及信息查询模
块, 其中所述注册登录模块包括注册、 登录和二维码生成, 在用户第一次注册时, 根据助记
词协议及用户信息生成密钥和用户地址, 用户地址可使用二维码的方式显示在移动客户端
上, 通过用户地址二维码进行交易和转账; 所述系统交易模块包括离线交易和在线交易, 其
中所述离线交易采用状态机确保共识一致; 所述信息查询模块包括金额查询、 订单查询、信
息查询和账单查询。
[0102] 控制管理层: 所述控制管理层用于保证交易数据的安全传输过程, 是介于所述系
统交互层和所述支撑层之间的系统结构, 包括权限管理模块和密钥管理模块, 所述身份验
证模块用于对用户进行身份验证, 包括人脸识别验证、 指纹识别验证、 密码验证等多因素验
证, 所述密钥管理模块包括密钥生成、 密钥备份以及密钥恢复; 所述密钥管理模块内置公钥
和私钥, 在公钥加密中, 公钥在通信双方之间公开传递, 并在区块链网络中进行发布, 而私
钥用于解密公钥加密的数据。为了保障交易数据在传输过程中不被修改以及用户账户不被
盗用, 密钥管理模块采用非对称式加密技术。当一个对象需要发送数据时, 首先需要用发送
方的私钥加密传输的数据, 接收方再用发送方的公钥解密传输数据, 当一个对象需要接收
数据时, 发送方需要用接收方的公钥对数据加密, 接收方收到数据后再用自己的私钥解密
数据, 用户在注册系统时, 根据用户信息及助记词生成一个私钥, 再用椭圆形曲线算法由私
钥生成对应的公钥, 经过哈希计算后, 生成用于转账和交易的账户的用户地址。
[0103] 支撑层: 所述支撑层主要是底层区块链结构, 包括加密模块、锁定合约模块、分布
式账本模块, 广播模块。所述账本模块主要用于存储订单信息和账户数据; 所述锁定合约模
块主要用于付款离线时对付款金额进行智能锁定; 所述广播模块主要用于将交易信息广播
给临近区块链主节点; 所述加密模块主要通过非对称加密算法, 实现对交易信息加密, 保障
转账安全。
[0104] 本发明还提供一种计算机设备, 包括存储器、处理器及存储在存储器上并可在处
理器上运行的计算机程序, 所述处理器执行所述计算机程序时实现上述方法。
[0105] 本发明还提供一种计算机可读存储介质, 所述计算机可读存储介质存储有执行上
述方法的计算机程序。
[0106] 本发明的有益技术效果在于: 方便快捷:解决了当前移动支付转账无法实现用户
与用户级别离线转账的问题, 通过本系统,用户与用户之间只要有任一方在线, 随时随地可
以进行快捷的离线支付。信任传递: 由付款方与收款方缔约交易随机数, 均输入转账金额,
解决了当前移动支付中商家欺诈, 输入金额比约定金额多导致用户金钱损失的问题, 通过
本系统,用户无需再担心扣更多的钱的问题。性能提升: 本系统通过状态机中初始状态一
致, 输入一致必将结果一致的原理, 验证请求信息正确后即完成交易, 后续再进行共识打

13
CN 110458542 A 说 明 书 10/10 页

包, 解决了当前区块链交易中确认时间长的问题。本系统交易确认时间将是秒级, 比当前区
块链交易的分钟级别的确认时间达到极大的提升。
[0107] 本领域内的技术人员应明白, 本发明的实施例可提供为方法、系统、 或计算机程序
产品。因此, 本发明可采用完全硬件实施例、完全软件实施例、 或结合软件和硬件方面的实
施例的形式。而且, 本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0108] 本发明是参照根据本发明实施例的方法、 设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、 以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器, 使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0109] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品, 该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0110] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理, 从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0111] 以上所述的具体实施例, 对本发明的目的、技术方案和有益效果进行了进一步详
细说明, 所应理解的是, 以上所述仅为本发明的具体实施例而已, 并不用于限定本发明的保
护范围, 凡在本发明的精神和原则之内, 所做的任何修改、等同替换、 改进等,
均应包含在本
发明的保护范围之内。

14
CN 110458542 A 说 明 书 附 图 1/7 页

图1

图2

15
CN 110458542 A 说 明 书 附 图 2/7 页

图3

图4

16
CN 110458542 A 说 明 书 附 图 3/7 页

图5

图6A

17
CN 110458542 A 说 明 书 附 图 4/7 页

图6B

18
CN 110458542 A 说 明 书 附 图 5/7 页

图7A

19
CN 110458542 A 说 明 书 附 图 6/7 页

图7B

20
CN 110458542 A 说 明 书 附 图 7/7 页

图8

21

You might also like