比特币Lightning网络技术分析(一)

2018-08-30  本文已影响73人  sky2016

比特币Lightning网络技术本身提出来比较早,但是最近才兴起起来,因为比特币网络实在是太不堪重负了,大量的交易等待被打包,高昂的交易费用使得比特币扩容方案的选择越来越紧迫。Lightning网络就是扩容方案的一种,采用链下交易的形式,只是开始和结束需要在链上广播交易,其他的交易完全在链下实现,避免了主链上交易确认的拥堵,可以实现快速确认,这也就是闪电网络名称的由来,非常适合于大量小额交易的场景。
现在来聊聊Lightning网络的技术实现,先请出我们的主人公Alice和Bob,大家都喜欢用这两个人名,我也不免俗了。

第一步

Alice和Bob在需要交易之前先要各自拿出一笔钱来放进一个共同的多重签名账户,这个账户一般的说法叫channel(通道),通道里是交易保证金,保证双方都有钱进行交易,不会开空头支票,另外还约束了交易金额的范围。这个多重签名是2/2多重签名账户,也就是必须Alice和Bob两个人同时签名才可以动用这笔账户的钱。后面所用到的账户很多都是这样的2/2多重签名账户,我在这里叫联名账户。


初始状态

这里假设Alice和Bob各出0.5个BTC放进这个联名账户,当然不一定是各0.5,金额可以双方协商而定。
这个过程是需要在比特币主链上做的,相当于双方先放了一部分押金在那里。

第二步

Alice和Bob各拿出一张白纸来拟定链下交易的合约,内容是什么呢?先来看Alice写的:


Alice的合约1

这张纸上写了两笔交易

第三步

以上是初始状态,下面开始正式交易,交易前还需要做一件事,那就是Alice把Alice2密钥交给Bob,Bob将Bob2的密钥交给Alice,以后每次交易前都需要这么做!
这个是防止一方作弊的!很重要!
假设Bob卖给Alice一部iphone,Alice付给Bob0.1BTC,那么两人又各拿出一张白纸来拟定新的合约,Alice拟好合约以后交给Bob签名,新合约如下:


Alice的合约2(Bob签名后)

看起来和合约1差不多,只是金额有变化。Bob也会拟定一份合约2,并给Alice签名。
既然合约2出现了,那么合约1就要给废止了,因为合约2比合约1新,而且相互冲突。试想一下Alice拿着新iphone,又拿着合约1去主链上广播,那么她账户的钱没变,还白得一部iphone,Bob岂不是亏死?
那么怎么废止合约1呢?不要告诉我当场撕掉合约1那张纸,现在是高科技时代,复制备份一份又有何难。
从技术角度要怎么解决这个问题?那就需要用到上面交换的密钥了。
如果Alice拿到iphone后拿着合约1来签名,那么合约1变成这样:


Alice的合约1(双方都签名)
Alice签名了第一笔交易后,顺便也把第二笔交易用Alice2密钥签名了,因为第二笔交易不签名的话她拿不到钱,但是第二笔交易有个sequence,所以Alice只好等。但是因为第一笔交易很快确认,Bob账户里得到了0.5BTC,Bob一看不对啊,我应该得0.6BTC啊,所以Alice一定是作弊了!Bob有什么办法追回损失?别忘了Bob手里还握有Alice2的密钥呢,该是它发挥作用的时候了!仔细看合约1第一笔交易的第一个输出账户,那是Alice2 & Bob联名账户,现在Bob两个密钥都有了,那就成Bob个人账户了,于是Bob赶紧创建一笔新的交易,将这个联名账户的钱都转给自己:
Bob的反攻交易
最后Bob得到了0.5BTC+0.5BTC=1.0BTC,Alice得到了一部iphone,但损失了初始联名账户里的0.5BTC,等于用0.5BTC买了个iphone,按目前的行情是接近3500美刀,真是亏大发了,得不偿失啊!
由此可见,双方还是要规规矩矩的,作弊要付出太大的代价,Lighting网络在这方面做得不错。

对了这种技术官方名称叫RSMC(序列到期可撤销合约)。

上一篇 下一篇

猜你喜欢

热点阅读