基于比特币交易区块验证的离线交易系统及其方法技术方案

技术编号:18400053 阅读:42 留言:0更新日期:2018-07-08 20:04
本发明专利技术公开了一种基于比特币交易区块验证的离线交易系统及其方法,主要解决现有技术中收款方仅对离线比特币交易执行常规验证,未对交易确认区块执行验证而造成的付款方伪造比特币问题,其实现步骤为:系统初始化,付款方在线将比特币存入钱包,钱包验证存款交易;付款方通过钱包与收款方执行离线交易,将存款交易区块验证参数写入支付合同,并利用支付合同生成新收款地址;收款方验证离线交易,并使用私钥提取新收款地址中的比特币。本发明专利技术通过将交易区块确认参数绑定在支付合同上,再利用支付合同生成新的收款地址,避免了付款方伪造比特币与收款方进行交易,同时有效的防止了付款方比特币泄露,可用于预防离线支付中付款方伪造比特币进行交易。

Offline transaction system based on bitcoin transaction block verification and its method

The present invention discloses an off-line transaction system and its method based on the verification of the bitcoin trading block. It mainly solves the problem that the payer can forgery the bit currency in the existing technology only for the off-line bitcoin transaction, which is not verified by the transaction validation block. The actual procedure is the system initialization, The payer stores the bitcoin in the wallet online, the wallet verifies the deposit transaction; the payer executes the off-line transaction through the wallet and the payee, writes the verification parameters of the deposit transaction block into the payment contract, and uses the payment contract to generate the new receipts address; the payer verifies the off-line transaction and uses the private key to extract the ratio of the new receivable address. Special coins. By binding the confirmation parameters of the trading block to the payment contract and using the payment contract to generate a new receivable address, the invention avoids the payer's forgery of the bitcoin and the recipient, and effectively prevents the payment of the bit currency from the payer, and can be used to prevent the forgery of the forgery in the off-line payment.

