区块链学堂——闪电网络是个什么鬼(技术篇)?

区块链学堂第26篇

阅读本文需要具备以下知识储备 ➊ 理解区块链的概念 ➋ 了解比特币网络的运行原理和架构 ➌ 最好阅读《区块链学堂——闪电网络是个什么鬼(故事篇)?》

闪电网络(Lightning Network)这个词乍听起来很酷炫,很深奥,甚至还有点儿邪乎,其实就是在比特币主链以外再架设一个通道,让用户的货币(数字货币)在这个通道上可以进行快速支付,有人会问那不是成了中心化交易所的用户之间收发币吗?虽然很像,但不是,因为闪电网络是去中心化的架构,和传统的交易所有着本质区别。本质上,闪电网络就是一个没有自己发行代币的,依附在比特币主链上的另一个区块链项目。

闪电网络的卓越之处在于,无需信任对方以及第三方即可实现实时的、海量的交易。

闪电网络起源于比特币的扩容问题,它基于微支付通道(双向支付通道)演进而来,创造性的设计出了两种类型的交易合约——序列到期可撤销合约RSMC(Revocable Sequence Maturity Contract)和哈希时间锁定合约HTLC(Hashed Timelock Contract)。

RSMC解决了通道中货币单向流动问题,HTLC解决了货币跨节点传递的问题,这两个类型的交易组合构成了闪电网络。

注:本文图中带<>号的签名表示已经签名成功,不带<>号的签名表示待签名,多重签名只有完成全部签名才能被广播进区块(主链)。

一、建立微(双向)支付通道

➊、双方各拿出1BTC,构建资金池Funding Tx(类比为联名卡),输出为张三和李四的2/2双(多)重签名。此时, Funding Tx未签名,所以不能广播进主链。

➋、张三构造Commitment Tx——C1A和D1A,并交给李四签名。C1A的第一个输出为多重签名地址,张三的另一把私钥张三2和李四的2/2多重签名,第二个输出为李四1BTC。

➌、D1A为C1A第一个输出的交易,输出给张三1BTC,但此类型交易带有sequence,作用是阻止当前交易进块(主链),只有前向交易有sequence个确认时才能进块(sequence值大小由系统设定)。

➍、李四构造Commitment Tx——C1B和D1B,并交给张三签名,结构与C1A、D1A对称。

➎、李四对C1A和D1A进行签名,并将签名给张三;同理,张三对C1B和D1B签名,完成后交给李四。此时,由于并未对Funding Tx进行签名,任何一方均无法作弊(欺诈),任何一方也不会有任何损失。

➏、双方均完成对commitment Tx的签名并交换后,各自再对Funding Tx进行签名,并交换。此时,Funding Tx是完整的交易,可以广播进入主链。

这就是创建序列到期可撤销合约RSMC的全部过程。

RSMC合约具有如下规则—— C1A, C1B两笔交易来自同一个输出,所以这两个交易只有一个能进入主链,否则就会产生双花(双重支付)。 若张三广播C1A,则李四立即拿到1BTC(C1A的第二个输出),而张三需要等C1A得到1000个确认,才能通过D1A的输出拿到1BTC。 同样,若李四广播C1B,则张三立即拿到1BTC,李四等待C1B得到1000个确认,才能通过D1B拿到1BTC。也就是说,单方面广播交易,终止合约的那一方会延迟拿到币,而另一放则立即拿币。

二、转账(交易更新)

张三和李四各自拥有1BTC的余额,此时张三从李四处购买了一件商品,假设价格为0.5BTC,那么余额应该变为张三 0.5BTC、李四1.5BTC。于是创建新的Commitment Tx,对于张三来说是C2A 和D2A,对于李四来说是C2B和D2B,过程与上面类似。

此时两个状态均是有效的,那么最核心的问题来了,因为C1A和C1B已经是处理过的交易了,C2A和C2B才是最新交易状态。怎样才能彻底废弃掉C1A和C1B呢?

RSMC采用了一个非常巧妙的方法,在C1A的第一个输出中,采用了张三2和李四的多重签名,张三将张三2的私钥交给李四,即表示张三放弃C1A,承认C2A。

咦?张三和张三2什么关系?假设一个人可以刻几个印章,有正方形的,有长方形的,有圆形的,有菱形的......,现在张三将张三2这枚正方形的印章交给李四,就代表之前所有需要盖上正方形印章签字的交易都无法再激活,因为张三本人没有这枚印章了,李四手握李四本人的印章和张三2的印章,虽然可以激活这笔交易C1A,但一旦激活张三就会得到1BTC,而李四将损失C2A中的1.5BTC,显然,李四不会这么傻,所以张三交出了张三2的私匙(正方形印章),就表示张三放弃了C1A,承认了C2A。

同样的逻辑,李四交出李四2的私钥给张三即意味废弃了C1B,承认了C2B。

