首页 / 专利库 / 银行与财务事项 / 比特币钱包 / 基于可信二维码的区块链代币支付方法

基于可信二维码的链代币支付方法

阅读:266发布:2020-05-18

专利汇可以提供基于可信二维码的链代币支付方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于可信二维码的 区 块 链 代币支付方法,该方法借助区块链即服务技术,使用线上钱包和线下钱包结合的方式,在保证安全的同时提高支付效率;同时本发明使用加密二维码进行 比特币 的支付,二维码的便捷性相比传统比特币支付过程中输入长密码的过程有很大提高,同时加密 算法 也保证了支付过程中交易的安全性。,下面是基于可信二维码的链代币支付方法专利的具体信息内容。

1.一种基于可信二维码的链代币支付方法,包括如下步骤:
(1)对于通过扫码获取对方账户的转账方式,则由对方用户选择离线钱包或在线钱包并生成其地址二维码;对于提供付款码由对方扫码结账的方式,则生成在线钱包的付款二维码;
所述离线钱包为用户私有区块链代币钱包,储存着用户的钱包公钥和私钥信息,通过用户离线支付密码进行保护,服务器无法得知用户私钥信息,使用离线钱包时需要支付一定的手续费且由于区块链交易验证时间会产生一定的延迟;所述在线钱包内为用户暂存于服务器钱包内的部分代币,由服务器进行管理,用户通过在线密码进行使用,在线钱包之间的交易不需要支付手续费且没有时间延迟;
(2)对所述地址二维码或付款二维码进行解析;
(3)根据解析得到的信息完成转账流程,包括用户在线钱包向对方账户进行转账、用户离线钱包向对方账户进行转账、用户在线钱包向离线钱包进行转账、用户离线钱包向在线钱包进行转账或对方通过扫描付款二维码进行收款五种形式。
2.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(1)中生成离线钱包或在线钱包地址二维码的具体过程为:首先,对地址信息进行椭圆曲线加密后写入表示转账的代码中,该代码内容包含转账指令代码、地址、地址生成时间、用户信息以及该地址可被转账次数;然后,再对该代码整体使用RSA算法进行加密;最后,采用标准QR码生成方法对加密后的代码进行自动生成得到对应的地址二维码。
3.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(1)中生成在线钱包付款二维码的具体过程为:首先,获取在线钱包地址,若地址是合法的,则对该地址采用椭圆曲线进行第一层加密;然后,将加密后的地址写入用于付款的代码中,该代码内容包含时间信息、地点信息、加密后的钱包地址、付款方个人信息以及被扫描次数;若该代码含义是商家服务端已经授权过的,则可以由商家直接输入付款金额而无需用户验证身份信息和确认;最后,对该代码整体使用RSA算法进行加密,并采用标准QR码生成方法对加密后的代码进行自动生成得到对应的付款二维码。
4.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(2)中对地址二维码进行解析的具体过程为:首先,根据QR标准解析方式对地址二维码进行解析,得到一串加密后的信息;然后,由客户端通过预定方式对信息进行解密,得到一串地址信息加密的代码,进而根据代码指令进行相应操作,包括显示操作界面、显示被转账账户部分非隐私信息以及其他与转账有关的操作;其中,解析器根据所解出的信息长度选择处理在线钱包地址的在线钱包数据处理模块或处理离线钱包地址的与外网区块链交互的网络交互模块,并由对应的模块进行解密,从而保证地址信息在传输过程中都处于保密状态。
5.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(2)中对付款二维码进行解析的具体过程为:首先,根据QR标准解析方式对付款二维码进行解析,得到一串加密后的信息;然后,由客户端通过预定方式解密,得到一串在线钱包地址信息加密的代码,进而根据代码指令进行一定的操作,包括显示操作界面,显示被转账账户的部分非隐私信息、要求对方输入付款金额以及其他与转账有关的操作。
6.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(3)中用户在线钱包向对方账户进行转账的具体流程如下:
步骤1:由转出方判断解码后得到的钱包地址是否为合法地址,若合法则执行步骤2;若不合法则反馈二维码地址不合法的错误信息,即转账失败并执行步骤11;
步骤2:转出方输入转账的代币数量,页面显示实时汇率,完成输入后,点击确认输入金额,并执行步骤3;
步骤3:转出方客户端后台判断钱包地址是在线钱包地址还是离线钱包地址,若为在线钱包地址则执行步骤4,若为离线钱包地址则执行步骤6;
步骤4:转出方通过输入在线支付密码或指纹进行身份验证,若身份验证通过,执行步骤5;若未通过,执行步骤11;
步骤5:由服务器对服务器钱包进行内部数据处理,根据转出方和转入方的在线钱包地址信息进行余额数据的处理操作,具体包括转出方在线钱包余额减少、减少金额等于交易金额、转入方在线钱包余额增加、增加金额等于交易金额,然后执行步骤10;
步骤6:转出方通过输入在线密码或指纹进行身份验证,若身份验证通过,执行步骤7;
若未通过,执行步骤11;
步骤7:减少转出方在线钱包余额、减少金额为交易金额加交易手续费、增加转入方在线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤8;
步骤8:由服务器调出服务器钱包签名进行验证并广播交易信息,为服务器钱包向转入方离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤9,否则反复执行步骤8;
步骤9:把转出方在线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,执行步骤10;
步骤10:交易成功,转出方客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程;
步骤11:交易失败,转出方客户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、失败原因以及失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程。
7.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(3)中用户离线钱包向对方账户进行转账的具体流程如下:
步骤1:由转出方判断解码后得到的钱包地址是否为合法地址,若合法则执行步骤2;若不合法则反馈二维码地址不合法的错误信息,即转账失败并执行步骤13;
步骤2:转出方输入转账的代币数量,页面显示实时汇率,完成输入后,点击确认输入金额,并执行步骤3;
步骤3:转出方客户端后台判断钱包地址是在线钱包地址还是离线钱包地址,若为在线钱包地址则执行步骤4,若为离线钱包地址则执行步骤8;
步骤4:转出方通过输入离线支付密码或指纹进行身份验证,若身份验证通过,执行步骤5;若未通过,执行步骤13;
步骤5:减少转出方离线钱包余额、减少金额为交易金额加交易手续费、增加转入方在线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤6;
步骤6:调出转出方离线钱包签名并广播交易信息,为转出方离线钱包向服务器钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤7,否则反复执行步骤6;
步骤7:把转出方离线钱包减少的金额状态及转入方在线钱包增加的金额状态由待定变为确认,执行步骤12;
步骤8:转出方通过输入离线支付密码或指纹进行身份验证,若身份验证通过,执行步骤9;若未通过,执行步骤13;
步骤9:减少转出方离线钱包余额、减少金额为交易金额加交易手续费、增加转入方离线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤10;
步骤10:由服务器调出服务器钱包签名进行验证并广播交易信息,为转出方离线钱包向转入方离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤
11,否则反复执行步骤10;
步骤11:把转出方离线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,执行步骤12;
步骤12:交易成功,转出方客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程;
步骤13:交易失败,转出方客户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、失败原因以及失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程。
8.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(3)中用户在线钱包向离线钱包进行转账的具体流程如下:
步骤1:用户输入转账金额,客户端判断转账金额是否小于在线钱包余额,若小于,则执行步骤2,否则提示在线钱包余额不足,要求重新输入转账金额;
步骤2:用户通过输入在线支付密码或指纹进行身份验证,若验证通过,执行步骤4;若未通过,执行步骤3;
步骤3:用户客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
步骤4:增加用户离线钱包余额、增加金额为转账金额减去交易手续费、减少用户在线钱包余额、减少金额为转账金额,进而设置这两笔金额变动状态为待定,并执行步骤5;
步骤5:由服务器调出服务器钱包签名进行验证并广播交易信息,为服务器钱包向用户离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤6,否则反复执行步骤5;
步骤6:把用户离线钱包增加的金额状态及用户在线钱包减少的金额状态由待定变为确认,进而用户客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、用户个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。
9.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(3)中用户离线钱包向在线钱包进行转账的具体流程如下:
步骤1:用户输入转账金额,客户端判断转账金额是否小于离线钱包余额,若小于,则执行步骤2,否则提示离线钱包余额不足,要求重新输入转账金额;
步骤2:用户通过输入离线支付密码或指纹进行身份验证,若验证通过,执行步骤4;若未通过,执行步骤3;
步骤3:用户客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
步骤4:增加用户在线钱包余额、增加金额为转账金额减去交易手续费、减少用户离线钱包余额、减少金额为转账金额,进而设置这两笔金额变动状态为待定,并执行步骤5;
步骤5:调出用户离线钱包签名并广播交易信息,为用户离线钱包向服务器钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤6,否则反复执行步骤5;
步骤6:把用户离线钱包减少的金额状态及用户在线钱包增加的金额状态由待定变为确认,进而用户客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、用户个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。
10.根据权利要求1所述的区块链代币支付方法,其特征在于:所述步骤(3)中对方通过扫描付款二维码进行收款的具体流程如下:
步骤1:用户客户端后台获取当前时间、当前地点、在线钱包余额以及钱包地址信息,生成在线钱包付款二维码;
步骤2:对方扫描用户的在线钱包付款二维码,通过解码获取二维码生成时间、生成地点、钱包余额以及钱包地址信息,执行步骤3;
步骤3:判断付款二维码的生成时间与使用时间是否在有效时间间隔内、判断付款二维码的生成地点是否在扫描地点附近、判断付款二维码是否还未更新且未成功支付过,以上三个条件若有一条为否则执行步骤4,其他情况则执行步骤5;
步骤4:对方客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、对方个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
步骤5:对方输入付款金额,由客户端判断付款金额是否小于用户在线钱包余额,若小于,则执行步骤6,否则执行步骤4;
步骤6:更改当前付款二维码状态为已支付,增加对方在线钱包余额、增加金额为付款金额、减少用户在线钱包余额、减少金额同为付款金额;进而由对方客户端向服务器发送付款成功的相关信息,包括交易编码、时间、地点、用户个人信息、对方个人信息、验证方式以及付款金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。

