闪电网络主心骨——HTLC(哈希时间锁定)简介

无论是单向支付通道和RSMC双向支付通道,交易双方都需要一个建立通道和关闭通道的过程,这对于需要频繁持续进行交易支付的场景来说没什么问题,但是对于很多一次性支付的场景,比如Alice在旅行途中去Bob商店买东西,Alice不太可能成为Bob商店的回头客,这时建立双方的支付通道进行支付就很不合适了,直接广播支付交易到比特币网络会更划算一些。

而是否可能继续利用离线支付通道的方式进行支付?可以考虑一个简单的支付模型:

Alice需要支付0.1 BTC给Bob,Alice和Bob之间没有建立支付通道,但是Alice、Bob和支付服务公司PayX之间拥有已经建立的RSMC双向支付通道,这时,Alice可以将0.1BTC支付给PayX,然后PayX再将0.1BTC支付给Bob即可。

Alice-->PayX-->Bob,显然这是一个典型的中心化结构,Alice和Bob需要无条件的信任PayX会提供诚实可靠的服务。针对这个问题,HTLC就被设计出来,HTLC是Hashed Timelock Contract的缩写。有了HTLC,闪电网络才能被称之为“网络”,其核心思想是:

1)Bob生成一个随机数Secret,只有Bob自己知道;
2)Bob将Secret的哈希值HS发给Alice,由于哈希函数的特性,通过HS无法反推出Secret;
3)Alice和PayX利用RSMC通道,建立一个新合约:若PayX知道HS的原像Secret,则Alice支付0.11BTC给PayX,否则2天后交易失效;
4)PayX和Bob利用RSMC通道,建立一个新合约:若Bob知道HS的原像Secret,则Alice支付0.1BTC给PayX,否则1天后交易失效;

显然,Bob是知道Secret的,Bob通过Secret得到PayX的0.1 BTC,PayX验证Secret和HS是匹配的,PayX也得到了Secret,并通过Secret得到Alice的0.12 BTC,在这个过程中,PayX获得了0.01的手续费,这里假设是Alice支付了手续费,也可以是Bob支付手续费,比如Alice支付0.1 BTC,Bob得到0.09 BTC,PayX得到0.01手续费。在利益的驱驶下,即使Alice、Bob、PayX互相之间没有信任关系,PayX还是乐意为其他人做支付桥梁的。

当闪电网络非常普及的时候,通过支付路由算法,可以找到任何两个人之间的最短支付路径,比如Alice-->PayX-->PayY-->PayZ-->Bob。支付通道、失效时间、哈希原像、路由算法四个核心元素构筑了闪电网络,以去信任的方式实现了比特币链外支付。

这里只记录了一些核心思想,HTLC的实现细节还是很复杂的,可参考闪电网络的技术论文:《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》

你可能感兴趣的:(闪电网络主心骨——HTLC(哈希时间锁定)简介)