【币圈不定期更新的日常】聊一聊最近大火的闪电网络

简介

最近,闪电网络的火炬传递活动,让闪电网络一下子从理论阶段,跃升成实践。作者年前在同事的分享中,学习了闪电网络的原理,感觉设计确实很巧妙,一旦大规模应用,能让btc实现秒级支付,真正让btc的世界货币梦想come true。本文,会介绍闪电网络的设计原理,主要涉及多重签名地址、 RSMC、HTLC几大概念。

基本原理

假如Bob和Alice经常有业务来往,结算方式是btc。但是,btc的区块打包时间要10min,一般需要确认6块后,认为交易不可回滚。也就是他们每次交易需要等至少1h,才能确认交易是否成功。对于实时性要求很高、交易频率很高的场景,显然1h太长了。这时,就有人提出,能不能单独为Bob和Alice建立一个通道,他们之间的频繁交易先记账不上链,等想结束业务时再结算上链?闪电网络就是在这个大背景下横空出世的。

闪电网络的架构图,大致如下:

闪电网络的架构图

就拿Bob和Alice之间的交易步骤来说:

1. 首先,需要构建Bob和Alice之间的双向交易通道

2. 其次,需要解决Bob和Alice在通道中交易面临的信任问题

3. 若再来个第三方,比如Jack,如何实现三人之间的交易

接下来,我会根据构建步骤,来详细述说闪电网络的架构和原理。

构建双向交易通道

构建双向通道,通俗点讲,就是Bob和Alice各出一些btc,比如5btc,将其存入他们两人控制的2-2多重签名地址。但是,Alice和Bob是不相互信任的。Bob怕自己转btc之后,Alice不转btc也不提供私钥帮助Bob解锁币,使得资金陷入死循环。那么,我们需要在不相互信任的前提下,构建双向交易通道。其构建方法如下:

构建双向交易通道

1. Alice使用公钥A1,Bob使用公钥B1,生成两个2-2多重签名地址:A1B1、B1A1

2. Alice构造一笔交易,转账给B1A1地址5btc,这笔交易没签名也没广播

3. Alice再构造一笔交易1,发起地址是B1A1,目的地址是比特币地址A1。这笔交易如果被广播,需要经过1000个块才能被打包

4. Alice将交易1单独发给Bob,请Bob对交易签名。Bob发现这笔交易只是Alice将自己的币转回给自己,对Bob没影响,Bob会签名并将交易1发回给Alice

5. Alice收到Bob签名后的交易1,对用B1公钥签名的交易使用A1签名测试,测试成功

6. Alice此时,可以放心将第2步的交易广播,即便Bob不合作,Alice也能拿回自己的币。这一步完成后,B1A1地址收到Alice充值的5btc

7. Bob也用相同的操作,往B1A1地址充值5btc,且保留有A1签名的交易2,随时可以赎回自己的币

8. 虽然B1A1地址收到了各自的钱,但是Bob和Alice手上还有交易1和交易2,随时会有毁约的风险。因此,最后一步需要Bob和Ailce共同发起一笔交易,将B1A1地址里的10btc,转移至A1B1地址里,至此完成了闪电网络双向通道的构建

点对点交易

接上一步,Bob和Alice建立了双向交易通道,接下来就可以交易了。但是,Bob和Ailce依旧要面临信任的问题。接下来介绍的RSMC技术,就是为了解决点对点交易时的信任问题。

RSMC

RSMC(Recoverable Sequence Maturity Contract),定义了闪电网络交易时的基本工作方式。它提供了一种无须信任的方法,能够准确的记录通道内Bob和Alice的资产分配情况。例如,初始时Bob和Alice各有5btc;经过一次交易,通道内资产分配变更为Alice: 3btc、Bob: 7btc;再经过一次交易,通道内资产分配变更为Alice: 4btc、Bob: 6btc。RSMC技术能够做到以下两点:

1. Alice和Bob之间交易时,能在双方互相不信任、交易不广播的情况下准确记录资产分配

2. Alice和Bob每进行一次新交易,旧交易能被废除,以最新交易为准来进行资产分配

下面,我会详细介绍RSMC实现的技术细节。

沿用上面的结果,多签地址A1B1拥有10个btc,Bob和Alice各占一半资产,作为交易的启动资金池。在后面的交易过程中,会使用很多btc地址,其中,Alice拥有A1、A2、A3...,Bob拥有B1、B2、B3...同时,也会使用很多多重签名地址,比如B2A1、A1B2...

下面,将详细介绍Bob与Alice的交易步骤,第一次交易资产分配变更为Alice: 3btc、Bob: 7btc:

点对点交易细节

1. Alice构造交易1,发起地址是A1B1,目的地址有两个:A1B2地址得到7btc,A1地址得到3btc

2. Alice构造交易2,发起地址是A1B2,目的地址是B1得到7btc。但是,这笔交易广播出去,需要1000个块之后才能被打包

3. Alice使用A1私钥对交易1和交易2签名,并不广播,私下发给Bob

4. Bob收到交易1和交易2,用自己的私钥B1、B2校验交易的有效性

5. Bob同样像Alice一样,构造交易3,发起地址是A1B1,目的地址有两个:B1A2地址得到3btc,B1地址得到7btc

6. Bob构造交易4,发起地址是B1A2,目的地址是A1得到3btc。但是,这笔交易广播出去,需要1000个块之后才能被打包

7. Bob使用B1私钥对交易3和交易4签名,并不广播,私下发给Alice

8. Alice收到交易3和交易4,用自己的私钥A1、A2校验交易的有效性

下面,来解释下,为什么Alice和Bob构造这四笔交易之后,就能使得在相互不信任的情况下,依旧能顺利的进行交易。

