经过多年的概念方案与开发,第一个闪电实施现正处于beta测试阶段。入网新节点、新通道数量与日俱增,甚至有商家已经开始接受闪电支付。
当然了,闪电网络依旧处于主要实施能用、钱包及其他应用程序可用的发展早期阶段,预计比特币u2019s覆盖支付网络将在未来几年内在网络架构、安全性和可用性等方面进行改进。
汇总下当前阶段闪电项目的一些进展。
合资通道(Dual-Funded Channels)
闪电网络由一系列支付通道组成。支付通道存在于两个用户之间,允许资金来回发送。但是当前阶段,支付通道只能由其中一方出资设立。比方说 A(出资方)需要先向B发送一笔交易后,B才能使用通道返回相关支付。
闪电网络白皮书确实有提出合资通道的概念,比特币钱包Éclair的开发商ACINQ已经提出了相关技术规范。 顾名思义,合资通道指交易双方存入固定数额的比特币资助支付通道开设。比方说, A和B可以共同出资设立通道后均可享受即时的交易发送或接收,以此为用户体验带来更多的灵活性。
暗道交换(Submarine Swaps)
进行闪电支付时,用户须将资金存入闪电通道。除非通道关闭,存入的资金将不能被发送至一般(链上)比特币地址。 相当于通道将存入的比特币与普通钱包中的比特币分离开来,可以类比支票账户中的资金与储蓄账户中的资金。
有一些解决方案可以实现闪电通道与链上支付间的无缝切换。
比方说暗道交换。方案由Alex Bosworth开发(概念方案由闪电实验室首席技术官Olaoluwa Osuntokun提出),暗道交换允许用户向闪电网络中的中间人付款;中间人随后发送与付款数量一致的比特币到链上地址。 反过来也可以:用户在链上向中间人付款; 中间人随后发送与付款数量一致的比特币到闪电网络上的接收节点。
重要的是,暗道交换中资金的转移是原子性的。使用已嵌入闪电网络中的技术,闪电支付和链上支付可以有效地衔接。 这也使得中间人不能没办法通过拒绝转发付款的方式来窃取资金。(中间人可以收取少量费用。)
拼接(Splicing)
“拼接”也是提升闪电用户体验的解决方案。本质上来讲,拼接允许用户对闪电同道中的资金进行充值或提现,同时保持通道开放。
闪电通道始于开通交易(opening transaction)。开通交易表明双方同意在通道内进行资金互转,接下来便可以进行一系列转账活动,交易通常不会广播到比特币网络。通道不关闭,开通交易中的资金不会被转移。
充值时,用户(一方或双方)在原始开通交易(a)的基础上向新开通交易(a’)发送资金(b),相当于a + b = a ’。新开通交易(a’)被区块链确认后,通道充值完成。新开通交易被确认前,为避免通道宕机,交易双方同时更新新旧通道即可。
提现时,用户在原始开通交易(a)的基础上向链上地址发送资金(b’),并保留一部分资金在通道内(a’’),相当于a - b’ = a’’( b’< a, a’’> 0 )。这样一来,用户可以直接从闪电网络中进行链上交易。
Eltoo
闪电通道随新的付款活动更新以反映双方余额。 试图通过广播旧余额舞弊的用户将面临罚没通道内全部资金的惩罚。
问题在于,广播旧余额不一定代表意图舞弊。 比方说,由于软件bug或者备份故障导致的错误广播,那么这种情况下,罚没全部资金是非常重的惩戒措施。
Eltoo于2018年4月30日首次发布,算是最新的闪电项目。Eltoo通过构建一连串带时间锁的交易实现通道更新;每笔新交易都花费上一笔交易的资金,以反映通道的最新余额。用户A广播旧交易(反应的是旧的通道余额)后,用户B有时间来广播最近一笔交易(反应的是最新的通道余额)。
类似的解决适用于当前阶段,但发生故障时不可用。方案需要将整个交易链广播并记录在比特币区块链上,这与闪电网络的初衷或许相悖。有鉴于此,开发者提出通过对比特币协议实施软分叉导入针对此类交易的层级结构:新交易可以覆盖旧交易,因此无需对整条交易链进行广播。
若比特币网络实施该软分叉,闪电用户可以根据自身喜好创建现行或Eltoo形式的通道。
紧凑型客户端区块过滤
尽管闪电网络是第二层协议,闪电用户安全仍需要由比特币区块链本身主持。 具体而言,闪电用户需要密切关注区块链整体活动来确保自己的交易被包含。 那么这就是一项资源密集型的活动,特别是对于移动客户端。
比特币白皮书中提出了简化支付验证(SPV)的方案。 当前的SPV钱包使用Bloom 过滤器来确认交易是否存在。不过,Bloom 过滤器本身相当的隐私不友好,意思是钱包会将所有地址都显示给比特币节点。 另外,SPV钱包本身也存在扩展和可用性方面的问题, 因为每个独立的SPV钱包占用至少一个比特全节点的资源
为应对这个问题,闪电实验室的Osuntokun和Alex Akselrod联手Coinbase开发人员Jim Posen设计了一种叫做紧凑型客户端区块过滤的方案,目前有在Neutrino 钱包中实施。
紧凑型客户端区块过滤基本上颠覆了当前SPV钱包的各项技术。 SPV钱包创建并发送Bloom过滤器至全整节点相关交易进行请求。紧凑过滤的话,正好相反,由全节点为Neutrino钱包创建过滤器。接着Neutrino钱包使用过滤器来确定相关交易不存在,用户由此可以反推出自己没有被骗。 若过滤器产生匹配结果,Neutrino钱包将提取相关的区块,查看匹配是否属实。
比较有趣的是,虽然这个技术设计初衷是改善闪电用户体验,但是轻钱包算是捡了便宜。
岗楼
为避免被欺骗,需要闪电用户跟踪可能与之相关的链上交易。
尽管紧凑型客户端区块过滤应该是简化了事务,但用户需要偶尔检查一下,确保自己没有被骗。忘记检查的话,可能会有安全隐患。
岗楼是或许是个解决方案,闪电网络白皮书有提到,一直以来有开发人员对其不断改进。 顾名思义,岗楼允许用户将区块链监控外包。
目前的岗楼设计并非一成不变,工作原理大体是:用户更新通道时,向岗楼发送一个小型数据包。数据包的第一个部分是岗楼需要注意的某笔交易的一小节,像是一块拼图。 由于这一小节信息提示不会透露该交易的任何内容,那么从这个层面上讲,用户并没有公布任何隐私。
如果该交易有显示在比特币区块链中,那么岗楼可以使用提示识别出交易。接着,岗楼使用区块链本身的交易数据以及数据包中的第二个部分,对处罚交易进行重建。罚款交易会将通道中的全部资金发送给被骗的用户。(eltoo的话,只会播放正确的通道余额。)惩罚交易的设计中,还可以安插相应的激励机制,比方说允许岗楼收取一部分通道资金的作为奖励。
用户也可以把通道监控外包给多个岗楼。 提升监控容错,将闪电用户的安全风险限制在最低的程度。
原子多路径支付
闪电网络之所以被称之为网络,原因是用户间的支付通道是相互关联的。 用户可以通过中间人,向彼此未开通支付通道的人转账。
当前的话,单一转账必须通过单一路径进行。 如果A想转5 mBTC给B,首先A的通道里必须有5 mBTC,转账路径下的所有中间人的通道中也必须有5 mBTC才能顺利转账至B。问题来了,支付金额越大,转账越难。
未解决这一难题,原子多路径支付(AMPs)任重道远。想法很简单:允许大额支付被拆分成小块,所有数额都有自己从A到B的支付路径,中间人不同。
这么做有个问题是,个别闪电支付可能失败,造成转账不完全。 不完全转账比转账完全失败棘手多了:付款不全首先商家就不答应,其次顾客也不乐意平白无故的多花钱。
那么,AMPs可以借助哈希时间锁定合约的外延,这些外延已经在闪电路径上使用,且涉及秘密数据的网络传递。 使用类似于确定性钱包(单一种子生成多个比特币地址)的技术,只有当全部秘密数据通过整条路径时,收款人才能兑换拆分成小块的大额转账;若某些数据未通过整条路径,则付款整体失败。
原子交换
闪电网络被设计为比特币的扩展层。 由于许多山寨币都是比特币代码库的软件分叉,因此设计出山寨币的扩展层应该也不困难。 比方说莱特币就应有自己的闪电网络了,后续应该还会出现一些山寨闪电网络。
有趣的是,这些网络将来不用彼此独立的存在。
闪电网络一个叫原子交换的基础构建模块可以用来连接不同区块链的支付通道。好比说,只要有节点愿意提供兑换服务,那么A转账时用比特币,B收钱时可能就是莱特币了。
当然了,用户也可以给自己转账:发比特币收莱特币。这个角度来说,闪电网络建立一个无信任的加密货币兑换交易网络。
通道工厂
闪电网络的主要利好体现在比特币交易的上限大幅提升的同时没有对网络产生负担。只要交易双方的通道中有资金,基本上就能够无限次数的转账。提交到链上交易只有两个:开通和关闭交易通道的两笔费用。 当然了,一个通道两笔费用,那么随着比特币网络以及闪电网络的壮大,这个数字也会不断上升。
由苏黎世联邦理工学院的研究人员提出 “通道工厂”方案,或许可以进一步(或者说很大程度)降低每个支付通道需要提交上链的平均交易数量。
通道工厂,类似2015年Decker和Wattenhofer的闪电提案,是一种多人共用的支付通道,一样是提交两笔交易至链上。 如果Schnorr签名在比特币上实施,即使涉及多名用户,这些交易也可以处理的相当紧凑。
通道工厂的功能类似闪电网络的次级通道,工厂里的用户相互间可以不限次数的开通或关闭闪电通道,完全不需要向链上提交交易。理论上讲,这种方式可以暴减闪电网络提交链上的交易数量。
The Future of Bitcoin: What Lightning Could Look Likebitcoinmagazine.com
网友评论