跨链桥——原子交换(Atomic Swaps),哈希时间锁(HTLC) 原理介绍

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨链桥——原子交换(Atomic Swaps),哈希时间锁(HTLC) 原理介绍相关的知识,希望对你有一定的参考价值。

什么是原子交换?(Atomic swaps)

跨链原子交换(Atomic swaps)是在两个平行链之间直接交换不同的加密货币的方法。就像用美元兑换人民币一样,这是一个过程,两个人可以在不同的链之间交换加密货币,但没有信任或第三方的节制。我们说这种交换是 "原子性的",因为它们必须是全有或全无的。为了保护两个用户,必须不存在一个人可以同时控制两个币的情况。

原子交换可以在许多区块链之间执行,为了使该方案发挥作用,两个链都需要支持相对的时间锁操作,以及对数据块进行散列并与给定的散列进行检查的能力。在本文中,我们将以比特币和比特币现金举例说明原子交换的实现原理,该实现原理的基础是两个哈希时间锁合约,又称为HTCL。

哈希时间锁合约(HTCL)

区块链就像一叠带锁的邮箱柜,有存款槽,对应链上的区块和区块内的交易数据,当你想从某人那里收到比特币时,你告诉他们该把币放进哪个邮箱,对应合约应该去那个区块查询交易数据。

在单向交易中,假设Bob想要支付 0.5 BTC给Alice,他将 0.5 BTC 放入被锁“A”锁定的邮箱“A”的插槽中。当爱丽丝准备花费硬币或将其转移到其他地方时,她使用她的钥匙“A”打开锁并取出硬币。

在双向交易中,Bob支付0.5 BTC 的同时希望收到 Alice 支付的 1 BTC Cash,完成这个操作的部署在两条链上的合约就是哈希时间锁合约,HTLC。

首先,他们有两个锁,一个锁的钥匙可以在规定时间后打开箱子(时间锁)。一个则是在锁定时间内可以打开邮箱柜的锁(哈希锁),只有先打开邮箱柜,才可以找到藏加密货币的邮箱。

时间锁

时间锁是强制的,必须要在一定的时间后才可以打开。

哈希锁

哈希锁需要正确的密码,一旦输入密码后,全世界都可以看到它,就像邮箱柜打开后,所有人都可以看到邮箱,也可以尝试寻找自己的邮箱。

如何实现交易过程

在理想情况下,我们只会使用哈希锁,时间锁只用于在意外情况下的退款。我们先忽略时间锁,假设 Alice 想要BTC,Bob 想要BTC Cash。他们同意以合适的价格,公平的交换对应的加密货币。

Alice 制作了两个哈希锁,它们都需要完全相同的密码。但是,一个需要她的钱包密钥“A”,而另一个需要鲍勃的钱包密钥“B”。爱丽丝知道密码,但暂时保密。

Alice 将哈希锁“A”放在 BTC 邮箱上,将哈希锁“B”放在BTC Cash邮箱上。 Alice 将她的 BTC Cash存入邮箱“B”,Bob 将他的 BTC 存入邮箱“A”。

交易开始!

当代币都存好了之后,Alice 就可以前往邮箱柜。她输入她之前想出的密码(哈希锁私钥),邮箱柜打开,使用私钥“A”(钱包私钥),打开邮箱“A”,获得 BTC。与此同时,Bob 正在观看 Alice,并看到 ALICE 输入了她的密码打开邮箱柜。现在 Bob 也知道密码了!他打开邮箱柜,找到 BTC Cash 邮箱“B”,输入他的密钥“B”(钱包私钥),这样 Bob 打开BTC Cash邮箱“B”,获得了BTC Cash。于是,Alice和Bob刚刚在两个独立的区块链上成功地交换了加密货币,而且在彼此之间或任何第三方都不存在信任问题(Trustless)。

意外情况处理——有内鬼,交易终止

假设 Bob 将他的BTC放入邮箱“A”,但之后再也没有收到 Alice 的消息,或者 Alice 不输入她的密码,Bob 就无法获得他想要的比特币现金,因此,Bob 需要一种方法来取回他原来的比特币。这就是时间锁的用处。

时间锁允许双方在交易未按计划执行的的情况下自行退款。为了交易的公平进行,排除一个人最终拥有所有加密货币而另一个人一无所有的情况。当加密货币锁在 HTLC 邮箱上时,时间锁可以保证每个人都可以在不受干扰的情况下赎回加密货币。如果交易失败,每个人都可以在时间到期后收回他们的加密货币。

时间锁每次锁定的时间对交易的公平进行至关重要。在我们的例子中,Alice 的时间锁应该更长(比如一周),而 Bob 的锁应该更短(比如一天)。从广义上讲,这是因为 Alice 知道哈希锁的私钥,因此具有很大的优势。只有 Alice 使用密钥,取出想要的加密货币后,交易对于 Bob 来说才刚刚开始,所以我们让 Alice 的退款更加麻烦。如果 Bob 认为 Alice 不诚实,他可以先 Alice 一步可以从邮箱“A”提走他的 BTC。

如果邮箱“B”的退款时间较短,Alice 可以等自己的时间锁到期后,从邮箱“B”退还自己的 BTC Cash,然后将密码输入比特币邮箱“A”并取走 Bob 发送的 BTC 。

原文:https://zhuanlan.zhihu.com/p/470628067

以上是关于跨链桥——原子交换(Atomic Swaps),哈希时间锁(HTLC) 原理介绍的主要内容,如果未能解决你的问题,请参考以下文章

ES Bridge跨链桥服务升级,新增BSC跨链网络

新生代跨链桥:不止于资产跨链 着眼于DApp跨链交互

“厮杀激烈”的跨链桥

不同类型跨链桥中可能存在的安全隐患

跨链桥黑客攻击事件频发,ES Bridge如何确保安全问题?

ChainSafe跨链桥部署教程