-
基于哈希时间锁定的跨链交易
2026-02-20 08:18:41
跨链需求
随着区块链技术的发展,各种具有不同特点,不同应用场景的区块链比如比特币、以太坊等公链以及私链和联盟链大量共存,它们之间相互独立,进行数据通信和价值转移仍面临挑战,区块链孤岛现象十分严重。为了解决区块链孤岛,实现链与链之间互联互通,进行价值转移,就必须实现跨链技术。就连银保监会陈伟刚也曾说过:“区块链的跨链需求会越来越多,因为区块链是一个联盟链,只是在自己的行业里应用,效益就得不到最优,更多的是行业与行业之间的联盟链跨链,所以跨链需求会成为区块链的一个拓展方向”。
目前,主流的跨链技术方案主要有三种,分别是哈希时间锁定、公证人机制和中继链方式。本篇主要分析实现哈希时间锁定跨链技术方案。哈希时间锁定本质是一种智能合约,其最先出现于2013年的BitcoinTalk论坛的一次讨论中,最早在闪电网络中实现。
哈希时间锁
1. hash锁
hash算法是一个可以将任意长度的输入内容以一个固定长度输出的算法,输入内容称为原始值,输出内容称为hash值,hash算法可以保证
a. 输入内容一致的情况下,输出内容也是相同的;
b. 从输出内容不能反向推导出输入内容.
基于hash算法的特点,我们可以将hash值看成一把锁,而原始值则是唯一可以解开这把锁的钥匙.
2. 时间锁
时间锁比较简单,时间锁上会记录一个时间点,即使有正确的钥匙,也必须在此时间点前才能打开,过时则无法打开.
跨链原理
哈希时间锁定是基于哈希锁和时间锁来实现跨链。假如有两条区块链ChainA和ChainB,每个链的原生资产分别为a、b,两个用户Alice和Bob,Alice有资产a,Bob有资产b,Alice与Bob想交换资产,那么他们可以使用以下的方式来实现:
Alice选取一个秘密随机数S,计算出S的哈希值H(S),Alice将H(S)发送给Bob,然后Alice指定一个时间点T1.接着Alice在ChainA上创建资产锁定合约,合约执行以下步骤:
使用hash值H(S)将自己在ChainA上的资产a加上哈希锁;
使用时间点T1将自己在ChainA上资产a加上时间锁;
只有获得S并且在时间点T1才将资产a转移走,如果到时间点T1后仍未解锁,则允许撤销锁定,且不会发生资产转移。
Alice将H(S)发送给Bob,Bob基于H(S)和一个小于T1的时间点T2在ChainB上创建资产锁定合约,合约执行以下步骤:
使用hash值H(S)将自己在ChainB上的资产b加上哈希锁;
使用时间点T2将自己在ChainB上资产b加上时间锁;
只有拥有S并且在时间点T2才将资产b转移走,如果到时间点T2后仍未解锁,则b资产超时锁定。
Alice使用S在时间点T2前调用ChainB上的智能合约解锁资产b,并将资产转移给自己.
因为Alice解锁了资产b,所以Bob也获得S的值,Bob使用S在时间点T1前解锁资产a,并将资产转移给自己.
通过以上的过程Alice和Bob就使用哈希时间锁在两条链上完成了资产转移.
image.png