说明书全文

基于可信二维码的链代币支付方法

技术领域

[0001] 本发明属于移动支付及区块链技术领域,具体涉及一种基于可信二维码的区块链代币支付方法。

背景技术

[0002] 随着移动支付的普及,人们已经越来越习惯于用手机代替钱包,实行无纸化交易。支付的形式目前主要是以下两种:第一种是当用户需要进行支付或转账时,仅仅需要通过微信、支付宝等app扫描商家账户的二维码,输入付款金额,进行验证,就可以把钱转入商家的账户中。若用户在某种平台的余额不足,可以通过其他平台如行进行转账或支付,银行卡和平台之间的转账可能需要支付一定手续费。第二种方法是用户在提供付款码功能的app上找到自己的付款码,如果商家有扫码设备,直接用设备扫描用户付款码,就会在用户账户上扣除一定金额,金额由商家输入,用户没有确认环节,扫描成功直接扣款;每笔交易记录包含一定量的信息,如转账方、收款方、金额、时间等内容。
[0003] 传统移动支付虽已比较成熟,但通常仅限于货币,而随着支付内容的多元化,电子代币的支付需求也在逐渐提高,因此设计一种适用于区块链支付的支付方式十分有必要。
[0004] 区块链是一种去中心化的记账技术,采用密码学的方法来保证已有数据不可能被篡改,它是比特币的底层技术。区块链记录了电子代币创造以来的所有交易记录,每条记录包含一定信息,包括转出地址、转入地址、代币数量、时间戳、数字签名等,当交易信息达到一定规模,会通过一定计算打包成一个区块,每个区块含有前一区块的哈希值,所以不会被篡改。由于生成区块需要一定的算,每条交易被确认需要一定的时间,大概每十分钟生成一个区块。其中一种应用较为广泛的代币是比特币,而比特币的移动支付需要使用比特币钱包。比特币钱包可以存储比特币,由钱包地址(公钥)和私钥组成,掌握私钥就掌握这个地址中储存的比特币。在线钱包的私钥储存在网上,面临服务器崩溃、黑客窃取等安全问题,而线下的钱包相比较而言便捷性会大打折扣,很难满足移动支付的需求。
[0005] 目前移动支付虽然方便快捷,普及程度高,但仅仅能使用货币,而比特币等电子代币在移动端还没有专的支付手段,并且和现在的移动支付相比,比特币由于交易需要被确认,支付有较大时间延迟,大大限制了比特币交易的效率和便捷性。
[0006] 因此我们可以借助BaaS,使用线上钱包和线下钱包结合的方式,在保证安全的同时提高支付效率。基于上述考虑,我们提出使用加密二维码进行比特币的支付,二维码的便捷性相比传统比特币支付过程中输入长密码的过程有很大提高,同时加密算法也保证了支付过程中交易的安全性。