【技术实现步骤摘要】
基于比特币交易区块验证的离线交易系统及其方法
本专利技术属于密码
,具体涉及一种离线比特币交易系统及其方法,可应用于离线交易中对付款方的资金财产保护和对收款方的交易保护。
技术介绍
比特币是当前虚拟经济中最具代表性的一种虚拟货币,它使用区块链作为底层技术。比特币系统通常要求交易双方的客户端在线执行交易,并且使用区块链技术来验证交易的合法性。因此在线交易时,商家可以通过监听网络,获得交易的区块确认以决定该交易是否合法;而离线场景下由于收款方无法连入网络,因此也就无法获得挖矿节点对交易的区块确认,此时付款方就可以声称自己拥有比特币去和收款方进行交易。而且,由于交易的收款地址通常是收款方从比特币地址池中选取,当收款方的设备被恶意攻击时,就有可能发生发送虚假的收款地址给付款方的情况,导致付款方的财产损失。随着比特币的应用场合增多,越来越多的人们希望即使在离线的环境中,依然能够使用比特币进行交易。因此有必要使用交易验证技术来保护收款方的权益,同时利用钱包的主公钥性质,由付款方生成新的收款地址,以保护付款方的财产安全,提高离线比特币交易的安全性。2013年ChristianDecker等人提出通过在线检测零确认交易双花的方法来判断交易的有效性,但他们的解决方法并不适用于离线支付场景。于是2017年AlexandraDmitrienko等人提出了基于时间的交易确认验证技术,收款方在离线交易时不仅要对交易执行基本检测,如检查交易脚本,还要限制交易的区块确认参数必须满足一定的条件。收款方通过选择合适的区块确认参数参考值,从而降低攻击者伪造交易确认而造成的和收款方成功交易的概率。但该方案的交易区块确认参数是由收款方公开发送给付款方,之后由付款方进行比对,因此付款方可以根据收款方规定的参考值去伪造合适的交易区块确认参数,以通过收款方的验证。2011年GavinAndresen提议为了预防比特币交易中虚假商家向顾客发送错误收款地址的情况,可以由顾客生成商家的收款地址,但他并没有给出具体做法。于是2013年IlgaGerhardt等人提出了Pay-to-Contract技术。该技术定义了支付合同的原则是收款地址是从支付合同中确定性生成的,顾客无需其他额外的信息就可以计算商家新的收款地址。因此该技术保证了仅有正确私钥的商家才能提取新的收款地址上的比特币,从而保护了支付方的财产安全。但由于离线“交易”更准确的是指交易双方的转账,而非普遍性的顾客-商人关系,也就是说,顾客和商人之间不再是下订单-支付商品的模式。因此该方案无法扩展到离线情况下付款方与收款方的转账。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提出一种基于比特币交易区块验证的离线交易系统及其方法,以防止离线交易中支付方伪造比特币与收款方进行交易,提高交易过程中对支付方财产的安全保护。为实现上述目的,本专利技术的技术方案包括如下:(1)付款方A在线存入比特币阶段:(1a)付款方A通过它的付款平台PA向其离线钱包W在线存入设定数量的比特币,付款平台PA将此笔存款交易u1广播至比特币网络,离线钱包W地址为w1;(1b)比特币网络中的挖矿节点对交易u1进行验证并写入第一个区块C1,离线钱包W从第一个区块C1中提取交易u1的区块确认参数(v,n,s),其中v表示当前比特币网络产生第一个区块的头部信息哈希值,n是确认交易u1的区块总个数,s是第一个区块与最后一个区块的时间戳之差;(2)收款方B与支付方A的离线钱包W离线交易阶段:(2a)收款方B在与付款方A的离线钱包W进行离线交易u0之前,由收款平台PB提前规定第一个区块的确认参数参考值(v',s',n'),其中v'=1.5E+58表示由收款方规定的产生第一个区块的头部信息哈希目标值,n'∈[5,16]表示由收款方规定的确认一笔交易所需要的区块数目,s'∈[1000,1400]表示由收款方规定的生成n'个区块所需时间的上限,其单位为秒;(2b)收款方B在与付款方A的离线钱包W进行离线交易u0时,由收款平台PB将交易u1的区块确认参数参考值(v',s',n')写入原支付合同x,并将原支付合同x通过支付平台PA发送给离线钱包W;(2c)离线钱包W根据原支付合同x和区块确认参数(v,n,s)计算新支付合同x1,保证收款方B能将区块确认参数(v,n,s)与自己规定的参考值(v',s',n')进行比对,确认交易u1的区块确认参数(v,n,s)不是伪造的;(2d)离线钱包W利用主公钥性质,将新支付合同x1与收款地址pkB进行绑定,生成新收款地址dadd,并将离线钱包W地址w1中的比特币存入这个新收款地址dadd,以保证只有收款方B才能提取新收款地址上的比特币;(2e)收款平台PB验证离线交易u0是否合法,以确定付款方A是否伪造比特币与自己交易,如果合法,PB提取新收款地址dadd上的比特币;(3)离线交易完成后,离线钱包W储存新支付合同x1作为离线交易凭据,确保比特币已经被收款方B接收,其他用户在收款平台PB公开区块确认参数参考值(v',s',n')后,计算得到验证合同x2,验证离线交易u0的有效性。本专利技术与现有技术相比,具有以下优点:第一,本专利技术由于将传统比特币在线交易中的支付合同技术Pay-to-contract与离线比特币交易中基于时间的交易确认验证机制相结合,解决了支付方通过伪造零确认交易区块确认参数值造成的伪造比特币进行离线交易的问题,收款方与付款方只需分别将交易区块确认参数的参考值与真正的参数值写入支付合同中,由收款方在交易时比对这两个参数值,就能确认支付方是否伪造比特币进行交易,提高了收款方对支付方和交易的信任度;第二,本专利技术由于利用主公钥性质去生成新的收款地址,避免了收款方给支付方发送虚假收款地址的情况发生,付款方只需用收款方公钥与支付合同去计算新的收款地址,就可以保证仅有收款方私钥的人才能计算新地址对应的私钥。附图说明图1为本专利技术的实现总流程图;图2为本专利技术中离线比特币交易的子流程图。具体实施方式下面结合附图对本专利技术做进一步的描述。参照图1,本专利技术的实现步骤如下。步骤1,初始化。(1a)定义付款方A的公钥pkA、私钥skA由支付平台PA管理,收款方B的公钥pkB、私钥skB由收款平台PB管理;(1b)付款平台PA,收款平台PB分别选择伪随机数skA,skB,且满足0<skA,skB<p-1,使用椭圆曲线加密算法分别计算付款方A的公钥pkA和收款方B的公钥pkB:pkA=skA·gmodp,pkB=skB·gmodp;其中,pkA,pkB∈G,G是由椭圆曲线secp256k1上面的点构成的一个交换群,g∈G是椭圆曲线secp256k1的生成元,素数p是椭圆曲线secp256k1的阶;(1c)平台PA中有一个离线钱包W,该钱包定义自己的公钥:pkW=skW·gmodp,其中skW∈(0,p-1)为私钥;(1d)离线钱包W生成自己用来接收用户存入比特币的地址w1:首先,将公钥pkW先经过SHA256算法处理得到32字节的哈希结果,再经过RIPE160算法处理后得到20字节的摘要结果;接着,在摘要结果后面增加比特币主网版本号0x00,得到新的摘要结果;最后,对新的摘要结果经过连续两次SHA256算法处理,得到64位哈本文档来自技高网
...

