协议

聪穿越协议的核心是闪电通道,协议的主要内容是协调操作聪资产在一层网络和二层网络的流动。资产的流动实际就是资产所有权的流动,因为聪和资产都是锁定在主网,只是将资产的所有权转移到到二层网络进行流通,最终还是需要回到主网做资产最后的结算。

协议的原则是用户是主动方,基本上所有动作都必须由用户主动来发起,而远端服务节点作为自动应答的机器人,根据协议自动应答,配合用户的操作。这个原则确保所有的操作都是用户意图的体现,最大限度确保用户的资金安全。

一层网络是主网,二层网络可以是任何支持聪穿越协议的公链,我们以聪网为例。

打开通道

这是标准的闪电网络通道的打开方式,用户提供打开通道的资金,远端服务节点自动应答,协助打开通道。打开通道后,根据闪电通道RSMC协议,用户就持有了承诺交易。这是用户资金安全的根本保障,在远端节点不应答的情况下,用户也可以自己广播承诺交易,取回自己的资金。

同样,远端服务节点也持有承诺交易。双方的地位是对等的。

现在,用户可以通过其他的操作,来对通道中资金的所有权进行分配,或者调整通道的容量。这些操作,都会引起承诺交易的更新。双方都只持有最新的承诺交易。如果一方广播了老的承诺交易,另一方就有能力构造一个对应的惩罚交易,清扫这个老的承诺交易的输出,结果相当于把通道中的资金都清扫到自己的地址中。这也是闪电通道RSMC协议赋予用户的能力。

聪穿越协议的另一个重要功能,是在打开通道时,将通道中的聪资产,自动Ascend到聪网,并在聪网上生成对应的UTXO。这时资产就穿越到了二层网络了。

关闭通道

用户随时可以决定关闭通道取回属于自己的资金。 关闭有两种方式,协商关闭和强制关闭。

  1. 协商关闭:正常情况下,远端节点都会在线,自动支持用户的关闭请求。协商关闭的好处是双方资金可以在交易确认后就可以马上花费,费用最低。

  2. 强制关闭:在远端节点不在线或者永久关闭的情况下,用户可以广播最新的承诺交易,取回自己的资金。跟协商关闭不一样的是,承诺交易会将资金先输出到一个中间地址,用户只有等待一个默认的CSVDelay的时间后(一般是144个区块),才能花费这些输出。

在执行通道关闭的同时,二层网络上相关的资产,必须执行一个Descend操作,将这些资金从二层网络上穿越会一层网络,确保聪网上的每一份聪资产,都是锁定在通道中的。

解锁和锁定

打开通道后,资产自动穿越到二层网络,但是还是锁定在通道中。可以想象一层网络和二层网络是两个水库,通道连接这两个水库,锁定在这通道中的水,其实就是处于一种临界状态,需要经过特殊的操作,才能真正进入一层或二层网络。进入或者退出二层网络的操作,就是解锁和锁定;而进入或者退出一层网络的操作,就是splicing。

解锁和锁定是在二层网络上执行的操作:

  1. 解锁:将资金从通道中释放到用户在聪网的地址上。以后用户就可以跟在主网一样,自由签名使用自己的资产。

  2. 锁定:将资金锁定回通道。主意通道的容量是固定的,解锁和锁定操作无法改变通道容量,所以能不能锁定回通道,受通道容量限制。

Splicing

splicing是闪电网络中的一种新协议,目的是用来动态调整通道容量,只不过应用最广的LND还没有实现splicing功能。 我们使用splicing技术来对通道进行动态调整。

splicing技术是在一层网络上执行的操作:

  1. splicing-in:将新的utxo拼接进闪电通道,扩大通道容量。这个操作相当于给通道充值,可以充任意的资产进入通道,只要索引器支持。

  2. splicing-out:将闪电通道中的资产,通过拆出部分utxo的方式输出到指定的地址。这相当于从通道中提取资产。

同样,在执行splicing操作是,因为效果相当于给二层网络充值/提取资产,所以涉及到的资产,必须自动完成Ascend/Descend操作,确保二层网络中的资产跟通道中的资产是严格匹配的。

以上,就是聪穿越协议的核心技术,完全基于闪电通道,是目前BTC生态中,另外一种原生的扩展协议。

Last updated

Was this helpful?