发明内容

[0007] 鉴于上述,本发明提供了一种基于可信二维码的区块链代币支付方法,该方法借助区块链即服务技术,使用线上钱包和线下钱包结合的方式,在保证安全的同时提高支付效率;同时本发明使用加密二维码进行比特币的支付,二维码的便捷性相比传统比特币支付过程中输入长密码的过程有很大提高,同时加密算法也保证了支付过程中交易的安全性。
[0008] 一种基于可信二维码的区块链代币支付方法,包括如下步骤:
[0009] (1)对于通过扫码获取对方账户的转账方式,则由对方用户选择离线钱包或在线钱包并生成其地址二维码;对于提供付款码由对方扫码结账的方式,则生成在线钱包的付款二维码;
[0010] 所述离线钱包为用户私有区块链代币钱包,储存着用户的钱包公钥(地址)和私钥信息,通过用户离线支付密码进行保护,服务器无法得知用户私钥信息,使用离线钱包时需要支付一定的手续费且由于区块链交易验证时间会产生一定的延迟;所述在线钱包内为用户暂存于服务器钱包内的部分代币,由服务器进行管理,用户通过在线密码进行使用,在线钱包之间的交易不需要支付手续费且没有时间延迟;
[0011] (2)对所述地址二维码或付款二维码进行解析;
[0012] (3)根据解析得到的信息完成转账流程,包括用户在线钱包向对方账户进行转账、用户离线钱包向对方账户进行转账、用户在线钱包向离线钱包进行转账、用户离线钱包向在线钱包进行转账或对方通过扫描付款二维码进行收款五种形式。
[0013] 进一步地,所述步骤(1)中生成离线钱包或在线钱包地址二维码的具体过程为:首先,对地址信息进行椭圆曲线加密后写入表示转账的代码中,该代码内容包含转账指令代码、地址、地址生成时间、用户信息以及该地址可被转账次数;然后,再对该代码整体使用RSA算法进行加密;最后,采用标准QR码生成方法对加密后的代码进行自动生成得到对应的地址二维码。
[0014] 进一步地,所述步骤(1)中生成在线钱包付款二维码的具体过程为:首先,获取在线钱包地址,若地址是合法的,则对该地址采用椭圆曲线进行第一层加密;然后,将加密后的地址写入用于付款的代码中,该代码内容包含时间信息、地点信息、加密后的钱包地址、付款方个人信息以及被扫描次数;若该代码含义是商家服务端已经授权过的,则可以由商家直接输入付款金额而无需用户验证身份信息和确认;最后,对该代码整体使用RSA算法进行加密,并采用标准QR码生成方法对加密后的代码进行自动生成得到对应的付款二维码。
[0015] 进一步地,所述步骤(2)中对地址二维码进行解析的具体过程为:首先,根据QR标准解析方式对地址二维码进行解析,得到一串加密后的信息;然后,由客户端通过预定方式对信息进行解密,得到一串地址信息加密的代码,进而根据代码指令进行相应操作,包括显示操作界面、显示被转账账户部分非隐私信息(如账户ID)以及其他与转账有关的操作;其中,解析器根据所解出的信息长度选择处理在线钱包地址的在线钱包数据处理模块或处理离线钱包地址的与外网区块链交互的网络交互模块,并由对应的模块进行解密,从而保证地址信息在传输过程中都处于保密状态。
[0016] 进一步地,所述步骤(2)中对付款二维码进行解析的具体过程为:首先,根据QR标准解析方式对付款二维码进行解析,得到一串加密后的信息;然后,由客户端通过预定方式解密,得到一串在线钱包地址信息加密的代码,进而根据代码指令进行一定的操作,包括显示操作界面,显示被转账账户的部分非隐私信息(如账户ID)、要求对方输入付款金额以及其他与转账有关的操作。
[0017] 进一步地,所述步骤(3)中用户在线钱包向对方账户进行转账的具体流程如下:
[0018] 步骤1:由转出方判断解码后得到的钱包地址是否为合法地址,若合法则执行步骤2;若不合法则反馈二维码地址不合法的错误信息,即转账失败并执行步骤11;
[0019] 步骤2:转出方输入转账的代币数量,页面显示实时汇率,完成输入后,点击确认输入金额,并执行步骤3;
[0020] 步骤3:转出方客户端后台判断钱包地址是在线钱包地址还是离线钱包地址,若为在线钱包地址则执行步骤4,若为离线钱包地址则执行步骤6;
[0021] 步骤4:转出方通过输入在线支付密码或指纹进行身份验证,若身份验证通过,执行步骤5;若未通过,执行步骤11;
[0022] 步骤5:由服务器对服务器钱包进行内部数据处理,根据转出方和转入方的在线钱包地址信息进行余额数据的处理操作,具体包括转出方在线钱包余额减少、减少金额等于交易金额、转入方在线钱包余额增加、增加金额等于交易金额,然后执行步骤10;
[0023] 步骤6:转出方通过输入在线密码或指纹进行身份验证,若身份验证通过,执行步骤7;若未通过,执行步骤11;
[0024] 步骤7:减少转出方在线钱包余额、减少金额为交易金额加交易手续费、增加转入方在线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤8;
[0025] 步骤8:由服务器调出服务器钱包签名进行验证并广播交易信息,为服务器钱包向转入方离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤9,否则反复执行步骤8;
[0026] 步骤9:把转出方在线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,执行步骤10;
[0027] 步骤10:交易成功,转出方客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程;
[0028] 步骤11:交易失败,转出方客户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、失败原因以及失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程。
[0029] 进一步地,所述步骤(3)中用户离线钱包向对方账户进行转账的具体流程如下:
[0030] 步骤1:由转出方判断解码后得到的钱包地址是否为合法地址,若合法则执行步骤2;若不合法则反馈二维码地址不合法的错误信息,即转账失败并执行步骤13;
[0031] 步骤2:转出方输入转账的代币数量,页面显示实时汇率,完成输入后,点击确认输入金额,并执行步骤3;
[0032] 步骤3:转出方客户端后台判断钱包地址是在线钱包地址还是离线钱包地址,若为在线钱包地址则执行步骤4,若为离线钱包地址则执行步骤8;
[0033] 步骤4:转出方通过输入离线支付密码或指纹进行身份验证,若身份验证通过,执行步骤5;若未通过,执行步骤13;
[0034] 步骤5:减少转出方离线钱包余额、减少金额为交易金额加交易手续费、增加转入方在线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤6;
[0035] 步骤6:调出转出方离线钱包签名并广播交易信息,为转出方离线钱包向服务器钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤7,否则反复执行步骤6;
[0036] 步骤7:把转出方离线钱包减少的金额状态及转入方在线钱包增加的金额状态由待定变为确认,执行步骤12;
[0037] 步骤8:转出方通过输入离线支付密码或指纹进行身份验证,若身份验证通过,执行步骤9;若未通过,执行步骤13;
[0038] 步骤9:减少转出方离线钱包余额、减少金额为交易金额加交易手续费、增加转入方离线钱包余额、增加金额为交易金额,进而设置这两笔金额变动状态为待定,并执行步骤10;
[0039] 步骤10:由服务器调出服务器钱包签名进行验证并广播交易信息,为转出方离线钱包向转入方离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤11,否则反复执行步骤10;
[0040] 步骤11:把转出方离线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,执行步骤12;
[0041] 步骤12:交易成功,转出方客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程;
[0042] 步骤13:交易失败,转出方客户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、失败原因以及失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程。
[0043] 进一步地,所述步骤(3)中用户在线钱包向离线钱包进行转账的具体流程如下:
[0044] 步骤1:用户输入转账金额,客户端判断转账金额是否小于在线钱包余额,若小于,则执行步骤2,否则提示在线钱包余额不足,要求重新输入转账金额;
[0045] 步骤2:用户通过输入在线支付密码或指纹进行身份验证,若验证通过,执行步骤4;若未通过,执行步骤3;
[0046] 步骤3:用户客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
[0047] 步骤4:增加用户离线钱包余额、增加金额为转账金额减去交易手续费、减少用户在线钱包余额、减少金额为转账金额,进而设置这两笔金额变动状态为待定,并执行步骤5;
[0048] 步骤5:由服务器调出服务器钱包签名进行验证并广播交易信息,为服务器钱包向用户离线钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤6,否则反复执行步骤5;
[0049] 步骤6:把用户离线钱包增加的金额状态及用户在线钱包减少的金额状态由待定变为确认,进而用户客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、用户个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。
[0050] 进一步地,所述步骤(3)中用户离线钱包向在线钱包进行转账的具体流程如下:
[0051] 步骤1:用户输入转账金额,客户端判断转账金额是否小于离线钱包余额,若小于,则执行步骤2,否则提示离线钱包余额不足,要求重新输入转账金额;
[0052] 步骤2:用户通过输入离线支付密码或指纹进行身份验证,若验证通过,执行步骤4;若未通过,执行步骤3;
[0053] 步骤3:用户客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
[0054] 步骤4:增加用户在线钱包余额、增加金额为转账金额减去交易手续费、减少用户离线钱包余额、减少金额为转账金额,进而设置这两笔金额变动状态为待定,并执行步骤5;
[0055] 步骤5:调出用户离线钱包签名并广播交易信息,为用户离线钱包向服务器钱包发起交易;等待交易被确认,若该笔交易被确认并写入区块,执行步骤6,否则反复执行步骤5;
[0056] 步骤6:把用户离线钱包减少的金额状态及用户在线钱包增加的金额状态由待定变为确认,进而用户客户端向服务器发送转账成功的相关信息,包括交易编码、时间、地点、用户个人信息、验证方式以及转账金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。
[0057] 进一步地,所述步骤(3)中对方通过扫描付款二维码进行收款的具体流程如下:
[0058] 步骤1:用户客户端后台获取当前时间、当前地点、在线钱包余额以及钱包地址信息,生成在线钱包付款二维码;
[0059] 步骤2:对方扫描用户的在线钱包付款二维码,通过解码获取二维码生成时间、生成地点、钱包余额以及钱包地址信息,执行步骤3;
[0060] 步骤3:判断付款二维码的生成时间与使用时间是否在有效时间间隔内、判断付款二维码的生成地点是否在扫描地点附近、判断付款二维码是否还未更新且未成功支付过,以上三个条件若有一条为否则执行步骤4,其他情况则执行步骤5;
[0061] 步骤4:对方客户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户个人信息、对方个人信息、转账金额、验证方式以及失连续失败次数,这些信息将存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析,进而结束流程;
[0062] 步骤5:对方输入付款金额,由客户端判断付款金额是否小于用户在线钱包余额,若小于,则执行步骤6,否则执行步骤4;
[0063] 步骤6:更改当前付款二维码状态为已支付,增加对方在线钱包余额、增加金额为付款金额、减少用户在线钱包余额、减少金额同为付款金额;进而由对方客户端向服务器发送付款成功的相关信息,包括交易编码、时间、地点、用户个人信息、对方个人信息、验证方式以及付款金额,这些信息将存放在服务器的数据库中,方便查找交易记录进行清算,进而结束流程。
[0064] 本发明借助区块链即服务技术,使用线上钱包和线下钱包结合的方式,在保证安全的同时提高支付效率;同时本发明使用加密二维码进行比特币的支付,二维码的便捷性相比传统比特币支付过程中输入长密码的过程有很大提高,同时加密算法也保证了支付过程中交易的安全性。附图说明
[0065] 图1为本发明方法的系统实现框图
[0066] 图2为本发明生成钱包地址二维码的流程示意图。
[0067] 图3为本发明生成钱包付款二维码的流程示意图。
[0068] 图4为本发明用户在线钱包向其他用户转账的流程示意图。
[0069] 图5为本发明用户离线钱包向其他用户转账的流程示意图。
[0070] 图6为本发明用户在线钱包转入离线钱包的流程示意图。
[0071] 图7为本发明用户离线钱包转入在线钱包的流程示意图。
[0072] 图8为本发明商家通过付款二维码实现收款的流程示意图。

