作者:Marvellous Ibironke

来源:https://marvelib.hashnode.dev/types-of-backups-in-the-lightning-network

闪电网络是建立在比特币网络基础上的二层支付协议。它的设计目标是提高比特币网络的可扩展性,并提供近乎即时的、低成本的支付。与之相对,比特币网络是一个一层支付协议,支持安全的、去中心化的交易。闪电网络的运行不触及区块链,所以可以实现更快和更便宜的交易,而比特币网络的交易必须写入区块链,这就导致了较慢而且更贵的交易。闪电网络是比特币网络的一部分局限性的解决方案。相互结合的两个协议支持更广大的电子货币和去中心化金融生态系统。

而在闪电网络语境下,备份指的是对一个节点的通道状态的备份,包括关于它的通道余额、通道配置以及通道里发生过的所有承诺交易的信息。这些状态存储在节点的硬盘上,可用于在节点遭遇宕机、数据丢失和其它意外事件之后复原这个节点。在持有这样的备份时,节点可以尽可能降低在遭遇软硬件故障时丢失资金的风险。

针对数据丢失的保护,是闪电节点备份策略的关键部分。它需要对抗因为多种原因引起的通道数据丢失,例如:硬件故障、软件 bug、恶意攻击。数据丢失保护协议保证了通道数据是安全存储的,而且可以在遭遇丢失后找回。

数据丢失保护协议可通过这几种方式来实现:静态通道备份(SCB)、动态通道备份(DCB)、存储在远端服务器(瞭望塔)。

静态通道备份

静态通道备份指的是将通道状态存储在硬盘上,而且日后无需额外数据就能恢复。相反,动态通道备份需要节点实时跟踪最新的通道状态,可能更加复杂,而且容易出错。

静态通道备份通常会使用 “导出通道状态” 的功能创建出来,并存储在一个安全的位置,例如外置硬盘或者云存储。只需在节点软件中使用 “导入通道状态” 的功能,就可以通过这样的备份恢复节点。这样,节点可以恢复日常运行,而不用担心丢失通道的信息(和资金)。

每个节点都可以创建自己的静态通道备份,它由一系列签过名的承诺交易、以及确认注资交易的区块高度组成。

为了创建静态通道备份,节点需要执行以下操作:

  1. 导出通道状态:获得关于一条通道的所有必要信息,例如节点在该通道中的最新余额、通道配置,以及通道中已经发生过的承诺交易。这些信息一般会以二进制文件的形式存储,很容易导出,也很容易导入。
  2. 在一个安全的位置存储备份:导出状态之后,就要存储在一个安全的地方,例如单独的硬盘或者云存储。这保证了备份不会在节点宕机的时候被破坏。
  3. 加密通道状态:为了保证备份的安全性,建议使用强壮的加密算法来加密通道状态,例如 AES-256。这可以保护备份的内容不被他人知晓,即使备份文件被盗。

要使用静态状态备份复原一个节点的时候,节点必须执行以下操作:

  1. 获取备份:从安全存储位置找回备份文件。
  2. 解密备份:如果备份之前加密过,就必须使用相同的加密算法和密钥来解密。
  3. 导入通道状态:最后,将备份导入软件,它将自动复原节点的通道配置信息和余额信息。

请注意,创建静态通道备份只是保护你的通道资金的一个方面。在其它方面,比如使用一个安全的存储位置、加密你的备份,也同样重要。

动态通道备份

动态通道备份会在每一次你创建新通道以及更新通道状态时同步更新。换言之,每次你发出一笔支付或者受到一笔支付时,你的通道的状态都会更新,那么新的备份就会创建出来。动态通道备份的好处是,它们永远都是最新的,可以为通道提供实时的保护。而不利之处在于,它们的实现更加复杂,而且比静态通道备份需要更多的存储空间。

瞭望塔备份

瞭望塔备份是另一种保护用户不受通道对手欺诈的备份机制。在闪电网络中,当用户开设一条通道之后,就必须监控它,确保通道对手不会欺诈自己。瞭望塔可以充当所有通道的观察者,并帮助用户在受到通道对手欺诈时反制对手。其实,它就是一种专业的节点,监控区块链上的交易,并在发现可疑活动时提醒用户(或者作出用户预先指定的响应)。不像动态通道备份(实时更新),瞭望塔的备份仅会在用户主动要求更新时更新。

瞭望塔备份背后的思想提供了一种更安全而且更可靠的通道状态备份选项。当你的通道对手尝试欺诈时,瞭望塔可以检测到这样的欺诈,并代表你在链上结算相关的通道,从而最小化资金丢失的风险。瞭望塔备份的好处在于,它安全而且可靠。但其缺点是它更加难以设置,而且需要对瞭望塔服务商由更多的信任。

总结一下,在闪电网络中,备份是一种保护用户的资金、复原节点的工具。不同的闪电节点实现(Eclair、c-lihgtning,等等)可能实现了不同的备份机制。不过,创建备份和复原节点的原理是相同的。每一种备份方法都有自身的长处和缺点,节点运营者应当根据自己的需要来选择。

(完)