APP下载

区块链跨链算法的改进与应用

2022-09-08

关键词:哈希区块交易

宋 丽 萍

(阜阳职业技术学院, 安徽 阜阳 236000)

0 前 言

随着互联网的不断发展,区块链技术受到越来越多的关注,并逐步应用于商业、医疗、教育等领域。区块链技术具有去中心化、不可篡改等特点。P2P网络中的每个节点都有独立的数据库,都能形成独立的封闭式区块链网络,链与链之间无法进行正常的数据交易。而用户之间在不同链上的数字资产交易必须通过中心化交易平台来实现,这与区块链的去中心化思想背道而驰[1]。为此,区块链跨链技术[2]应运而生。哈希时间锁定合同算法(hashed timelock contract,HTLC)[3]是最常用的区块链跨链算法。本次研究针对HTLC算法存在的问题进行改进,并将其应用于积分交换系统进行验证。

1 区块链跨链技术

区块链跨链技术不同于传统的TCP/IP协议,传统的TCP/IP协议只需要数据在传输过程中保持完整性和安全性;而不同链之间的资产交易需要保持数据变动的一致性,否则会造成用户资产丢失。跨链技术是在去中心化的前提下,实现链与链之间的价值交换,在保证两条区块链价值总额不变的情况下,将一条链上的价值转换成为另一条链上的价值[4]。目前主流的跨链技术包括公证人机制、侧链/中继链技术和哈希时间锁定机制。公证人机制容易操作,但存在中心化风险;侧链/中继链技术成本较高,效率较低;哈希时间锁定机制利用哈希锁和时间锁来保证资产交易的原子性,得到了广泛的应用[5]。

2 HTLC算法及其改进思想

2.1 HTLC算法

HTLC算法是最常用的区块链跨链算法,起源于闪电网络[6],是指将小额比特币交易放在链下进行,将支付结算放在链上进行,以提高比特币的交易效率。HTLC算法不需要交易双方互相信任,具备去中心化、去中介化等特点[7]。HTLC算法的目的是通过Hash的方式在多个节点之间传递全局信息。HTLC算法的核心是哈希锁和时间锁。哈希锁是指通过输入用于哈希运算的随机数来解锁资源,而时间锁是指在规定的时间内执行操作[8]。用户1发起交易,生成密钥R(随机数),计算出哈希值(Hk=H(R))并将其发送给用户2;用户1和用户2在各自链上设置时间锁,并通过智能合约锁定各自资产。如果用户1能够在T2时间内提供R,则系统将锁定资产转给用户2,否则跨链失败,智能合约中的锁定资产会自动返回给用户1。如果用户2能够在T1时间内提供R,则系统将锁定资产转给用户1,否则跨链失败,智能合约中的锁定资产会自动返回给用户2。如果用户1和用户2中任何一方都不能在对方规定的时间范围内提供R,则都将导致跨链失败。

HTLC算法通过哈希锁和时间锁来保证资产交易的安全性和原子性,链与链之间不需要互相了解。但如果攻击者在短时间内创建了大量的跨链交易,就会导致区块链网络拥堵,交易无法正常进行。另外,如果不针对跨链交易超时问题设置违约惩罚机制,就可能会导致大量链上交易超时,给用户造成损失[9]。

2.2 HTLC算法的改进思想

2.2.1 加密机制

HTLC算法主要通过哈希锁和时间锁来保证交易的安全性,通过对比计算出的哈希值是否一致来决定交易双方能否成功解锁对方资产。在交易之前,一方将计算出的哈希值发送给另一方,对方根据获得的哈希值锁定资产,因此交易资金的安全性与哈希值有关[10]。

当用户1将生成的随机密钥R传递给用户2时,如果R在传递过程中被修改,用户2使用被篡改的R锁定资产,那么用户1无法解锁资产,因此需要对哈希锁的加密过程进行改进[11]。改进思想如下:

(1) 用户1发起交易,生成R,利用哈希函数H(R)计算出Hk。

(2) 用户1使用私钥Kp对Hk签名,形成消息摘要Hs,同时将Hk和Hs发送给用户2。

(3) 用户2收到消息后,使用用户1的公钥Kg对Hs进行解密,得到新的哈希值Hd。对比Hd与Hk是否一致,如果一致,则用户2使用Hk锁定资产;如果不一致,则说明Hk在传输过程中被篡改,需要重新发送。

2.2.2 违约惩罚机制

HTLC算法需要在交易之前锁定资产,交易双方通过在一定时间内对比哈希值的一致性来决定能否解锁资产,如果超时,锁定资产将被全部返还。一些攻击者可以在短时间内建立大量交易,并故意超时发送,使得网络阻塞。因此,应设置违约惩罚机制[12],以保证交易正常进行。加入违约惩罚机制的交易流程如图1所示。

