在聊什么是闪电网络之前,我们需要先聊为什么需要闪电网络,闪电网络到底是解决什么问题!
众所周知,现阶段公链都面临一个扩展性的问题,一条公链可用性以及扩展性和安全性一直都是一个三角不可能定理。
不可能三角一方面区块一旦扩容过大,可能就会导致节点中心化,出块时间过快也会导致竞争区块过多导致短时间分叉,那么二层协议也就是我们常说的侧链,就是通过一种(OFF-blockchain)离链的方式来解决扩展性的问题。
举个例子,日常生活比较常见的场景:比如说我去买杯豆浆,我们一般都使用支付宝,在中心化的情况共识很容易就达成,如果网络快的情况可能几秒钟就确认交易了。如果我们使用以太坊,假设以太坊不拥堵的情况,12秒出一个块,假设三个块的深度我就认为得到了最终的确认,那也需要等待将近一分钟,那么用户的体验感肯定非常差。那么能不能在保证去中心化的情况下,同时还能达到秒级的支付,这时闪电网络就出现了?
闪电网络的核心概念有两个: RSMC以及HTLC。首先我们来讲RSMC,Recoverable Sequence Maturity Contract,中文可以翻译为“可撤销的顺序成熟度合同”。举个例子,老王是一家水果店的老板,小李是一家餐厅的老板,他们之间互相交易,但是为了减少现金交易的麻烦,他们通过小徐各自存入一笔等值的现金,小徐给了他们一本账本。
从图上可以看见,我们这里有老王和小李以及小徐。老王和小李经常互相交易,所以为了减少现金交易的麻烦,他们通过小徐签署了一个合约,同时存入等值的现金,然后小徐交给了他们一本账本。那么以后他们交易只需要通过修改账本的方式就可以进行支付,不需要支付现金。如果任意一方想要拿回现金,他就可以拿着账本去找小徐。那么这里就会产生一个问题,如果恶意的一方拿了一本假的账本来欺骗小徐怎么办?首先小徐会验证签名的有效性,然后等待另外一方确认(这里有一个等待时间)。如果另外一方在等待时间没有确认,则按最后一笔合法的交易,将对应的金额打入对应的账户。如果某一方拿出一本旧账本,对于小徐而言,签名是合法的,这里有一个机制,如果质疑方能够拿出完整的账本,那么质疑方会获得所有的钱。这里就保证了没人会拿一个旧的交易来提现。这就是所谓的可撤销的顺序成熟度合约,实际上就是一本账本,只有最后一笔会打包上区块链,这就大大降低了交易成本。
接下来我们接着讲哈希时间锁合约(HTLC),具体的意思就是发起交易时,双方约定转账方先冻结一笔钱,并提供了一个哈希值,如果在一定时间内有人能提出一个密文,并且哈希后的值与已知的哈希匹配,则这笔钱就转给接收方(实际上是重新签署一笔交易,修改余额再加上双方的签名)。这个密文你就可以理解为口令红包,
聊聊闪电网络首先A通过某种途径将密文发送给E,这时候A和B签署一个合约,如果能在特定的时间内能够从C获取到合法的密文,则交易成功,否则超过时间则比特币将解锁,重新回到A账户下,然后依次执行签署合约。那么a是通过什么途径知道可以通过B C D 这三个通道找到E的呢?节点之间的获取路径是通过交换路由表的方式来完成的,这个有点类似比特币的p2p模块,而至于寻径是通过特定的算法实现的,就不详细介绍了。
闪电网络的优点
1. 可以即时支付
2.对节点的性能需求并不高
3.通过路由系统自动寻径(寻找花费最少的路径),网络中的节点充分竞争使得交易费用可以低
4.匿名性(每一个节点只记录该通道内的交易)
闪电网络的缺点:
1.如果换一种代币就需要重新开启通道,节点和用户的成本都相当的高。
2.没有足够的商家支持闪电网络,使得作为节点的收益并不高,由于没有足够的商家支持,用户使用闪电网络的需求并不高
3.闪电网络是小额支付,开启通道是需要使用公网的,使用公网意味着要发起一次交易,如果只转入几百块,一次交易就需要几十块,可能就得不偿失了。
3.关闭通道时,也需要发起交易,将通道中的币分配给通道以及用户,这又需要发起一次交易,又需要发起一次交易
4.其次每个节点都需要抵押一定的比特币,才能开启节点,长时间暴露在公网中,可能会存在私钥泄露的问题
5.现阶段闪电网络并不完善处于一个初始版本
6.由于账本只保存在本地,可能会存在账本丢失的问题,如果这时节点做恶,发送一笔作废了的交易结束该通道,理论上也是可行的。
7.极端的情况下,可能闪电节点会被攻击,账本全部丢失。如果这时用户在通道内的币高于节点,可能就亏了,反之用户就赚大发了,所以现阶段闪电网络还需要解决很多问题。
很多人讲闪电网络会中心化,这个我是不认同的,只能说部分中心化,毕竟搭设一个闪电节点的成本并不高,而且理论上任何一个人都可以搭建闪电节点,一台旧笔记本足以,网络中的节点都互相竞争,现在比特币的闪电网络的交易费用只有几聪。
网友评论