【技术保护点】
1.一种基于比特币交易区块验证的离线交易系统及其方法,其特征在于包括:(1)付款方A在线存入比特币阶段:(1a)付款方A通过它的付款平台PA向其离线钱包W在线存入设定数量的比特币,付款平台PA将此笔存款交易u1广播至比特币网络,离线钱包W地址为w1;(1b)比特币网络中的挖矿节点对交易u1进行验证并写入第一个区块C1,离线钱包W从第一个区块C1中提取交易u1的区块确认参数(v,n,s),其中v表示当前比特币网络产生第一个区块的头部信息哈希值,n是确认交易u1的区块总个数,s是第一个区块与最后一个区块的时间戳之差;(2)收款方B与支付方A的离线钱包W离线交易阶段:(2a)收款方B在与付款方A的离线钱包W进行离线交易u0之前,由收款平台PB提前规定第一个区块的确认参数参考值(v',s',n'),其中v'=1.5E+58表示由收款方规定的产生第一个区块的头部信息哈希目标值,n'∈[5,16]表示由收款方规定的确认一笔交易所需要的区块数目,s'∈[1000,1400]表示由收款方规定的生成n'个区块所需时间的上限,其单位为秒;(2b)收款方B在与付款方A的离线钱包W进行离线交易u0时,由收款平台PB将交易u1的区块确认参数参考值(v',s',n')写入原支付合同x,并将原支付合同x通过支付平台PA发送给离线钱包W;(2c)离线钱包W根据原支付合同x和区块确认参数(v,n,s)计算新支付合同x1,保证收款方B能将区块确认参数(v,n,s)与自己规定的参考值(v',s',n')进行比对,确认交易u1的区块确认参数(v,n,s)不是伪造的;(2d)离线钱包W利用主公钥性质,将新支付合同x1与收款地址pkB进行绑定,生成新收款地址dadd,并将离线钱包W地址w1中的比特币存入这个新收款地址dadd,以保证只有收款方B才能提取新收款地址上的比特币;(2e)收款平台PB验证离线交易u0是否合法,以确定付款方A是否伪造比特币与自己交易,如果合法,PB提取新收款地址dadd上的比特币;(3)离线交易完成后,离线钱包W储存新支付合同x1作为离线交易凭据,确保比特币已经被收款方B接收,其他用户在收款平台PB公开区块确认参数参考值(v',s',n')后,计算得到验证合同x2,验证离线交易u0的有效性。...

