【技术实现步骤摘要】
一种基于跨节点多跳支付的区块链匿名交易方法
本专利技术属于区块链技术,具体涉及一种基于跨节点多跳支付的区块链匿名交易方法。
技术介绍
由于比特币的广泛关注,比特币市场的热点在不断攀升,其币值也在不断上升,而比特币系统中交易速度却成为诟病。由于早期比特币系统设计因相关规则限制,导致比特币网络处理交易速度为7笔/秒、每个区块存储容量1MB等等状况,其极大地限制了比特币支付交易的使用。与任何新兴技术一样,比特币同样需要解决一系列问题和调整措施。比特币的主要不足包括以下几个方面:1)处理交易速度相对较慢。目前速度为每秒7笔交易,用户在等待交易确认要耗费大约一小时。在交易量需求大的情况下,这样的速度会导致系统吞吐量较低,对于有实时处理交易需求的客户很不友好。2)对节点设备存储容量压力较大。早期的比特币全节点需要同步整个网络的区块才可以进行打包验证等工作,那么该节点需要存储100GB以上的区块到本地,这无疑会占据设备的大量存储空间。3)每个区块存储量较小。比特币系统针对每个区块只存储1MB的交易数据,而面对海量交 ...
【技术保护点】
1.一种基于跨节点多跳支付的区块链匿名交易方法,其特征在于,包括如下步骤:/n步骤1:节点请求交易前需建立加密会话状态,该状态用于加密和认证节点之间发送的消息;在节点进入身份验证和加密通信状态前,需要进行三步通信握手,保障通信的匿名性与安全性;/n步骤2:节点进入加密模块的安全会话状态后,可以与其他节点通信交易信息进行有关通道的相关操作;其中,节点需要和其他节点协商通道信息,双方协商确认时,系统建立通道;/n步骤3:节点间通道成功建立并正常运行的情况下,可以自由关闭支付通道;其中,当通道资金为0或通道资金不足时,系统直接清算并关闭支付通道,而当交易双方发起关闭通道请求时,系 ...
【技术特征摘要】
1.一种基于跨节点多跳支付的区块链匿名交易方法,其特征在于,包括如下步骤:
步骤1:节点请求交易前需建立加密会话状态,该状态用于加密和认证节点之间发送的消息;在节点进入身份验证和加密通信状态前,需要进行三步通信握手,保障通信的匿名性与安全性;
步骤2:节点进入加密模块的安全会话状态后,可以与其他节点通信交易信息进行有关通道的相关操作;其中,节点需要和其他节点协商通道信息,双方协商确认时,系统建立通道;
步骤3:节点间通道成功建立并正常运行的情况下,可以自由关闭支付通道;其中,当通道资金为0或通道资金不足时,系统直接清算并关闭支付通道,而当交易双方发起关闭通道请求时,系统依据协商规则清算并关闭通道;
步骤4:节点可选择其他节点构建支付通道完成跨节点匿名支付;其中,被选择的节点需要使用洋葱路由隐藏转发身份,而节点为满足匿名性,需要将被选择节点的服务费用考虑在匿名支付路径上。
2.根据权利要求1所述的一种基于跨节点多跳支付的区块链匿名交易方法,其特征在于,所述步骤1的具体过程包括如下:
步骤1.1,节点双方初始化会话状态,采用SHA256算法处理握手哈希h,握手哈希h包含链接密钥lk;发送方将接收方静态公钥rs累积进握手哈希获得新握手哈希h1,接收方将本地静态公钥ls累积进握手哈希获得新握手哈希h2;其中,密钥累积进h时会对密钥进行序列化操作;
步骤1.2,加密模块握手第一步:发送方先生成自己的临时密钥对tk1,将公钥累积进h1,之后利用tk1的私钥和rs进行椭圆曲线迪费霍尔曼算法得到共享密钥tks,,再利用HKDF算法通过tks和lk派生密钥得到新的lk以及临时密钥tempk1;其中,HKDF算法是通过获取一部分密钥材料,从其中派生出一个或多个具有更高安全性的密钥,最后开始对tempk1和h1使用关联数据进行身份验证加密算法生成明文c,将c累积进h1,然后将c和tk1的公钥作为消息m发送给接收方;
步骤1.3接收方收到m后,先进行版本校验,校验不通过则停止响应,然后从m中提取出c和tk1的公钥作为rtk1的值,将rtk1累积进h2,用rtk1和自己静态密钥s的私钥进行椭圆曲线迪费霍尔曼算法得到结果共享密钥tks,同样利用HKDF算法通过tks和lk派生密钥得到新的lk以及tempk1,之后利用tempk1、h2和c进行使用关联数据进行身份验证加密算法解密运算得到结果p进行MAC验证,验证失败则接收方停止响应,之后将c累积进行运算得到h2。
步骤1.4加密模块握手第二步:接收方生成自己的临时密钥对tk2,将其公钥累积进h2,利用tk2的公钥和第一步中的rtk1进行椭圆曲线迪费霍尔曼算法运算得到共享密钥tkk,同样通过lk和tkk利用HKDF算法派生密钥lk和tempk2,最后利用tempk2和h2使用关联数据进行身份验证加密算法运行得到明文c并将其累积进入h2,最后通过tk2的公钥和c作为消息m发送给发送方。
步骤1.5发送方接收到消息m先进行版本校验,之后提取c,tk2的公钥作为rtk2的值并将其累积进h1,之后将lk和rtk2进行椭圆曲线迪费霍尔曼算法运算得到共享密钥tkk,同样通过HKDF算法将lk和tkk派生密钥lk和tempk2,利用tempk2、h1和c进行使用关联数据进行身份验证加密算法解密运算得到p进行MAC验证,最后将c累积进h1;
步骤1.6加密模块握手第三步:发送方通过将tempk2、h1和序列化后自己的静态密钥s的公钥进行使用关联数据进行身份验证加密算法加密运算得到c并将其累积进h1,之后将s的私钥和rtk2通过椭圆曲线迪费霍尔曼算法得到共享密钥srk,利用HKDF算法对lk和srk进行密钥派生得到lk和tempk3,明文t的值为tempk3和h1进行使用关联数据进行身份验证加密算法得到的结果,最后利用HKDF算法对lk进行派生密钥得到fsk和frk,其中fsk是发送方进行加密信息所用密钥,而frk是发送方对信息进行解密的密钥,然后将c和t作为消息m发送接收方;
步骤1.7接收方接收到消息m后进行版本验证,提取c和t,之后利用tempk2、h2和c进行使用关联数据进行身份验证加密算法解密运行得到发送方的静态密钥s的公钥,将c累积进h2,然后为得到共享密钥srk对tk2的私钥和s的公钥进行椭圆曲线迪费霍尔曼算法运算,再对lk用HKDF算法派生密钥lk和tempk3,最后用使用联数据进行身份验证加密算法解密算法解密t进行MAC检验,然后用lk进行HKDF密钥派生fsk和frk,握手结束;
步骤1.8双方最终得到解密密钥和会话加密,为保证匿名性和安全性,需要椭圆曲线迪费霍尔曼算法协商共享密钥,期间发送方没有暴露自己的公钥,只有在三次握手后接收方成功恢复发送方的公钥。
3.根据权利要求1所述的一种基于跨节点多跳支付的区块链匿名交易方法,其特征在于,所述步骤2具体过程包括:
步骤2.1发送方首先需要发送申请打开通道的OPEN消息给接收方,该OPEN消息包括申请通道所在的区块哈希blockhash、通道tempID、发送方建立通道的资金fund以及相关交易金额上限、阈值等协议内容;
步骤2.2接收方收到OPEN消息后,先针对协议内容进行判断,接收方同意协议后,接收方发送接受通道的ACCEPT消息给发送方,表示同意发送方建立通道请求,否则接收方可以拒绝该建立申请;其中,ACCEPT消息包括tempID以及交易协议内容;
步骤2.3发送方收到ACCEPT消息后对该消息内的交易协议内容进行判断,接受协议内容后,发送方发送创建通道资金交易的CFUND消息给接收方,否则发送方拒绝通道的建立。;
步骤2.4接收方收到CFUND消息后,先验证该签名是否属于发送方,否则丢弃该消息,验证通过则发送SFUND消息给发送方。
步骤2.5发送方收到SFUND消息后,同样先进行签名验证,通过之后该通道资金交易便可广播到区块链网络中,等待区块认证后...
【专利技术属性】
技术研发人员:李致远,张威威,万宇杰,毕俊蕾,彭二帅,
申请(专利权)人:江苏大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。