闪电网络RSMC HTLC学习笔记

闪电网络介绍

比特币链下扩容方案,正在实施,截止2019年3月,闪电网络有超过 37,000 通道,通道内含有超过764 bitcoins 。

 闪电网络白皮书《 lightning-network-paper 》 

 闪电网络包括两大部分,RSMC&HTLC

RSMC图示

RSMC(可撤序列成熟合约),两个单节点通过建立通道来进行链下交易。

1.建立通道

1.1 A,B双发各构建funding tx交易(两者的交易内容完全一样),交易输入为A 0.5 ,B 0.5,输出为A&B多重签名地址,但不签名。

1.2 然后,A ,B分别建立如下commitment  tx合约,以A为例,构建交易前需要将自己的地址告诉对方 commitment  tx的第一个交易的输入为funding tx中的 A&B多重签名地址,输出有两个,第一个为给B1,第二个为一个A1&B1多重签名地址(A与A1都属于A,但私钥不同),第二个交易里输入为A1&B1多重签名地址,输出为A1。

A将合约交给B,B对两个交易签名(B,B1),签完后发回给A,A进行签名(A,A1)。

B的操作和A对称。

1.3 完成上述交换签名后,A,B对funding tx进行交换签名,然后广播到比特币链上。

2.交易更新

A,B分别构建新的交易如下

B3

A发给B让B签名(B,B3),收到后自己签名(A,A3),为了废除旧的交易,将旧交易的私钥A1发给B,代表自己放弃就交易。

B的操作和A对称。

3.通道关闭




可能的情况:

a)A在没有交换对commitment tx签名,先签的funding tx:

如果B怀有恶意,那么A在没有B配合签名下,无法将地址里的自己存入的钱转出,造成资金被挟持

b)A将旧的交易发布到比特币区块链中

B首先得到0.5个BTC,由于B拥有A1(A给了B)以及B1,他立即将A1&B1地址里的钱转到自己的地址里,这样,B获得了所有钱,A失去了所有钱作为惩罚。

c)如何验证A给B的私钥A1是真的

B拥有A1地址,可以通过私钥-公钥-地址进行验证。

d)签commitment tx时,A先签了再给B签可以吗?

不行,若B后签,他可以将这份交易保存,在更新交易后获得旧交易的秘钥,然后将旧交易广播出去,将钱偷光。签commitment tx 时,交给对方签然后再自己签。

你可能感兴趣的:(闪电网络RSMC HTLC学习笔记)