【技术特征摘要】
1.一种基于比特币交易区块验证的离线交易系统及其方法,其特征在于包括:(1)付款方A在线存入比特币阶段:(1a)付款方A通过它的付款平台PA向其离线钱包W在线存入设定数量的比特币,付款平台PA将此笔存款交易u1广播至比特币网络,离线钱包W地址为w1;(1b)比特币网络中的挖矿节点对交易u1进行验证并写入第一个区块C1,离线钱包W从第一个区块C1中提取交易u1的区块确认参数(v,n,s),其中v表示当前比特币网络产生第一个区块的头部信息哈希值,n是确认交易u1的区块总个数,s是第一个区块与最后一个区块的时间戳之差;(2)收款方B与支付方A的离线钱包W离线交易阶段:(2a)收款方B在与付款方A的离线钱包W进行离线交易u0之前,由收款平台PB提前规定第一个区块的确认参数参考值(v',s',n'),其中v'=1.5E+58表示由收款方规定的产生第一个区块的头部信息哈希目标值,n'∈[5,16]表示由收款方规定的确认一笔交易所需要的区块数目,s'∈[1000,1400]表示由收款方规定的生成n'个区块所需时间的上限,其单位为秒;(2b)收款方B在与付款方A的离线钱包W进行离线交易u0时,由收款平台PB将交易u1的区块确认参数参考值(v',s',n')写入原支付合同x,并将原支付合同x通过支付平台PA发送给离线钱包W;(2c)离线钱包W根据原支付合同x和区块确认参数(v,n,s)计算新支付合同x1,保证收款方B能将区块确认参数(v,n,s)与自己规定的参考值(v',s',n')进行比对,确认交易u1的区块确认参数(v,n,s)不是伪造的;(2d)离线钱包W利用主公钥性质,将新支付合同x1与收款地址pkB进行绑定,生成新收款地址dadd,并将离线钱包W地址w1中的比特币存入这个新收款地址dadd,以保证只有收款方B才能提取新收款地址上的比特币;(2e)收款平台PB验证离线交易u0是否合法,以确定付款方A是否伪造比特币与自己交易,如果合法,PB提取新收款地址dadd上的比特币;(3)离线交易完成后,离线钱包W储存新支付合同x1作为离线交易凭据,确保比特币已经被收款方B接收,其他用户在收款平台PB公开区块确认参数参考值(v',s',n')后,计算得到验证合同x2,验证离线交易u0的有效性。2.根据权利要求1所述方法,其中步骤(1a)中付款方A通过它的付款平台PA向离线钱包W在线存入设定数量的比特币,按如下步骤进行:(1a1)付款方A向其付款平台PA提交存入离线钱包W的比特币金额Mr;(1a2)离线钱包W定义自己的公钥:pkW=skW·gmodp,其中skW∈(0,p-1)为私钥;(1a3)离线钱包W生成自己用来接收用户存入比特币的地址w1;(1a4)离线钱包W初始化地址w1中的比特币数目balance=0,并向付款平台PA提交自己的地址w1;(1a5)付款平台PA打包生成交易u1,交易u1中包含付款方A的公钥pkA、私钥skA、比特币数目Mr、离线钱包W的地址w1信息,其中,付款方A、收款方B的公私钥对按如下方式生成:付款平台PA,收款平台PB分别选择伪随机数skA,skB,且满足0<skA,skB<p-1,使用椭圆曲线加密算法分别计算付款方A的公钥pkA和收款方B的公钥pkB:pkA=skA·gmodp,pkB=skB·gmodp;其中,pkA,pkB∈G,G是由椭圆曲线secp256k1上面的点构成的一个交换群,g∈G是椭圆曲线secp256k1的生成元,素数p是椭圆曲线secp256k1的阶。3.根据权利要求1所述方法,其中步骤(1b)中离线钱包W从第一个区块C1中提取交易u1的区块确认参数(v,n,s),按如下步骤进行:(1b1)支付平台PA将交易u1及用于确认交易u1的区块:n-U1={C1,...Cn,Cn+1}发送给离线钱包W;(1b2)离线钱包W检查交易u1和n-U1的脚本:若检查通过,离线钱包W计算第一个区块与最后一个区块的时间戳差s:=tn+1-t1,并提取C1的头部信息哈希值v;否则,离线钱包W拒绝接收交易u1及交易确认区块n-U1={C1,...Cn,Cn+1};(1b3)离线钱包W更新其地址w1中的余额balance=balance+Mr,并储存交易u1及参数n-U1、v和s;(1b4)离线钱包W将接收交易u1或拒绝交易u1的状态返回给支付平台PA。4.根据权利要求1所述方法,其中步骤(2b)中收款方B在与付款方A的离线钱包W进行离线交易u0时,由收款平台PB计算原支付合同x,按如下步骤进行:(2b1)收款方B向收款平台PB提交离线交易u0所...

【专利技术属性】
技术研发人员:李雪莲王海玉高军涛李伟
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1