主页 > imtoken冷钱包官方版 > 区块链学堂——闪电网络是什么鬼(技术篇)?

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

imtoken冷钱包官方版 2023-06-05 07:53:03

比特币分叉影响比特币总量_比特币亚洲闪电交易客服_闪电比特币

区块链学校第26章

阅读本文需要以下知识储备

➊ 了解区块链的概念

➋ 了解比特币网络的运行原理和架构

➌ 最好看《区块链学堂——闪电网络(故事)是什么鬼?》 “

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

闪电网络的卓越之处在于它可以在不信任对方或第三方的情况下实现实时、海量的交易。

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

比特币分叉影响比特币总量_闪电比特币_比特币亚洲闪电交易客服

RSMC 解决了通道内单向货币流动的问题,HTLC 解决了跨节点货币转移的问题。 这两类交易的结合构成了闪电网络。

注:本文图中带数字的签名表示已经签名成功,不带数字的签名表示等待签名。 多重签名只有在所有签名完成后才能广播到区块(主链)中。

1.建立小额(双向)支付渠道

比特币亚洲闪电交易客服_比特币分叉影响比特币总量_闪电比特币

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

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

➌. D1A是C1A的第一笔输出交易,输出给张三1BTC,但是这类交易有顺序,阻止了当前交易进入区块(主链)。 只有当正向交易有序列确认时,才能进入区块(序列值的大小由系统设置)。

➍. 李斯构建承诺Tx——C1B和D1B,提交给张三签名。 该结构与C1A和D1A对称。

闪电比特币_比特币亚洲闪电交易客服_比特币分叉影响比特币总量

➎、李四签C1A和D1A,签给张三; 同样,张三签下C1B和D1B,完成后交给李四。 此时,由于Funding Tx还没有被签署,任何一方都不能作弊(欺诈),双方都不会有任何损失。

➏。 双方完成签署和交换承诺 Tx 后,他们各自签署和交换 Funding Tx。 此时,Funding Tx 是一个完整的交易,可以广播到主链中。

这就是创建串行到期可撤销合约 RSMC 的全过程。

RSMC合约有如下规则——

两笔交易C1A和C1B来自同一个输出,所以这两笔交易中只有一笔可以进入主链,否则会出现双花(double payment)。

如果张三广播C1A,李四会立即得到1BTC(C1A的第二个输出),而张三需要等待C1A得到1000个确认,才能通过D1A的输出得到1BTC。

同理,如果李四广播C1B,张三马上得到1个BTC,李四等C1B得到1000个确认后,才能通过D1B得到1个BTC。 也就是说,如果单方广播交易,则解约方会延迟拿到币,而另一方会立即拿到币。

2.转账(交易更新)

闪电比特币_比特币亚洲闪电交易客服_比特币分叉影响比特币总量

张三和李四各有1个BTC的余额。 这时,张三从李四那里购买了一件商品。 假设价格是0.5 BTC,那么余额应该变成张三的0.5 BTC和李四的1.5 BTC。 于是新建一个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。

比特币分叉影响比特币总量_闪电比特币_比特币亚洲闪电交易客服

引入序列的目的是防止后续交易进入区块(D1A),并给出惩罚窗口期。 当发现对方违约时,可以有1000个区块确认来执行惩罚交易,即广播F1A而不是D1A。 如果错过了 1000 块时间窗口,则不能再进行处罚(D1A 已进入块)。

3. 过境交易

张三想付给王五0.5个BTC,但是他没有交易渠道。 好在他和李斯有交易渠道,而王舞正好和李斯也有交易渠道。 这样一来,张三就可以利用李四的交易通道,通过哈希时间锁定合约(HTLC)与王五进行交易。

比特币亚洲闪电交易客服_比特币分叉影响比特币总量_闪电比特币

具体交易明细如下:

➊. 张三通知王五我要转0.5个BTC给你,然后王五从张三那里收到一个随机数R值;

➋. 王五对这个R值进行Hash运算得到H(R),回复张三;

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

比特币分叉影响比特币总量_闪电比特币_比特币亚洲闪电交易客服

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

➎. 王五用R值从李四处兑换0.5BTC;

➏ 然后李四用R值从张三那里兑换了0.5个BTC。

最终交易完成,张三以链下形式支付给王五0.5 BTC。

比特币亚洲闪电交易客服_比特币分叉影响比特币总量_闪电比特币

4.关闭交易

关闭RSMC的逻辑比较简单。 根据最终余额构造一个 Commitment TX 即可。 例如,张三输出 0.5 BTC,李四输出 1.5 BTC。 无需设置多重签名,构造惩罚交易等。

总结

RSMC通过巧妙设置Commitment TX的多重签名输出和延迟序列入块形成惩罚窗口期,解决了小额支付通道中货币的单向流动问题闪电比特币,而哈希锁合约HTLC则解决了货币单向流动的问题跨节点因此,闪电网络成为了比特币网络扩容的解决方案之一。 事实上,闪电网络是一种链下交易。 只有关键环节会被发送到比特币主链,非关键环节会被计算并跑到链下(在闪电网络上),大大降低了主链的负载。 主链快如闪电。

理想很丰满,现实却很骨感。 许多组织和团队对比特币使用闪电网络的扩张计划表示怀疑。 总之,世界上没有银弹,没有任何技术可以解决所有问题,闪电网络也不例外。