跨链技术方案中典型的有:哈希时间锁定(HTLC) 、公证人机制、侧链、中继链、分布式秘钥控制等。本篇主要讲解哈希时间锁定(HTLC)实现跨链的技术特性,在后续的文章中会相继介绍其他跨链的技术。

HTLC 的核心是时间锁和哈希锁。时间锁 指,交易双方约定在某个时间内提交才有效,超时则承诺方案失效(无论是提出方或接受方)。哈希锁 指,对一个哈希值 H,如果提供原像 R 使得 Hash(R) = H,则承诺有效,否则失效。如果交易因为各种原因未能成功,时间锁能够让交易参与各方拿回自己资金,避免因欺诈或交易失败造成的损失。

哈希时间锁定最早出现在比特币的闪电网络,跨链资产交换支持一定数量的 A 链资产和一定数量的 B 链资产进行原子交换。哈希时间锁定巧妙地采用了哈希锁和时间锁,迫使资产的接收方在最后期限内确定收款并产生一种收款证明给打款人,否则资产会归还给打款人。收款证明能够被付款人用来获取接收人区块链上的等量价值的数量资产或触发其他事件。

HTLC 主要特点

时间敏感性: HTLC 机制对交易时间的敏感性使得交易发起者不必浪费时间持续等待以确定他们的付款是否通过。如果设定时间已过,资金将被退回交易发起者,能够有效避免恶意拖延交易,降低交易对手风险。

去信任化: 交易可以经由两方或多方执行而不需要它们彼此信任。由于用户不需要将资金提供给第三方托管机构,安全性也会相对提高。

跨资产交互性: 在 HTLC 中,资金锁定实现了质押效果,为不同资产之间的交易提供了信任基础。

我们用一个例子来阐述如何使用哈希时间锁定进行跨链的原子资产交换,假设 Alice 和 Bob 有资产交换的需求,Alice 想用 1 个 BTCBob 换 20 个 ETH。那么首先需要在两条链上设置哈希时间锁定合约,然后执行如下步骤:

image.png

  1. Alice 随机构建一个字符串 s,并计算出其哈希 h = hash(s)
  2. Aliceh 发送给 Bob 的合约
  3. Alice 锁定自己的 1 个 BTC 资产,并设置一个较长的锁定时间 t1, 并设置了获取该 BTC 的一个条件:如果 Bob 能够提供 h 的原始值 s 就可以得到该 BTC
  4. Bob 观察到 Alice 合约中锁定了一个 BTC, 然后 Bob 锁定自己的 20 个 ETH 资产,并设置一个相对较短的锁定时间 t2, t2 < t1, Bob 也设置了获取条件:如果 Alice 能提供 h 的原始值 s 就可以获取 20 个 ETH
  5. Alice 将自己最初生成的字符串 s 发送到 Bob 的合约里取得了 20 个 ETH
  6. Bob 观察到步骤 5 中 Alices 值,将其发送给 Alice 的合约成功获取 1 个 BTC
  7. 至此 Alice 和 Bob 完成了资产的交换

HTLC 应用瓶颈

协议兼容性较低: HTLC 实施需要满足一些必要条件:一是用户资产所在区块链需要基于相同哈希算法(比如都使用比特币的 SHA-256 哈希算法);二是区块链需要兼容 HTLC 和其他可编程功能;三是交易双方需要在同一区块链上有交易账户。这些条件可能会成为 HTLC 推广应用的主要障碍。

时间锁机制造成退款时间过长: 时间锁有效降低了交易对手风险。但如果有中间节点因故无法进行交易,则必须等时间锁设定时间结束才能退款。如果发送者在设定时间结束前改变路径,将会承担极大风险。

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: 区块链跨链技术之哈希时间锁