简单介绍
通道(Channel),通过在主网宣布通道建立,而后交易双方转至链下交易,把多次交易在链下完成,不占用主网资源,交易完成后在主网广播最终交易结果,无需更改主网机制即可实现吞吐量的提高。
“通道”是一个逻辑上的概念,实际使用过程中并没有“通道”,即使在数据传输层也没有实质的“通道”,“通道”的术语用来表示链下交易双方的关系。闪电网络是面向比特币网络提出的Layer2扩容方案,因此其记账的方式采用的是UTXO[]模型。其次,通道仅需要在“创建”和“关闭”的时候和比特币网络通信,在其他时间都是点到点通信,交易内容无需上链。
任何两个用户(假设为A,B)都可以构建一个通道,A、B间通过通道进行的任意次交易都不需要向链上广播,因此不需要向主链缴纳高额的手续费,这对于高频次小额交易是十分友好的(因为存在交易金额比手续费低的情况)。为了解通道技术的机制及发展历程,接下来代入用户A、B的视角进行操作。
1、 2/2多重签名与时间锁
最初的通道支持的功能仅有:单向付款、2/2多重签名和不友好的时间锁定。多重签名是指某一数字资产需要多个人的私钥签名才可被使用,常用的多签方式有2/3多签,即该数字资产有3把私钥,但是使用其中2把私钥即可解锁。同理,此处的2/2多签是指需要交易双方的私钥签名才可解锁。
Step1: 假如A需要向B发起多次转帐且交易总值约为10BTC,只需要付款方(A)向A和B共同持有的2/2多签地址存对应金额(此处假设为10BTC)即可。
Step2: 若A将钱存进多签地址后,B由于网络原因处于离线状态且短期内无法上线,那么A的钱将被一直锁定,直到B使用私钥签名解锁。为避免这种情况产生,在A锁定资金之前,B将向A提供一份退款交易(仅创建交易但不在主网上广播),退款交易内容为:在1月7日后(实际中使用区块高度作为时间限制),A可以使用多签地址内的10BTC,并附上B的签名。A在拿到退款交易后,仅需使用私钥签名后在主网上广播即可取回资金。
所以实际执行情况是在A向多签地址存款前,B先向A提供一份退款交易,A收到后再向多签地址存入资金,实际执行流程为Step2->Step1->Step3->Step4。在A将资金存入多签地址并被比特币网络确认后,“通道”算是成功建立。
Step3: 通道建立后,A可多次向B进行转账,且无需向主网缴纳手续费。具体的实现方式为:A构造一份新的退款交易发给B,退款交易内容为:在1月6日后,A可以使用多签地址内的9BTC,B可以使用多签地址内的1BTC(即A向B转账1BTC),并附上A的签名。A通过不断更新退款交易来实现转账。每个交易都有时间锁限制,每次交易更新后锁定时间是逐层递减的,防止恶意用户公布旧的交易。
Step4: 假设最后一次退款交易更新内容为:(无时间锁)A可以立即使用多签地址内的0BTC,B可以立即使用多签地址内的10BTC(即A一共向B转账10BTC)。由于通道是有时限的(第一个退款交易约定是1月7日后A可提取所有BTC),所以B需要在最新的交易已经生效而次新的交易还没生效前向主网广播最新的交易结果,否则可能出现旧的交易被广播并且生效的情况。例如:B在1月7日时仍未广播最新的交易内容,尽管最新的约定是B可以取走所有的资金,但A持有第一代退款交易且已经到了生效时间,故A可以签名并广播第一代退款交易,取走所有资金,B损失了10BTC。当退款交易在主网上广播时,也意味着通道即将关闭。
图1(Step1,2的排版顺序是为便于理解,并不是实际的执行顺序)
初代通道技术虽然一定程度上提高了主网吞吐量,降低了交易手续费,但是缺点明显:1、交易仅是单向的,若B想向A转账,则需再开一个通道;2、不友好的时间锁定,如果交易过程中A或B不配合流程,则另一方需要等到时间锁结束后才可解锁资金;3、通道时间有限,由于退款交易限制,到期后通道即关闭。
2 RSMC
RSMC全称Revocable Sequence Maturity Contract,是在初代通道技术上完善的可双向支付的可撤销合约。RSMC解决的问题是:(1)实现了双向支付;(2)一方中途退出,另一方可立即取回资金,而无需经过等待期。同时,对主动退出方实行惩罚;(3)通过可撤销合约,使交易的任一方都不可抵赖反悔(广播旧的交易)。
如图4所示,同微支付通道一样,A、B各往共同持有的2/2多签地址存储指定金额(假设各存5BTC),并在存储前为这笔钱生成退款交易。双方各持一份,都可以各自拿回自己的5BTC。
但在基于RSMC的双向通道中,A构造的第一代退款交易内容为:B可以立刻取回5BTC,(如果A提前终止交易,在主网上广播交易)A取回5BTC需要等待1000个区块(作为惩罚)。A将第一代退款交易签名并发给B。
同理,B构造并签名发给A的第一代退款交易内容为:A可以立刻取回5BTC,(如果B提前终止交易,在主网上广播交易)B取回5BTC需要等待1000个区块(作为惩罚)。
图2
在交易过程中,假设由A向B转账1BTC,A将构造一份新的退款交易、签名后发给B,退款交易内容为:B可以立刻从多签地址中取出6BTC,(如果A提前终止交易,在主网上广播交易)A取出4BTC需要等待1000个区块(作为惩罚)。B在审核退款交易无误后,构建一份对应的退款交易、签名后发给A。由于双方都在多签地址内存有资金,因此可以根据需求进行双向交易。
此时,通道内对于资金的分配有两个状态(如图4所示,State1与State2),因此我们需要通过RSMC技术撤销State1状态对应的退款交易。所谓撤销即通过构建一个惩罚合约作为制衡手段,使对方不敢广播旧的合约。此处将State1状态A的退款交易命名为SA1,将State1状态B的退款交易命名为SB1。在确定交易的最新状态(State3)后,A构建一个自罚交易(PA1),交易内容为:若SA1交易在主网上广播,则B可以立刻取出多签地址内的5BTC。并将此交易签名发给B。当SA1在主网上广播后,根据SA1的内容,B可以立刻取出5BTC,A需要等待1000个区块才可以取出5BTC。而PA1交易使得B无需等待1000个区块即可取出剩余的5BTC,从而实现惩罚A广播旧交易的目的,RSMC通过博弈的方式实现了交易的防抵赖。同理,B也需要根据SB1构建一个对应的自罚交易(PB1),将其签名后发给A。
重复上述步骤直至确定下一笔交易是最后一次交易时,A、B各自构建一个退款交易,内容均为:A可以立刻取回x BTC,B可以立刻取回y BTC。签名并互换交易后,当交易在链上广播时,双方可以立刻从多签地址取回资金,同时通道关闭。至此,RSMC的双向支付、防DDOS攻击、防抵赖、延长通道时间的功能全部实现。
图3
3、HTLC
尽管RSMC完善了通道的功能,但如果涉及多个用户,每个用户间开启通道则需要大量的时间与经济,这与设计之初的理念背道而驰。因此可以基于通道之上,增加HTLC技术将各个通道串联起来,成为闪电网络。
HTLC全称为Hashed Timelock Contract,该合约的功能类似于限时转账,如图7所示,转账方往2/2多签地址转入一笔资金,同时收款方生成一个随机数R,并对R进行哈希运算得到H(R)。转帐方构建一笔交易,交易内容为:若收款方在一定时间内能提供R值,且其哈希值等于H(R),则这笔钱可由接收方支配。签名后发给收款方。收款方也构建一笔交易:在一定时间后转账方可以取回多签地址内资金。签名后发给转账方。
图4
当A与E要进行交易又不在两者间建立通道时,如图5所示,可以通过HTLC技术借用别人的通道实现间接转账,即A→F→G→E或E→G→F→A。通过哈希锁定技术可以确保资金在各方手中安全的周转,通过时间锁技术为各周转单位提供缓冲时间,同时确保在超时后资金可取回。
图5
各个通道组成了一个交易网络,当两个用户尝试进行交易时,用户通过蚁群路由、类Landmark、Bellman-Ford-Gibson等算法在网络中选取一条合适的路径进行资金转发。同时,为确保用户信息的匿名性,闪电网络通过洋葱路由协议使得只有发起用户知道完整转发路径,其他用户只知道上一跳与下一跳,无法确定他们的具体身份,从而实现了匿名网络的功能。
4、评价
“通道”技术拥有强隐私性,用户的交易细节仅掌握在交易双方手中,不在网络中广播。这意味着交易过程中数据是拥有可用性的,而最终交易结果上链即生效意味着“通道”拥有即时的最终确定性。
可拓展性:“通道”这一Layer2扩容方案将比特币网络的吞吐量提高至10000+TPS。在不对主网架构进行修改的前提下,通过在主网上两次广播即可实现通道的建立与关闭;将交易的最终状态提交至主网,实现了交易的瞬时确定性。
虽然通道显著增加了每秒可处理事务量,但仍存在几种不适用的情况,如:①通道存在被DDOS攻击的情况:当交易对手拒绝新的交易(包括关闭通道的交易)时,用户只能广播当前的交易并等待锁定期结束才能拿到资金。②通道更适合小额交易:当用户转账大笔资金时,若超过通道内存储的资金上限,可能会陷入一段漫长的路径寻找时间中…
安全性:①RSMC技术从博弈的角度防止用户公布旧交易,实现了交易状态的确定性更改,然而恶意用户仍有小概率利用对方的离线期广播旧交易,从而在时间锁失效后偷走资金。②HTLC技术通过生成加密支付证明、在限定时间内完成交易的方式,实现了资金在各通道间安全周转,这些技术确保了交易的支付安全。③由于闪电网络中活跃的中转节点(用户)很少,因此有限的中转节点为大量的用户服务,这意味着可能中转节点的上一跳与下一跳即是发起方与收款方,从而泄露用户隐私。④由于通道存在于链下,参与者之间的交互细节不会记录在以太坊的公共区块链上。
去中心化程度:闪电网络是一个P2P、交易最终状态提交到主网的、同时没有任何第三方监管通道中交易的去中心化项目。从局部上看,可能存在部分中心化的问题,即:在通过闪电网络其他用户的通道进行转账时,若某些活跃中转节点(用户)成为常用/必经的中转节点,则可能会导致收取更高的中转手续费(相对主网来说仍然还是较少)。但瑕不掩瑜,从总体上看,闪电网络在Layer2扩容方案发展初期仍是一个优秀的去中心化扩容方案。