图1 加入违约惩罚机制的交易流程图

假设用户1与用户2之间进行跨链交易,双方约定违约保证金比例为8%、交易时间为t。交易流程具体描述如下:

(1) 用户1和用户2使用Hk锁定各自可兑换资产和违约保证金。

(2) 在t时间内,用户1向区块链2提供密钥,获得用户2的锁定资产;同时,用户2通过用户1的密钥,获得用户1的锁定资产。

(3) 如果交易一方存在违约超时,则另一方可以通过广播获得违约方的违约保证金。

加入违约惩罚机制后,交易双方一旦锁定资产,将无法退回,因此需要设置资产回撤机制。在上述交易过程中,如果用户1需要在区块链1中撤退资产,交易双方就要对各自的撤退操作执行签名,在用户1允许的时间范围内采用广播的方式发出撤退请求,经用户2同意后,锁定资金将返回给用户1。

3 改进HTLC算法的验证分析及应用

3.1 改进HTLC算法的验证分析

本次研究从算法的超时交易成本和性能等2个方面进行验证,采用以太坊平台搭建验证环境。以太坊(ethereum)[13]是一个开源的有智能合约[14]功能的公共区块链平台,通过其专用加密货币以太币提供去中心化的以太虚拟机(ethereum virtual machine)[15]来处理点对点合约。

3.1.1 超时交易成本

加入违约惩罚机制后,增加了违约保证金的存储空间,在以太坊实验平台中将消耗更多的燃料(Gas)[16]。如果存在大量的超时交易,将会大大增加燃料的消耗。选择不同数量节点在每条区块链上进行测试(见图2)。消耗的Gas值随着超时交易节点数量的增加而增加,如果攻击者想利用超时交易攻击网络,将会付出巨大的代价。

图2 超时交易成本验证

3.1.2 交易性能

本次研究采取相同的共识机制对交易性能进行验证分析,选用的区块链网络由2条链上的5个节点构成。区块链跨链算法的性能主要由延迟性决定,TD表示交易延迟时间,TB表示交易开始时间,TC表示交易共识时间,TE表示交易结束时间,则TD=TB+TC+TE。

对改进算法的延迟性进行分析,在不同的区块链上选取1个节点发起不同锁定时间间隔的交易(见图3)。跨链交易的完成时间随着锁定时间间隔的增加而增加,而普通交易不受锁定时间间隔的影响。因此,改进HTLC算法的延迟性与锁定时间间隔相关。

图3 改进算法的交易完成时间

对算法改进前后的性能进行对比分析可知,原算法和改进算法的交易完成时间随着交易节点数量的增加而增加,但改进算法的性能优于原算法(见图4)。

图4 算法改进前后性能的对比

3.2 改进HTLC算法的应用

传统的积分系统存在积分不能通兑、积分消费困难等问题。数字积分是商家留住老顾客、吸引新顾客的一种手段,被广泛应用于商业领域。目前普遍采用联盟链解决方案[17],商家借助联盟链将积分发送给客户,但由于很多商家不愿意共享客户信息,导致积分通兑项目进展不顺利[18]。为此,在原有的积分系统上构建了区块链跨链积分系统,使各个链上的积分系统独自运行,并采用改进HTLC算法来确保积分交换系统的安全性。系统采用以太坊区块链、Truffle开发框架、MySQL数据库和PHP、Node.js开发环境。

3.2.1 系统设计

积分交换系统分为前端和后端,前端提供积分兑换接口,后端为区块链网络。系统整体上采用B/S架构,每个节点负责提供服务接口,智能合约通过分布式数据库的方式来实现。基于改进HTLC算法的积分交换系统整体架构如图5所示。

图5 基于改进HTLC算法的积分交换系统整体架构

3.2.2 系统实现

在系统整体架构的基础上,设计了前端交互式界面,用于积分交换系统与不同区块链之间的交互操作。积分交换系统界面如图6所示。

图6 积分交换系统界面

用户可以通过积分交换系统查询积分信息、设定积分兑换数量等。链上节点通过广播的方式传输封装起来的相关信息,执行完兑换操作后,再将交易结果反馈给浏览器,用户可以在“我的交易”中查到交易信息[19]。

4 结 语

随着区块链技术的不断发展,跨链技术的需求不断提高,其已成为构建价值网络高速公路的核心技术[20]。本次研究在保证资产交易原子性的前提下,通过设置加密机制和违约惩罚机制对HTLC算法进行改进,增加了违约成本,优化了跨链交易性能,并将改进HTLC算法应用于积分交换系统中进行验证。

猜你喜欢

哈希区块交易
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
《红楼梦》的数字化述评——兼及区块链的启示
一场区块链引发的全民狂欢
区块链助力企业创新
区块链投机者
大宗交易榜中榜
大宗交易榜中榜
巧用哈希数值传递文件