首选,Alice构建了交易1、2,交易1使得Alice立马就能获得3btc;交易2即便签名,Bob也需要等待1000个块打包后,才能拿到属于自己的7btc。在这期间,Bob如果有任何违约行为,Alice也有足够时间采取措施。因此,Alice构造的两笔交易明显偏向自己,但是需要Bob的签名,交易生效的权力在Bob。Bob同时也构造两笔这样偏向自己的交易,控制权同样在Ailce手上。第一次交易,就在这种互相制约的情况下,完成了资产的重新分配。

假如Alice和Bob继续进行交易往来,资产分配情况又变成了Alice: 4btc、Bob: 6btc。同样,他们会依照上面的步骤,再构造四笔交易。关键一点,为了废除旧交易,Alice和Bob需要交换A2、B2地址的私钥。接下来,我们来看看这么做的好处。

废除旧交易,启用新交易

假如,Bob觉得之前能得到7btc,现在只剩下6btc了,他想违约广播旧的交易。那么,这种机制下违约会有什么后果呢?Bob将损失全部的btc!!!首先,Bob只能广播交易1,Alice瞬间得到3btc;接下来,Bob广播交易2,等待1000块后才能得到7btc。但由于Alice拥有A1和B2的私钥,她马上可以动用A1B2地址里的7btc,在交易2生效之前,立即转账给自己。这种骚操作使得Alice将获得全部的10个btc,Bob将分文不剩。因此,在这种巧妙的设计下,闪电网络能做到在不相互信任、交易不上链的情况下,依然可以顺利的完成快速交易。

Alice和Bob如果想结束闪电通道怎么办?和平的情况下,各自为对方签名最新交易,广播出去立即得到币。当一方想强制结束通道时,只需要签名有利于对方的两笔交易,对方立即得到币,而强制结束的一方需要等待1000个块后,才能获得自己的币,这也就是强制结束的惩罚。

闪电网络交易

上面说的都是Alice和Bob之间的点对点交易细节,倘若Jack也想加入他们的交易,那Jack和他们也需要建立通道吗?如果人人都建立点对点通道,成本是非常高昂的。闪电网络会通过整个点对点网络,寻找最短路径,通过路由节点完成交易。比如Jack只和Bob建立了点对点通道,而希望和Ailce进行交易,那么就需要Bob充当路由节点辅助交易的进行,而实现这个功能的技术就是HTLC。

闪电网络交易通道

HTLC

HTLC(Hashed Timelock Contract)允许Alice和Bob之间达成协议,协议将锁定Alice1btc,在时刻T到来之前,如果Bob能向Alice提供一个答案A,使得A的哈希等于实现约定的值H(A),Bob就能获得这1btc;如果超时后,Bob未能提供答案,则这笔钱自动归还给Alice。

我们举个例子来看HTLC如何用于闪电网络的交易的。首先,Jack希望转账1btc给Alice,然而和Alice并没有建立通道,需要通过Bob路由。可行的操作:Jack转账1btc给Bob,Bob再转1btc给Alice。但是,如何防止Bob收到钱作恶呢?除去点对点转账交易时候,依赖RSMC技术的约束,我们还需要通过HTLC技术对三方的行为进行约束,具体步骤如下:

闪电网络交易

1. Alice生成答案A,将Hash(A)发给Jack

2. Bob和Jack约定交易1,在T1时间之前,提供给Jack答案A,Jack会转账1btc给Bob

3. Bob和Alice约定交易2,在T2时间之前,提供给Bob答案A,Bob会转账1btc给Alice

4. 执行交易2,Bob支付Alice1btc,得到答案A

5. 执行交易1,Bob提供答案A给Jack,得到1btc

至此,Bob作为中间人,帮助Jack和Ailce完成转账。注意,T1时间要大于T2时间,这样Bob在拿到答案A后,才有充裕时间从Jack那里拿回币。

后记

本文介绍了闪电网络的基本原理,及其相关的核心技术,读完本文,应该能对闪电网络的架构有大体的了解。由于,闪电网络是基于比特币隔离验证技术的实现,后面将会为大家介绍隔离验证的原理,以及隔离验证解决的实际问题,尽请期待。

参考文献

白皮书:https://lightning.network/lightning-network-paper.pdf

解释多重签名:https://blog.csdn.net/lianquan_cn/article/details/81634897

详细解释rsmc:https://blog.csdn.net/lianquan_cn/article/details/81736392

大体解释闪电网络框架:https://www.jinse.com/bitcoin/317833.html

大体解释htlc和rsmc:https://www.8btc.com/article/92887

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

推荐阅读更多精彩内容

  • TPS 网络拥堵、转账时间长、交易缓慢、交易费用高等一直是比特币被诟病的问题。客观看待,比特币TPS低有利有弊。以...
    不如假如阅读 1,898评论 1 2
  • 2008年比特币诞生以来热度渐增,每个区块1MB大小,每秒可处理的交易7笔,是无法满足激增的需求,社区也是一直积极...
    数字门徒阅读 954评论 0 1
  • 背景和目的: 「互联网运营P1系列课程」是三节课运营系列课程的第一级课程,也是三节课卖相很好、销量顶尖的课程,其目...
    Jason__lin阅读 1,082评论 0 1
  • 数组存储数字,实现加1 。思路:当前位是 9 吗? 不是⑨直接加1返回,是9 的话,就将该位置O,进入下一次循环,...
    BeijingIamback阅读 306评论 0 0
  • 久闻崇州市元通古镇是一个成都周边商业化气息相对来说不是那么浓郁的古镇 ,并且镇上还住有很多原住居民和保持原样的老建...
    晚晴_fe62阅读 1,337评论 0 0