在本书的第一部分,我们介绍了闪电网络的主要概念,通过一个综合示例来说明支付路径并配置了一些可以用来进一步探索学习闪电网络的工具。在本书的第二部分,我们将深入探讨闪电网络的更多技术细节,剖析每个功能模块。
在本节中,我们将更详细地概述闪电网络的组件,并提供“全局”视角来指导您完成以下章节。
闪电网络由运行在互联网之上的复杂协议集合组成。 我们可以将这些协议大致分为五个不同的层,构成一个 协议栈,其中每一层都基于并使用下一层中的协议。 此外,每个协议层都抽象了底层并“隐藏”了一些复杂性。
The Lightning Network protocol suite 中显示的架构图提供了这些层及其组件协议的概述。
闪电网络的五层,自下而上依次是:
- 网络连接层
-
该层包含直接与 Internet 核心协议 (TCP/IP)、应用协议 (Tor v2/v3) 和 Internet 服务 (DNS) 交互的协议。该层还包含保护闪电消息的加密传输协议。
- 消息层
-
该层包含节点用于协商特征、格式化消息和编码消息字段的协议。
- P2P层
-
该层是闪电节点之间通信的主要协议层,也包含节点之间交换的所有不同消息。
- 路由层
-
该层包含用于在节点之间以端到端和原子路由支付的协议。也包含闪电网络的核心功能:路由支付。
- 支付层
-
网络的最高层,为应用程序提供可靠的支付接口。
在接下来的10章中,我们将剖析协议组件并深入研究闪电网络的每个组件。
我们花了相当长的时间试图确定并呈现组件细节的最佳顺序。 这不是一件容易的事,因为不同的组件之间存在如此多的相互依赖:当您开始解释一个时,您会发现它包含了相当多的其他组件。,抛开自上而下或自下而上的方法,我们最终选择了一条更曲折的路径,从闪电网络支付渠道独有的最基本构建块开始,然后从那里向外延展。但由于该路径并不明显,我们将使用 The Lightning Network protocol suite 中显示的闪电协议套件作为地图。 在每一章中都将关注一个或多个相关组件,并且您会看到它们在协议套件中被突出显示。 有点像地图标记说 “你在这里!”
以下是我们将要覆盖的内容:
- 支付通道
-
在本章中,我们将了解支付渠道是如何工作的,这比我们在本书前面部分看到的要深入得多。 我们将研究资金和承诺交易的结构和比特币脚本,以及节点在协议协商过程中的每个步骤。
- 路由
-
接下来,我们将把几个支付渠道放在一个网络中,并将支付从一端路由到另一端。在这个过程中,我们将深入研究哈希时间锁(HTLC)合约和我们用来构建它的比特币脚本。
- 通道行为
-
将简单支付通道和使用 HTLC 的路由支付的概念放在一起,我们现在将了解 HTLC 如何成为每个通道承诺交易的一部分。 我们还将研究在承诺中添加、解决、失败和删除 HTLC 的协议。
- 洋葱路由
-
接下来,我们将看看 HTLC 信息是如何在洋葱路由协议内通过网络传播的。 我们将研究赋予闪电网络一些隐私特征的分层加密和解密机制。
- 八卦协议
-
在本章中,我们将了解闪电节点如何找到彼此并了解已发布的通道以构建通道图,它们可以使用该通道图来查找网络中的路径。
- 路径寻找
-
接下来,我们将看到每个节点如何使用来自 gossip 协议的信息来构建整个网络的“地图”,它可以使用它来找到从一个点到另一个点的路径来路由支付。 我们还将研究现有的寻路创新,例如多部分支付。
- 发票
-
闪电网络的一个关键部分是付款请求,也称为闪电发票。 在本章中,我们将剖析发票的结构和编码。
- 消息格式
-
支撑闪电网络的是点对点协议,节点使用该协议来交换有关网络及其通道的消息。 在本章中,我们将了解这些消息是如何构造的,以及通过特征位和类型-长度-值 (TLV) 编码来扩展消息的表达能力。
- 传输层消息加密
-
这部分是网络传输的底层部分;在这部分中,我们将研究确保节点之间所有通信的保密性和完整性的底层加密传输系统。
让我们开始吧!