闪电网络概述

比特币自诞生起一直存在若干技术问题:论处理能力,目前全网只有7笔/秒;论时延,大致10分钟才出一个块;论交易最终性,一般建议将等待6个块的确认视作交易最终化,大额交易则建议等待更多;论容量,目前已生成40多万个区块,约60GB数据量,且眼见的未来只见增加不见减少。

在闪电网络出现前,虽然比特币社区也试图通过区块扩容、隔离见证等技术在一定程度上提高交易处理能力,但始终无法实现数量级的改善。至于前面提及的其他技术难题,现存的PoW机制是万万动不得的,需要等待多个区块的确认也是不能触碰的底线;更麻烦的是,交易处理能力和区块链数据容量似乎是一对无可调和的矛盾。

思路决定出路,常规方法找不到出路,就逼得社区换一种思路考虑这个问题。代码性能调优的经验提示我们,优化编译、改进算法、调整数据结构等方式虽然很重要也很管用,但怎么能比得上“根本不执行”的强悍?既然在比特币区块链中优化性能如此艰难,为何不尽可能将交易放到链外执行?以比特币区块链为后盾,在链下实现真正的点对点微支付交易,区块链处理能力的瓶颈可能会被彻底打破,时延、最终性、容量甚至隐私问题也迎刃而解,这就是比特币“闪电网络”的思路。

闪电网络并不试图解决单次支付的银货兑付问题,其假设是单次支付的金额足够小,即使一方违约另一方的损失也非常小,风险可以承受。因此使用时必须注意“微支付”这个前提。多少资金算“微”,显然应该根据业务而定。闪电网络的关键技术有三,依次是RSMC(Recoverable Sequence Maturity Contract,序列到期可撤销合约)、HTLC(Hashed Timelock Contract,哈希时间锁定合约)和闪电网络后者依赖于前者。技术实现虽然复杂,但本质却很简单。

如图1-4所示,Alice想给Dave发送0.05BTC,但Alice和Dave之间并没有微支付通道。没关系,Alice找到了一条经过Bob、Carol到达Dave的支付路径,该路径由Alice/Bob、Bob/Carol和Carol/Dave3个微支付通道串接而成。

闪电网络支付路径

Dave生成一个秘密R并将Hash(R)发送给Alice,Alice不需要知道R。R和Hash(R)的作用就像是古代调兵用的一对虎符。Alice和Bob商定一个HTLC合约:只要Bob能在3天内向Alice出示哈希正确的R,Alice便支付给Bob0.052BTC;如果Bob做不到这点,这笔钱3天后将自动退还Alice。

Bob和Carol商定一个HTLC合约:只要Carol能在2天内向Bob出示哈希正确的R,Bob便支付给Carol0.051BTC;如果Carol做不到这点,这笔钱到期将自动退还Bob。

最后,Carol和Dave商定一个HTLC合约:只要Dave能在1天内向Carol出示哈希正确的R,Carol便支付给Dave0.05BTC;如果Dave做不到这点,这笔钱到期将自动退还Carol。

一切就绪后,Dave及时向Carol披露R并拿到0.05BTC;现在Carol知道了R,她可以向Bob出示密码R并拿到0.051BTC(差额部分的0.001BTC成了Carol的佣金);Bob知道R后当然会向Alice出示并拿到他的那份0.052BTC,差额部分的0.001BTC成了Bob的佣金,如图1-5所示。

闪电网络逐级提款

整个过程很容易理解。最终效果是Alice支付了0.052BTC,Dave安全地拿到0.05BTC,整个闪电支付网络为此收取的佣金成本是0.002BTC。上述过程中的全部动作都发生在比特币区块链之外。尽管闪电网络本身可以基于任何合适的传统技术构建,闪电网络的支付通道也可能逐渐向少数大型中介集中,变成若干大型中介彼此互连、普通用户直连大型中介的形式,但这种方案仍然具有传统中心化方案不可比拟的优势,因为用户现在并不需要信任中介,不需要在中介处存钱才能转移支付,资金安全受到比特币区块链的充分保护。

原文地址:https://www.cnblogs.com/hzcya1995/p/13312815.html