哈希时间锁,将条件交易由点成面

上一篇解读到闪电网络白皮书中可撤销的顺序成熟度合同RSMC,哈希时间锁合约(Hashed-Time Lock Contract,简称HTLC)是在此基础上进一步延伸,引入哈希密码和时间锁概念,让单个支付通道相互连接形成网络,最终形成覆盖全球的支付网络。具体操作就是发起交易时,双方约定转账方先冻结一笔钱,并提供了一个哈希值,如果在一定时间内有人能提出一个密文,并且哈希后的值与已知的哈希匹配,则这笔钱就转给接收方。

RSMC只支持最简单的无条件资金支付,HTLC进一步实现了有条件的资金支付,通道余额的分配方式也因此变得更为复杂。

它有两个条件
Hash lock:给你一个哈希值H(R),当你给出它的原像R时,你就可以花这笔钱。
Time lock:在某个时间点之前提供原像R才是有效,超出时间后交易失效。

举个栗子,Alice和Bob分别拿出0.5个BTC,建立一个通道FT(资金交易),相当于资金池。根据RSMC原理,生成承诺交易CT:C2a和C2b。图示所反映的通道余额划分是: 有0.9 BTC以无条件余额划分的形式在Alice和Bob之间分割,Alice占0.4 BTC,Bob占0.5 BTC。Alice向Bob有条件支付0.1 BTC,如果Bob能于3天内(实际是以区块链高度代表的未来某时)之前提供合适的R,Bob就能得到这笔钱,反之这笔钱仍然回到Alice账上。

备注:其中“> 3 days”是利用lock time字段的最新扩展实现的。与“seq=1000”的区别在于,lock time指定的是一个高度绝对值,而sequence指定的是相对父交易所在区块高度的相对值。

HTLC案例示范图

交易并非总是一帆风顺 ,超时退款时有发生。如果Bob未能在3天内及时提交R,Alice可以通过用自己的私钥准备各交易的输入解锁脚本并发布交易到区块链上,最终取回这0.1 BTC。在此方式下,最终Alice拿到0.5 BTC,Bob拿到0.5 BTC。也可采用新建版本余额的方式,无需终止通道。

若需要作废旧合约,建立新合约,那HLTC有该如何操作?这部分,同RSMC,也需要建立违规补偿交易(breach remedy transaction)。若Alice将旧交易C2a和HT1a在区块链上公开,由于seq字段的限制,Alice不能立刻公开交易RD2a和HTRD1a,这样就使得Bob有机会发现Alice企图作恶并能够通过公布交易BR2a和HTBR1a的方式予以惩戒。发出这对交易后,通道中的全部资金将都归Bob所有。下图中BR2a、HBR1a、HTBR1a就是违规补偿交易。

违规补偿交易示意图

以上就是哈希时间锁在RSMC的基础上实现了条件交易,技术点在于哈希密码,这类似玩一个猜谜游戏,知道谜底方可解锁。问题来了,这样的点对点交易又是如何连成网络?时间锁的作用在哪?

举个栗子,Alice除了和Bob之间有交易需求,和Carol之间也需要产生交易,怎么办?一种办法,当然是Alice和Carol之间建立一个双向通道。还有一个办法是,Alice和Bob之间已经现成有一个双向通道,Bob和Carol之间也已经现成有一个双向通道。那么交易可以通过Bob来实现。

假设Alice需要付给Carol 1个BTC,由最终的收款方Carol创建一个原像R和对应的哈希值值H(R),然后把H(R)给了Alice。Alice就和Bob之间达成了一个合约:如果Bob在3天内(Lock time=3 day),提供H(R)对应的密钥R,Alice就给Bob 1.001 BTC,超过3天,BTC原路返回给Alice。

很显然,密钥R只有Carol有,Bob没有。那Bob怎么办呢?

Bob和Carol达成一个合约:如果Carol在2天内(Lock time=2 day),提供H(R)对应的密钥R,Bob 就给Carol 1 BTC,超过2天,BTC原路返回给Bob。两天内,Carol向Bob提供了秘钥R,获得了1 BTC。Bob向Alice提供了秘钥R,获得了1.001 BTC。

最终结果就是:Alice支付了1.001 BTC,Carol收到1 BTC,而中间方Bob收到0.001BTC的手续费。

由此延伸,若Alice和Eric之前想进行交易,但没有支付通道。Alice和Bob之间,Bob和Carol之间、Carol和Diana之间、Diana和Eric之间,已经有了支付通道,那把这些通道串联起来,就相当于建立了Alice和Eric之间的支付通道。


多方支付通道示意图

交易流程就是:最终的收款方Eric构建了一个秘钥R和对应的哈希值值H(R),然后把H(R)给了Alice。Alice和Bob之间,Bob和Carol之间、Carol和Diana之间、Diana和Eric之间分别创建一个时效性递减的条件交易合约。Eric把R给Diana,拿到1.0 BTC, Diana把R给Carol,拿到1.001BTC......密钥R一直传递,最终到达Alice。最终结果就是:Alice支付了1.003 BTC,Eric收到1 BTC,每个中间方,收到0.001BTC 的手续费。这样众多的支付通道相连就形成一个巨大的支付交易网络。

上面的交易过程,核心就是“一方用密钥R向另一方换钱,超过时间没有换,钱自动回到打款人的账号”,这个过程就是所谓的哈希时间锁HTLC(Hashed Time Lock Contract)。HTLC本身想法不复杂,需要和RSMC紧密结合,才能形成一个完善的、具有多个中间节点的支付通道。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容