具体实施方式

[0073] 为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
[0074] 如图1所示,用户端钱包分为离线钱包和在线钱包,离线钱包是用户私有区块链代币钱包,储存着用户的钱包公钥(地址)、私钥等信息,通过用户离线支付密码进行保护,服务器无法得知用户私钥信息,因此保密性和安全性比在线钱包高,但在使用离线钱包时需要支付一定的手续费,且由于区块链交易验证时间会产生一定的延迟。在线钱包是用户暂放于服务器钱包的部分代币,由服务器进行管理,用户通过在线密码进行使用,在线钱包和在线钱包之间的交易不需要支付手续费,且没有时间延迟。私钥、在线密码和离线支付密码都通过加盐的md5加密方法保存,具有较高的安全性。
[0075] 用户端有二维码生成和解析模块,其中二维码生成模块可生成在线钱包地址二维码、离线钱包地址二维码、付款码,可识别他人的在线钱包地址二维码和离线钱包地址二维码,付款码需要可信任的商家设备进行解析,用户端和可信任商家通过服务器发放数字证书进行信任授权;服务器端保存用户在线钱包信息、交易信息,负责交易信息处理、网络交互等功能。
[0076] 如图2所示,纯地址二维码生成的具体过程为:首先用户选择生成离线地址二维码或者在线地址二维码,两种二维码的位数不同,因此不需要做特殊标记;后台将地址信息进行椭圆曲线加密后写入表示转账的代码中,该段代码表示向某地址进行转账支付以及转账金额位置,包含转账指令代码、地址生成时间、地址、用户信息、该地址可被转账次数,再对语句整体使用RSA算法进行加密;加密后的代码根据标准QR码生成方法进行自动生成,标准QR码生成流程为:数据分析-数据编码-纠错编码-构造最终信息-在矩阵中布置模块-掩模-添加格式和版本信息。
[0077] 如图3所示,自动付款二维码生成的具体过程为:首先用户选择生成在线钱包付款二维码,后台获取在线钱包地址,若此地址是合法的,则对此地址进行第一层加密,加密算法为椭圆曲线加密;将加密后的地址写入代码中,代码内容包含时间信息、地点信息、加密后的钱包地址、付款方个人信息、被扫描次数等,代码含义是若商家是服务端已经授权过的,则可以由商家输入付款金额而无需用户验证身份信息和确认;代码内容通过RSA加密后按照标准QR码生成方式自动生成。
[0078] 对于纯地址二维码的解析:二维码识别模块识别到二维码,根据QR标准解析方式进行解析,解析后得到一串加密后的信息,客户端通过预定方式解密,解密后得到一串地址信息加密的代码,根据代码指令进行一定的操作,包括显示操作界面,显示被转账账户部分非隐私信息(如账户ID)等与转账有关的操作。解析器通过解出的地址长度选择处理在线钱包地址的在线钱包的数据模块或处理离线钱包地址的与外网区块链交互的网络交互模块,由该模块进行解密,从而保证地址在传输过程中都处于保密状态。
[0079] 对于在线钱包付款二维码的解析:商家通过专用设备扫描客户的付款二维码,设备首先通过QR标准解析方式进行解析,解析后得到一串加密后的信息,客户端通过预定方式解密,解密后得到一串在线钱包地址信息加密的代码,根据代码指令进行一定的操作,包括显示操作界面,显示被转账账户的部分非隐私信息(如账户ID)、要求商家输入付款金额等操作。
[0080] 如图4所示,在线钱包向其他用户转账流程为:转出方用户选择在线钱包向其他用户转账功能,其他用户在生成二维码功能中选择生成在线钱包或离线钱包地址二维码;转出方用户扫描其他用户的在线钱包或离线钱包地址二维码,后台接收到图像信息,进行二维码解码和解密操作,得到二维码表示的内容,该内容应该是一段包含地址信息的代码,具体步骤如下:
[0081] 步骤1:判断解码后的地址是否为合法地址,若合法则执行步骤2;不合法则反馈二维码地址不合法的错误信息,转账失败,执行步骤11;
[0082] 步骤2:转出方输入转账的比特币数量或某种货币数量,页面显示实时汇率,输入过程中比特币及若干种货币数量随用户输入数量变化而变化;完成输入后,点击确认输入金额,执行步骤3;
[0083] 步骤3:用户端后台判断代码包含的钱包地址是在线地址还是离线地址,若为在线地址则执行步骤4;若为离线地址则执行步骤6;
[0084] 步骤4:地址为在线地址,转出方输入在线密码或指纹等其他验证方式进行身份验证,若身份验证通过,执行步骤5,若未通过,执行步骤11;
[0085] 步骤5:服务器进行服务器钱包的内部数据处理,根据转出方和转入方的在线钱包地址信息进行余额数据的处理操作,具体为,转出方在线钱包余额减少、减少金额等于交易金额、转入方在线钱包余额增加、增加金额等于交易金额,然后执行步骤10;
[0086] 步骤6:地址为离线地址,转出方输入在线密码或指纹等其他验证方式进行身份验证,若身份验证通过,执行步骤7;若未通过,执行步骤11;
[0087] 步骤7:身份验证通过,减少用户在线钱包余额,减少金额为交易金额加交易手续费;增加转入方在线钱包余额,增加金额为交易金额,并设置这两笔金额变动状态为待定,执行步骤8;
[0088] 步骤8:服务器端调出服务器钱包签名,进行验证并广播交易信息,为服务器钱包向转入方离线钱包;等待交易被确认,若该笔交易被确认并写入区块,执行步骤9,否则反复执行步骤8;
[0089] 步骤9:交易已被写入区块,把转出方在线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,并执行步骤10;
[0090] 步骤10:交易成功,用户端向服务器端发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式、转账金额等信息,这些信息存放在服务器的数据库中,方便查找交易记录进行清算。结束流程;
[0091] 步骤11:交易失败,用户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方、转入方、失败原因、失败次数等信息,这些信息存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析等。结束流程。
[0092] 如图5所示,离线钱包向其他用户转账流程为:转出方用户选择离线钱包向其他用户转账功能,其他用户在生成二维码功能中选择生成在线钱包或离线钱包地址二维码;转出方用户扫描其他用户的在线钱包或离线钱包地址二维码,后台接收到图像信息,进行二维码解码和解密操作,得到二维码表示的内容,该内容应该是一段包含地址信息的代码,具体步骤如下:
[0093] 步骤1:判断解码后的地址是否为合法地址,若合法则执行步骤2;不合法则反馈二维码地址不合法的错误信息,转账失败,执行步骤13;
[0094] 步骤2:转出方输入转账的比特币数量或某种货币数量,页面显示实时汇率,输入过程中比特币及若干种货币数量随用户输入数量变化而变化;完成输入后,点击确认输入金额,并执行步骤3;
[0095] 步骤3:用户端后台判断代码包含的钱包地址是在线地址还是离线地址,若为在线地址则执行步骤4;若为离线地址则执行步骤8;
[0096] 步骤4:地址为在线地址,转出方输入找零钱包地址,若跳过此步骤默认找零钱包地址为转出方钱包地址;转出方输入离线支付密码或指纹等其他验证方式进行身份验证,若身份验证通过,执行步骤5,若未通过,执行步骤13;
[0097] 步骤5:身份验证通过,减少转出方离线钱包余额,减少金额等于转账金额加交易手续费,增加转入方在线钱包余额,增加金额等于转账金额,设置这两笔金额变动状态为待定,然后执行步骤6;
[0098] 步骤6:调出转出方离线钱包签名并广播交易信息,为转出方离线钱包转入服务器钱包;等待交易被确认,若该笔交易被确认并写入区块,执行步骤7,否则反复执行步骤6;
[0099] 步骤7:交易已被写入区块,把转出方离线钱包减少的金额状态及转入方在线钱包增加的金额状态由待定变为确认,执行步骤12;
[0100] 步骤8:地址为离线地址,转出方输入找零钱包地址,若跳过此步骤默认找零钱包地址为转出方钱包地址;转出方输入离线支付密码或指纹等其他验证方式进行身份验证,若身份验证通过,执行步骤9,若未通过,执行步骤13;
[0101] 步骤9:身份验证通过,减少转出方离线钱包余额,减少金额为交易金额加交易手续费;增加转入方离线钱包余额,增加金额为交易金额,并设置这两笔金额变动状态为待定;执行步骤10;
[0102] 步骤10:服务器端调出服务器钱包签名,进行验证并广播交易信息,为转出方离线钱包向转入方离线钱包转账;等待交易被确认,若该笔交易被确认并写入区块,执行步骤11,否则反复执行步骤10;
[0103] 步骤11:交易已被写入区块,把转出方在线钱包减少的金额状态及转入方离线钱包增加的金额状态由待定变为确认,并执行步骤12;
[0104] 步骤12:交易成功,用户端向服务器端发送转账成功的相关信息,包括交易编码、时间、地点、转出方个人信息、转入方个人信息、验证方式、转账金额等信息,这些信息存放在服务器的数据库中,方便查找交易记录进行清算,结束流程;
[0105] 步骤13:交易失败,用户端向服务器端发送转账失败信息,包括交易编码、时间、地点、转出方、转入方、失败原因、失败次数等信息,这些信息存放在服务器的数据库中,方便查找交易失败记录进行恶意行为分析等,结束流程。
[0106] 如图6所示,用户内在线钱包转入离线钱包流程如下:
[0107] 步骤1:用户选择在线钱包转入离线钱包功能;
[0108] 步骤2:用户输入转账金额,后台判断转账金额是否小于在线钱包余额,若小于,则执行步骤4,否则执行步骤3;
[0109] 步骤3:转账金额大于在线钱包余额,提示在线钱包余额不足,要求重新输入转账金额,执行步骤2;
[0110] 步骤4:转账金额小于在线钱包余额,输入在线密码或指纹验证,若验证通过,执行步骤6;否则执行步骤5;
[0111] 步骤5:用户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户、转账金额、验证方式、连续失败次数等,结束流程;
[0112] 步骤6:在线密码或指纹验证通过,离线钱包余额增加转账余额减去手续费,在线钱包余额减少,设置状态为待确认状态,并执行步骤7;
[0113] 步骤7:写入签名并广播交易信息,为从服务器钱包地址到离线钱包地址的信息,等待交易被确认,若该笔交易被写入区块,则执行步骤8;否则反复执行步骤7;
[0114] 步骤8:该笔交易被写入区块,取消在线钱包和离线钱包的“待确认”状态,用户端向服务器发送转账成功信息,包括交易编号、时间、地点、用户、验证方式、转账金额等,结束流程。
[0115] 如图7所示,用户内离线钱包转入在线钱包流程如下:
[0116] 步骤1:用户选择离线钱包转入在线钱包功能;
[0117] 步骤2:用户输入转账金额,后台判断转账金额是否小于离线钱包余额,若小于,则执行步骤4,否则执行步骤3;
[0118] 步骤3:转账金额大于离线钱包余额,提示离线钱包余额不足,要求重新输入转账金额,执行步骤2;
[0119] 步骤4:转账金额小于离线钱包余额,输入离线支付密码或指纹验证,若验证通过,执行步骤6;否则执行步骤5;
[0120] 步骤5:用户端向服务器发送转账失败信息,包括交易编号、时间、地点、用户、转账金额、验证方式、连续失败次数等,结束流程;
[0121] 步骤6:离线支付密码或指纹验证通过,在线钱包余额增加转账余额减去手续费,离线钱包余额减少,设置状态为待确认状态,并执行步骤7;
[0122] 步骤7:写入签名并广播交易信息,为从离线钱包地址到服务器的钱包地址的信息;等待交易被确认,若该笔交易被写入区块,则执行步骤8;否则反复执行步骤7;
[0123] 步骤8:该笔交易被写入区块,取消在线钱包和离线钱包的“待确认”状态,用户端向服务器发送转账成功信息,包括交易编号、时间、地点、用户、验证方式、转账金额等,结束流程。
[0124] 如图8所示,商家通过付款二维码收款的流程如下:
[0125] 步骤1:顾客打开付款二维码;
[0126] 步骤2:顾客端后台获取当前时间、地点等信息,生成在线钱包付款二维码;
[0127] 步骤3:商家扫描顾客的在线钱包付款二维码,商家设备获取当前时间、地点等信息进行解码,得到顾客付款码中部分信息,执行步骤4;
[0128] 步骤4:判断付款码的生成时间和使用时间是否在有效时间内?判断付款码的生成地点是否在扫描地点附近?判断付款码是否还未更新且未成功支付过?以上三个条件若有一条不满足执行步骤5,否则执行步骤6;
[0129] 步骤5:用户端向服务器发送付款失败的信息,包括操作编号、时间、地点、商家、顾客、失败原因等,结束流程;
[0130] 步骤6:用户输入付款金额,验证付款金额是否小于顾客在线钱包余额?若是执行步骤7,否则执行步骤5;
[0131] 步骤7:更改当前二维码状态为已支付,商家在线钱包余额增加,顾客在线钱包余额减少,无手续费,用户端向服务器发送付款成功信息,包括操作编号、时间、地点、商家、用户、金额等,结束流程。
[0132] 上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