当有多个用户之间存在“微支付通道”时,这些通道相互连接,便可以形成“通道网络”,这便是闪电网络。相互转账的双方并不需要有直接的支付通道连接彼此,也可以通过中间人的方式实现相互转账。比如有甲、乙、丙三个用户,其中甲和乙、乙和丙之间存在“微支付通道”,甲想转账给丙。这个时候只要通过甲转账给乙,同时乙转账给丙就可以实现甲对丙的转账。这个过程由后台自动执行,对用户来讲,感觉就像甲直接转账给丙一样。
当然,闪电网络也存在一定的缺陷。第一,用户无法支付给不在线的人,也即无法离线支付。这种情形有点类似于微信转账时收钱方需要确认收款才能到账一样。第二,闪电网络更适用于小额支付,对于大额付款并不理想。这是因为在闪电网络中冻结的资金不会太多,较大的转账金额可能需要多个通道共同支付。第三,闪电网络容易出现匹配失败的情况。当其中一个交易方没有回应,用户可能需要等待数小时才能关闭付款通道,之后才能通过替代路线重新发送资金。
4.1.2雷电网络
雷电网络[16]同闪电网络极其类似,只不过雷电网络是应用在以太坊上的链下扩容方案。基本原理同闪电网络,在此不再赘述;下面简单介绍一下雷电网络不同于闪电网络的地方。
第一,雷电网络的支付通道是被链上的一个智能合约所控制的,而闪电网络是基于多重签名地址建立的支付通道;
第二,雷电网络引入了更为通用的“智能条件(Smart Condition)”,实现智能转账(smart transfers),HTLC成为其可实现的一个子集,除了哈希锁、时间锁等条件,它还可设定更复杂的条件;
第三,在设计细节上雷电网络也不同于闪电网络。比如,雷电网络中用来更新通道余额分配的报文,增加了序号字段和等待期字段以便识别作废的报文;在余额分配中,申明新余额分配的方式是出示余额分配的净增减,而不是重新申明余额等。
4.2 跨账本多跳协议
之所以说跨“账本”,而不是跨“链”,是指该协议不仅支持去中心化区块链账本,还支持各类中心化账本,是对跨链应用更广泛的支持。这其中的典型代表Ripple主要采用了HTLA和公证人的机制来实现跨账本交易。
4.2.1 Ripple
Ripple是第一个提出利用区块链技术来实现跨账本[6]资产互换的项目,其主要致力于解决跨国汇款问题,通过Ripple网络能更快更经济地进行国际汇款。Ripple在底