张三交出张三2的私钥给李四,那么李四就可以修改D1A的输出给他自己,形成新的交易F1A。若张三破坏合约存在C2A的情况下依然广播出C1A,那么张三的惩罚就是失去他全部的币。张三交出张三2的私钥,或者对交易F1A进行签名,两者是等同的,都是对C1A的放弃。

引入sequence的目的是,阻止后续交易进块(D1A),给出一个实施惩罚窗口期,当发现对方破坏合约时,可以有1000个块确认的时间去实施惩罚交易,即广播F1A代替D1A。若错过1000个块时间窗口,则无法再实施惩罚了(D1A进块了)。

 三、中转交易

张三想要支付0.5BTC给王五,但他并没有一个渠道来和他进行交易。幸运的是,他和李四有一个交易渠道,而王五正好和李四也有一个交易渠道。这样张三就能借助李四的交易渠道,通过哈希时间锁定合约(HTLC)来和王五进行交易了。

具体的交易细节如下:

➊、张三通知王五,我要给你转0.5BTC,然后王五收到张三发来的一个随机数R值;

➋、王五将这个R值进行Hash运算得到H(R)回复给张三;

➌、张三收到回复后,联系李四,告诉李四:如果你找到H(R)的原始R值,我就转给你0.5BTC;

➍、李四得知王五知道R值,便与王五展开了谈判,李四告诉王五,如果你告诉我张三发给你的R值,我就转给你0.5BTC;

➎、王五用R值从李四手中换取了0.5BTC;

➏、接着李四用R值从张三手中换取了0.5BTC。

最后交易完成,张三以脱链的形式付给王五0.5BTC。

 四、关闭交易

关闭RSMC逻辑相对简单,直接按照最终的余额,构造出一个Commitment TX即可,例如输出为张三0.5BTC,李四1.5BTC,无需再设置多重签名,构造惩罚交易等。

总结

RSMC通过巧妙的设置Commitment TX的多重签名输出,以及sequence的延迟进块形成惩罚窗口期,解决了在微支付通道中的货币单向流动问题,而哈希锁定合约HTLC则解决了货币跨节点的传递,因此闪电网络成为比特币网络扩容的方案之一。其实闪电网络是一种链下交易,只有关键的环节才会发送到比特币主链,非关键环节则在链下(闪电网络上)进行计算、运行,这样大大降低了主链负荷,从而让主链快如闪电。

理想很丰满,现实很骨感,很多组织和团队对比特币采用闪电网络扩容的方案表示了质疑,他们认为,所谓的闪电网络只是一个假象,而多一层代码,则多一重风险,还是那句话,世界上没有银弹,没有一种技术能搞定所有的问题,闪电网络也不例外。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

深度丨解读比特币背后的奥秘丨附中字视频

翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 "拥有"一枚比特币意味着什么很多人都听说过比特币。这是一种数字货币,不需要特定政府发行...

19310
来自专栏企鹅号快讯

谈谈我对区块链的理解

通过之前研究的十大前景行业(带来高收入的 10 大开源技术,可以涨工资了!)提到人工智能,区块链,大数据都是今年以及2018年的技术热门趋势,本文专门介绍下什么...

2387
来自专栏ImportSource

什么?区块链中的hash算法!施主,快扶老衲起来

hash算法有很多种。比如MD5、SHA1、SH2(SHA224、SHA256、SHA384和SHA512)、SH3、RIPEMD-160。

1173
来自专栏奇点大数据

一个故事告诉你比特币的原理及运作机制

花时间看了一些比特币原理相关的资料,虽然不敢说把每个细节都完全搞懂了,不过整体思路和关键部分的主要原理还是比较明白。写一篇文章分享给大家。这篇文章的定位会比较科...

3595
来自专栏区块链百科,区块链行业报告

比特币工作量证明,“法外之地”的法

PoW(Proof of Work,工作量证明)是区块链技术中基本的、常见的一种共识机制。加密币中的挖矿,其实就是运用工作量证明来进行的。

250
来自专栏BestSDK

从生产到交易,一文读懂比钻石还贵的“比特币”

以物易物的比特村 话说在这个世界上,有一个叫比特村的小村庄,村庄共有几百户人家。这个村庄几乎与世隔绝,过着自给自足的生活。由于没有大规模贸易,比特村村民一直过着...

3188
来自专栏信安之路

浅谈以太坊智能合约的安全漏洞

智能合约的安全是区块链安全中的热议话题,但其实 89% 的智能合约都存在漏洞,本文将浅谈以太坊智能合约出现过的一些安全漏洞。

960
来自专栏liuchengxu

什么是门罗币?终极入门指南

开始之前,给大家介绍一个资源:Monero——基于环签名(Ring Signatures)技术的虚拟货币,内容更加干练高效,也更拔高。而下面的内容则针对的受众更...

1571
来自专栏企鹅号快讯

最近大热的区块链究竟是如何运作的?

这篇文翻译自」 How Does the Blockchain Work? 」全文。 作者Michele D'Aliessi用浅白易懂的文字阐述比特币(Bitc...

1719
来自专栏Netkiller

区块链·理解分布式记账

中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

43713

扫码关注云+社区