作者:Fiona / 来源:白话区块链
在之前的文章《什么是闪电网络?》中,我们介绍过闪电网络的定义和特点。你可能会发现,闪电网络交易只在通道开启和关闭时会访问两次BTC区块链,期间大量的交易数据保存在链下本地。
那在没有其他节点同步交易数据的情况下,谁来验证最终结果的正确性呢?
通常情况下,如果是交易双方共同确认并发布,即表明发布的是最终结果。不过如果是单方关闭通道并发布了过期交易,比特币网络的确也是无法识别其有效性的。
闪电网络用惩罚机制很好地解决了这一问题。简单说,就是如果交易一方在通道关闭时向比特币网络发布了过期结果,发现后会被没收相应的BTC,没收资金将给到对方。
闪电网络开发者之一Alex Bosworth曾在Twitter上发布过这一惩罚机制的测试结果
这一惩罚机制是由闪电网络的RSMC协议(RecoverableSequence Maturity Contract,中文翻译为“可撤销的顺序成熟度合同”)实现的(为方便记忆,不妨参考在白话之前文章中对RSMC的翻译:肉丝冒菜)。
事实上,RSMC不仅可以避免或惩罚欺诈行为,也保障着闪电网络每笔交易的有效性。下面通过一个简单的闪电网络支付流程,来说明RSMC是如何实现的:
1、A和B在闪电网络上交易,双方都向一个多重签名地址中存入0.5BTC,此时会开启闪电网络的支付通道,通道内共有1BTC;
2、交易通道开启期间,AB之间可以发生多次转帐,每次转帐双方都会进行签字认可,通道每次会判断双方余额是否足够支付,并在转帐完成后更新最新余额、作废之前的交易。假设多次交易后,显示A余额有0.2BTC,B余额为0.8BTC。需要说明的是,在通道开启期间,通道内的余额不会影响双方实际比特币地址余额的变化,因为交易数据没有发布到比特币网络上。
3、A不再想和B交易,准备结束交易提现走人,可以把有双方签字的最终余额提交给比特币网络,并关闭支付通道。如果在指定时间B不反对,那么结果就在比特币网络上正式确认,余额按协议转入双方预先设立的提现地址。如果B在指定时间内反对并提交证据,证明A发布的是双方之前过期交易的余额分配方案,那么A资金将被罚没给B。
虽然RSMC协议可以惩罚欺诈情况,但如果想惩罚生效仍然需要注意两点:
1、B需要在指定时间内发现A造假;这一时间通常是1000个区块确认时间,差不多是7天,过期后双方交易结果将正式被比特币网络确认,惩罚将无法生效。
2、B在反对时需要提供相应的数据,因为闪电网络通道关闭前的交易是保存在链下本地,所以交易双方要妥善保管相关交易数据(包括签名、对方发来的临时私钥等等),如果数据丢失,就算看到对方是假数据,也无法获得赔偿。
所以,新问题又来了:如何保证B能在指定时间内及时反对并提交证据呢?解决办法有两个,B自己运营一个比特币全节点,或委托给第三方(或称“瞭望塔”),帮助监控发布到全网的交易,发现是笔过期交易时,立即代理B在全网发布惩罚。
在闪电网络中,我们似乎常能隐约看到第三方的身影:在通道中间节点跳转上、在通道关闭时的交易有效期验证代理上。它们不是必需的,但如果你希望享受更方便、更安全的交易服务,它们似乎又是不可或缺的。
总结:
闪电网络的每笔交易,本质上等同于没在比特币网络发布的比特币交易,通道关闭时会发布到比特币网络。在发布交易的可靠性上,则是通过惩罚机制来执行的,作恶一方会罚没所有费用。
你愿意付费给第三方,帮你监测闪电网络交易结果的有效性吗?欢迎在留言区留言。
附:2019-4-3闪电网络指标,网络容量超过1000,在过去30天内增长43%