Skip to content

Latest commit

 

History

History
603 lines (313 loc) · 38.6 KB

02_getting_started.asciidoc

File metadata and controls

603 lines (313 loc) · 38.6 KB

开始

在本章中,我们将从大多数人第一次使用闪电网络时,所面临的问题开始——选择软件参与 LN 经济。我们将审视闪电网络中,两个用户间最常见的用例场景,并通过案例进行学习。 这个案例描述如下:咖啡店顾客 Alice,将在她的移动设备上使用闪电钱包,从 Bob’s咖啡店购买咖啡。 店主Bob将使用闪电节点和钱包在他的咖啡店运行一个销售点系统,这样他就可以通过闪电网络接受付款了。

Alice的第一个闪电钱包

Alice是比特币的长期用户。 我们第一次见到Alice是在_Mastering Bitcoin_的第1章。 [1]当时,她使用比特币交易从 Bob 的咖啡馆买了一杯咖啡。 如果您还不熟悉比特币交易的工作原理或需要复习,请阅读 精通比特币[bitcoin_fundamentals_review]中的摘要。

Alice最近得知Bob’s Cafe刚刚开始接受LN付款! Alice渴望学习和尝试闪电网络;她想成为Bob的首批 LN客户之一。为此,Alice首先需要选择一个满足她需求的闪电钱包。

Alice 不想将她的比特币的保管权委托给第三方。 她已经对加密货币有了足够的了解,知道如何使用钱包。 她还想要一个移动钱包,以便在旅途中使用它进行小额支付,因此她选择了 Eclair 钱包,这是一种流行的非托管移动闪电钱包。下面让我们进一步了解她是如何以及为什么做出这些选择的。

闪电节点

闪电网络是基于可识别LN协议的软件程序接入的。 闪电网络节点(LN 节点或简称节点)是具有以下三个重要特征的软件程序:

  • 首先,闪电节点是钱包,因此它们可以通过闪电网络以及比特币网络发送和接收付款。

  • 其次,节点必须与创建网络的其他闪电节点进行点对点通信。

  • 最后,闪电节点还需要访问比特币区块链(或其他加密货币的区块链)以保护用于支付的资金。

用户通过运行自己的比特币节点和闪电节点拥有最高程度的控制权。 但是,闪电节点也可以使用轻量级的比特币客户端,通常称为简化支付验证(SPV) ,与比特币区块链交互。

闪电网络浏览器

LN 浏览器是显示节点、通道和网络容量统计数据的有用工具。

以下是部分浏览器的清单:

Tip

请注意,在使用闪电浏览器时,就像使用其他区块浏览器一样,隐私可能是一个问题。 如果用户没有防备,网站可能会跟踪他们的 IP 地址并收集他们的行为记录(例如,用户感兴趣的节点)。

另外,应该注意的是,由于当前闪电拓扑图或任何现有通道策略的当前状态没有全球共识,用户不应该依赖闪电浏览器来检索最新信息。 此外,随着用户打开、关闭和更新频道,图表会发生变化,个别 Lightning 浏览器可能不是最新的。 可以使用闪电浏览器来可视化网络或收集信息,但不能作为闪电网络上正在发生的事情的权威来源。 要获得闪电网络的权威视图,请运行您自己的闪电节点,该节点将构建通道图并收集各种统计数据,您可以使用基于 Web 的界面查看这些数据。

闪电钱包

闪电钱包 一词听起来有些含糊,因为它可以描述与某些用户界面相结合的各种组件。 闪电钱包软件最常见的组件包括:

  • 保存秘密的密钥库,例如私钥

  • 如前所述,在对等网络上进行通信的 LN 节点(闪电节点)

  • 存储区块链数据并与其他比特币节点通信的比特币节点

  • 在闪电网络上,公开节点和公开通道的数据库“地图”

  • 可以打开和关闭 LN 通道的通道管理器

  • 一个闭包系统,可以找到从支付源到支付目的地的连接通道路径

闪电钱包可能包含所有这些功能,充当“完整”钱包,不依赖任何第三方服务。 当然,这些组件中的一个或多个,也可能(部分或全部)依赖于协调这些功能的第三方服务。

一个 关键 区别(双关语)是密钥库功能是内置的还是托管的。 在区块链中,钥匙的控制决定了资金的保管,正如“your keys, your coins; not your keys, not your coins.”这样的谚语。 任何将密钥管理外包的钱包都称为_托管_钱包,因为充当托管人的第三方控制着用户的资金,而不是用户。相比之下,一个 非托管自托管 钱包,密钥库是钱包的一部分,密钥由用户掌控。术语非托管钱包只是意味着密钥库是本地的并且在用户的控制之下。但是,一个或多个其他钱包组件可能会或可能不会外包并依赖受信任的第三方。

区块链,尤其是像比特币这样的开放区块链,试图最小化或消除对第三方的信任并赋予用户权力。这通常被称为“免信任”模型,尽管“信任最小化”是一个更好的术语。 在这样的系统中,用户信任软件规则,而不是第三方。 因此,对密钥的控制问题是选择闪电钱包时的主要考虑因素。

闪电钱包的每个其他组件都有类似的信任考虑。 如果所有组件都在用户的控制之下,那么对第三方的信任量就会最小化,为用户带来最大的权力。 当然,这带来了直接的挑战,因为随着这种能力而来的是管理复杂软件的相应责任。

在决定使用哪种类型的闪电钱包之前,每个用户都必须考虑自己的技术技能。 那些拥有强大技术技能的人应该使用闪电钱包,将所有组件置于用户的直接控制之下。 那些技术技能较少但希望控制资金的人应该选择非托管闪电钱包。 在后一种情况下,信任通常与隐私有关。 如果用户决定将某些功能外包给第三方,他们通常会放弃一些隐私,因为第三方会了解他们的一些信息。

最后,那些寻求简单和方便的人,即使以牺牲控制和安全为代价,也可以选择托管闪电钱包。 这在技术上是最少挑战的选择,但它 破坏了加密货币的信任模型,因此只能被视为实现更多控制和自力更生的起点。

可以通过多种方式对钱包进行特征化或分类。 关于特定钱包的最重要问题是:

  1. 这个闪电钱包有完整的闪电节点还是使用第三方闪电节点?

  2. 这个闪电钱包有完整的比特币节点还是使用第三方比特币节点?

  3. 这个闪电钱包是在用户控制下存储自己的密钥(自我保管)还是由第三方保管人持有?

Tip

如果闪电钱包使用第三方闪电节点,则由该第三方闪电节点决定如何与比特币通信。 因此,使用第三方闪电节点意味着您也在使用第三方比特币节点。 只有当闪电钱包使用自己的闪电节点时,才存在完整比特币节点和第三方比特币节点之间的选择。

在最高抽象层次上,问题 1 和 3 是最基本的问题。 从这两个问题中,我们可以得出四个可能的类别。 我们可以将这四个类别放在一个象限中,如 Lightning wallets quadrant 中所示。 但请记住,这只是对闪电钱包进行分类的一种方式。

Table 1. Lightning wallets quadrant
闪电网络全节点 第三方闪电网络节点

自托管

Q1:技术水平高,最不信任第三方,完全免许可

Q2:技术能力中等以下,对第三方的信任度中等以下,需要部分许可

托管式

Q3:技术能力中等以上,对第三方信任度中等以上,需要一定的许可权限

Q4:技术能力低,对第三方的信任度高,最少免许可

象限3(Q3),使用完整的闪电节点,但密钥由保管人持有,目前并不常见。 来自该象限的未来钱包可能会让用户担心其节点的操作方面,但随后将对密钥的访问权委托给主要使用冷存储的第三方。

闪电钱包可以安装在各种设备上,包括笔记本电脑、服务器和移动设备。要运行完整的Lightning 节点,您需要使用服务器或台式计算机,因为移动设备和笔记本电脑在存储容量、处理能力、电池寿命和连接性方面通常不够强大。

The category third-party Lightning nodes can again be subdivided:

第三方闪电节点的类别又可以作如下细分:

轻托管

这意味着钱包不运行闪电节点,因此需要通过互联网从其他人的闪电节点获取有关闪电网络的信息。

全托管

这意味着不仅闪电节点由第三方运营,大部分钱包也由云端的第三方运营。 这是一个托管钱包,其他人控制资金的托管。

这些子类别在 Examples of popular Lightning wallets 中使用。

其他需要在“比特币节点”栏中的 Examples of popular Lightning wallets 中解释的术语是:

Neutrino

此钱包不运行比特币节点。相反,由其他人(第三方)运营的比特币节点是通过 Neutrino 协议访问的。

Electrum

此钱包不运行比特币节点。相反,由其他人(第三方)运营的比特币节点是通过 Electrum 协议访问的。

Bitcoin Core

这是一个比特币节点的C++实现。

btcd

这是比特币节点的golang实现。

Examples of popular Lightning wallets中,我们看到了一些当前流行的闪电节点和不同类型设备的钱包应用示例。 该列表首先按设备类型排序,然后按字母顺序排序。

Table 2. Examples of popular Lightning wallets
Application Device Lightning node Bitcoin node Keystore

Blue Wallet

Mobile

None

None

Custodial

Breez Wallet

Mobile

Full node

Neutrino

Self-custody

Eclair Mobile

Mobile

Lightweight

Electrum

Self-custody

lntxbot

Mobile

None

None

Custodial

Muun

Mobile

Lightweight

Neutrino

Self-custody

Phoenix Wallet

Mobile

Lightweight

Electrum

Self-custody

Zeus

Mobile

Full node

Bitcoin Core/btcd

Self-custody

Electrum

Desktop

Full node

Bitcoin Core/Electrum

Self-custody

Zap Desktop

Desktop

Full node

Neutrino

Self-custody

c-lightning

Server

Full node

Bitcoin Core

Self-custody

Eclair Server

Server

Full node

Bitcoin Core/Electrum

Self-custody

lnd

Server

Full node

Bitcoin Core/btcd

Self-custody

比特币测试网

比特币生态提供了一个用于测试目的的替代网络,称为 测试网,与称为 主网 的“正常”比特币网络形成对比。在测试网上,代币是 测试网 bitcoin (tBTC),这是专门用于测试的毫无价值的比特币副本。比特币的每一个功能都被精确复制,但代币一文不值,所以你真的没有什么可担心失去的!

一些闪电钱包也可以在测试网上运行,允许您使用测试网比特币进行闪电支付,而不会冒真实资金的风险。这是安全地试验闪电网络的好方法。Alice在本章中使用的 Eclair Mobile 是支持测试网操作的闪电钱包。

你可以从 比特币测试网水龙头 获得一些tBTC来玩,它会按需提供免费的tBTC。 以下是一些测试网水龙头:

本书中的所有示例都可以使用tBTC 在测试网上完全复制,因此您可以根据需要继续进行操作,而不用拿真钱来冒风险。

平衡复杂性和可控性

闪电钱包必须在复杂性和用户可控性之间取得谨慎的平衡。那些让用户对自己的资金拥有最大控制权、最高程度的隐私以及最大程度地独立于第三方服务的钱包,必然更复杂,更难操作。随着技术的进步,其中一些权衡将变得不那么明显,用户可能能够在不增加复杂性的情况下获得更多控制权。然而就目前而言,不同的公司和项目正在可控性和复杂性之间探索不同的位置,希望为他们的目标用户找到“最佳位置”。

在选择钱包时请记住,即使您没有看到如下这些取舍,它们仍然存在。例如,许多钱包将试图减轻用户的通道管理负担。为此,他们引入了所有钱包自动连接的中央 hub 节点。虽然这种权衡简化了用户界面和用户体验,但它引入了单点故障 (SPoF),同时这些中心节点对于钱包的运行变得不可或缺。此外,依赖这样的“集线器”会降低用户隐私,因为集线器知道发送者,并且可能(如果代表用户构建支付链路)还知道用户钱包每笔付款的接收者。

在下一节中,我们将回到我们的第一个用户,并介绍她的第一个闪电钱包设置。她选择了一个比简单托管钱包更复杂的钱包。这使我们能够展示一些潜在的复杂性并介绍高级钱包的一些内部工作原理。您可能会发现您的第一个理想钱包是面向易用性的,接受一些可控性和隐私性的折中权衡。或者,您可能更像是一个高级用户,并希望运行您自己的闪电网络和比特币节点作为您钱包解决方案的一部分。

下载安装一个闪电钱包

在寻找新的加密货币钱包时,您必须非常小心地考察软件源码的安全性。

不幸的是,许多假钱包软件会偷走你的钱,其中一些钱包甚至会进入信誉良好且经过审查的软件网站,如 Apple和Google应用程序商店。无论您是安装第一个钱包还是第十个钱包,都要格外小心。 流氓钱包不仅可以窃取您委托给它的任何资金,还可以通过破坏您的移动设备操作系统来窃取其他应用程序的密钥或密码。

Alice使用的是 Android 设备,她将从 Google Play 商店下载和安装 Eclair 钱包。在 Google Play 上搜索,她找到了“Eclair Mobile”的条目,如图所示Eclair Mobile in the Google Play Store.

Eclair wallet in the Google Play Store
Figure 1. Eclair Mobile in the Google Play Store
Tip

使用比特币测试网,可以零风险地试验和测试所有比特币相关的软件(除了您自己的时间)。 您还可以通过访问 Google Play 商店,下载 Eclair 测试网钱包以试用闪电网络测试网。

Alice 在此页面上注意到一些不同的元素,这些元素可以帮助她确定这很可能是她正在寻找的正确的“Eclair Mobile”钱包。

  • 首先,ACINQ组织 [2] 被列为这个移动钱包的开发者,Alice从她此前的研究中知道这是正确的开发者。

  • 其次,该钱包已安装“10,000+”次,获得超过320条好评。这不太可能是潜入 Google Play 商店的流氓钱包。

  • 第三步,她访问 ACINQ 网站。她通过检查地址是否以 https 开头或在某些浏览器中以挂锁为前缀来验证网页是否安全。在网站上,她前往“下载”部分或查找 Google App Store 的链接。她找到链接并单击它。她看到这个链接将她带到了 Google App Store 中的同一个应用程序。对这些发现感到满意,Alice 在她的移动设备上安装了 Eclair 应用程序。

Warning

在任何设备上安装软件时,请务必小心谨慎。有许多伪造的加密货币钱包不仅会窃取你的钱,而且还可能危及你设备上的所有其他应用程序。

创建一个新钱包

当 Alice 第一次打开 Eclair Mobile 应用程序时,她可以选择“创建新钱包”或“导入现有钱包”。 Alice 将创建一个新钱包,但让我们首先讨论一下为什么在此处显示这些选项以及导入现有钱包意味着什么。

密钥托管职责

正如我们在本节开头提到的那样,Eclair 是一个非托管钱包,这意味着 Alice 拥有用于控制她的比特币的密钥的唯一保管权。这也意味着Alice负责保护和备份这些密钥。如果Alice 丢失了密钥,没有人可以帮助她找回比特币,它们将永远丢失。

Warning

使用 Eclair 移动钱包,Alice 可以保管和控制密钥,她负有保护密钥安全和备份密钥的全部责任。 如果她丢失了钥匙,她就失去了比特币,没有人可以帮助她从那次损失中恢复过来!

助记词

与大多数比特币钱包类似,Eclair Mobile 提供了一个助记词(有时也称为“种子”或“种子词”)供 Alice 备份。助记词由24 个英文单词组成,由软件随机选择,用作钱包生成密钥的基础。 在移动设备丢失、软件错误或内存损坏的情况下,Alice可以使用助记词恢复Eclair 移动钱包中的所有交易和资金。

Tip

这些备份词的正确术语是“助记词”。我们避免使用术语“种子”来指代助记词。尽管“种子”的使用很常见,但它是不正确的。

当 Alice 选择创建一个新钱包时,她会看到一个带有助记词的屏幕,类似于 New wallet mnemonic phrase 中的屏幕截图。

New Wallet Mnemonic Phrase
Figure 2. New wallet mnemonic phrase

New wallet mnemonic phrase中,我们特意隐藏了部分助记词,以防止本书读者重复使用该助记词。

安全的存储助记词

Alice 需要小心地以一种防止被盗但又避免意外丢失的方式存储助记词。 平衡这些风险的推荐方法是在纸上写两份助记词,每个单词都标有编号——顺序很重要。

一旦 Alice 记录了助记词,在她的屏幕上触摸“OK GOT IT”后,她将收到一个测验,以确保她正确地记录了助记词。 测验将随机要求三个或四个单词。 爱丽丝没想到会有测验,但因为她正确地记录了助记词,所以她没有任何困难地通过了。

一旦 Alice 记录了助记词并通过了测验,她应该将每个副本存储在单独的安全位置,例如锁定的办公桌抽屉或防火保险箱。

Warning

切勿尝试以任何偏离 安全的存储助记词 中的最佳实践建议,进行“DIY”安全方案。 不要将助记符切成两半、截屏、存储在 USB 驱动器或云驱动器上、加密或尝试任何其他非标准方法。 您这样做,是在冒永久损失资金的风险,来备份您的资产。 许多人失去了资金,不是因为盗窃,而是因为他们尝试了一种非标准的解决方案,却没有专业知识来平衡所涉及的风险。上文中的最佳实践建议,是经过专家仔细考虑的,适用于绝大多数用户。

在 Alice 初始化她的 Eclair 移动钱包后,她将看到一个简短的钱包使用教程,其中突出显示了用户界面的各种元素。 我们不会在这里赘述这个教程,但我们将在跟随 Alice 尝试购买一杯咖啡时,探索所有这些界面元素!

将比特币加载到钱包

Alice 现在有一个闪电钱包。 但它是空的! 她现在面临这个实验中更具挑战性的一个方面:她必须找到一种方法来获取一些比特币并将其加载到她的 Eclair 钱包中。

Tip

如果 Alice 已经在另一个钱包中拥有比特币,她可以选择将该比特币发送到她的 Eclair 钱包,而不是获取新的比特币以加载到她的新钱包中。

获取比特币

Alice有很多种方式来获得比特币:

  • 她可以在加密货币交易所,用她的本国货币来兑换比特币(例如美元)。

  • 她可以用现金,从朋友或比特币聚会上的熟人那里购买一些。

  • 她可以在她所在的地区找到一个 Bitcoin ATM机,它充当自动售货机,允许现金购买比特币。

  • 她可以提供她的技能或销售她的产品并接受比特币付款。

  • 她可以要求她的雇主或客户用比特币支付给她。

所有这些方法都有不同程度的难度,而且很多都需要付费。 按照当地的银行法规,有些还会要求 Alice 提供身份证明文件。 但是,通过所有这些方法,Alice 将能够获得比特币。

接收比特币

假设 Alice 找到了当地的比特币 ATM机,并决定用现金购买一些比特币。 A Lamassu Bitcoin ATM 中显示了由 Lamassu 公司制造的比特币 ATM机 的示例。 此类比特币 ATM机 通过现金槽接受本国货币(现金),并将比特币发送到使用内置摄像头从用户钱包扫描的比特币地址。

Lamassu Bitcoin ATM
Figure 3. A Lamassu Bitcoin ATM

要在她的 Eclair Lightning 钱包中接收比特币,Alice 需要将 Eclair Lightning 钱包中的比特币地址提供给 ATM。 然后,ATM 可以将 Alice 新购买的比特币发送到这个比特币地址。

要在 Eclair 钱包上查看比特币地址,Alice 必须滑动到标题为YOUR BITCOIN ADDRESS 的左侧列(请参阅 Alice’s bitcoin address, shown in Eclair),在那里她将看到一个方形条形码(称为 QR 码)和一串字母和下面的数字。

二维码包含下图显示的相同的字母和数字字符串,格式易于扫描。 这样,Alice 就不必输入比特币地址。 在截图 (Alice’s bitcoin address, shown in Eclair) 中,我们故意模糊了两者,以防止读者无意中将比特币发送到该地址。

Eclair bitcoin address QR code
Figure 4. Alice’s bitcoin address, shown in Eclair
Note

比特币地址和二维码都包含错误检测信息,可防止任何打字或扫描错误产生“错误”的比特币地址。 如果地址有误,任何比特币钱包都会注意到该错误并拒绝接受该比特币地址为有效地址。

Alice 可以将她的移动设备移到 ATM 机内,然后将其展示给内置摄像头,如Bitcoin ATM scans the QR code. 所示。在将一些现金插入插槽后,她将在 Eclair 中收到比特币!

Bitcoin ATM scans the QR code
Figure 5. Bitcoin ATM scans the QR code.

Alice 将在 Eclair 钱包的 TRANSACTION HISTORY 选项卡中看到来自 ATM 的交易。 尽管 Eclair 将在几秒钟内检测到比特币交易,但要在比特币区块链上“确认”比特币交易大约需要一个小时。 正如您在Alice receives bitcoin中看到的,Alice 的 Eclair 钱包在交易下方显示“6+ conf”,表示该交易已收到所需的最少六次确认,她的资金现在可以使用了。

Tip

交易的确认数量是自包含该交易的区块(包括在内)以来开采的区块数量。 六次确认是最佳实践,但不同的闪电钱包可以考虑在任意数量的确认后打开一个通道。 一些钱包甚至通过通道的质押量来调整区块确认数量。

尽管在此示例中 Alice 使用 ATM 获取她的第一份比特币,但即使她使用 获取比特币 中的其他任一方法,同样的基本概念也适用。 例如,如果 Alice 想通过出售产品或提供专业服务的方式来换取比特币,她的客户可以用钱包扫描比特币地址并用比特币支付给她。

Bitcoin transaction received
Figure 6. Alice receives bitcoin

同样,如果她向客户提供互联网服务并收取服务费,Alice 可以向她的客户发送带有比特币地址或二维码的电子邮件或即时消息,客户可以将这些信息粘贴或扫描到比特币钱包中,然后支付给她 .

Alice甚至可以打印二维码并将其贴在标牌上并公开展示以接收小费。例如,她可以在她的吉他上贴一个二维码,并在街头表演时收到小费![3]

最后,如果 Alice 从加密货币交易所购买比特币,她可以(并且应该)通过将她的比特币地址粘贴到交易所网站来“提取”比特币。 然后交易所将比特币直接发送到她的地址。

===从比特币网络到闪电网络

Alice 的比特币现在由她的 Eclair 钱包控制,并已记录在比特币区块链上。 此时,Alice 的比特币是 链上的,这意味着该交易已经广播到整个比特币网络,由所有比特币节点验证,并记录到比特币区块链上。

到目前为止,Eclair Mobile 钱包只起到比特币钱包的作用,Alice 还没有使用 Eclair 的闪电网络功能。 与许多闪电钱包一样,Eclair 通过充当比特币钱包和闪电钱包来连接比特币和闪电网络。

现在,Alice 已准备好开始使用闪电网络,将她的比特币脱链,以利用闪电网络提供的快速、廉价和私密的支付方式。

闪电网络通道

向右滑动,Alice 访问 Eclair 的 LIGHTNING CHANNELS 部分。 在这里,她可以将她的钱包连接到闪电网络的通道。

让我们现在回顾一下 LN 通道的定义,以便对它更清楚一些。 首先,“通道”这个词是对Alice的闪电钱包和另一个闪电钱包之间的_金融关系_的隐喻。 我们称其为通道,因为它是 Alice 的钱包和另一个钱包在闪电网络(链下)上相互付款的一种方式,而无需向比特币区块链(链上)提交交易。

Alice 打开通道的钱包或节点称为她的 通道成员。 一旦“打开”,一个通道就可以用来在 Alice 的钱包和她的通道节点之间来回发送许多付款。

此外,Alice 的通道的另一端,可以通过其他通道进一步将付款转发到闪电网络。这样,只要 Alice 的钱包能够找到一条可行的路径,通过从一个通道跳到另一个通道,一直到 Bob 的钱包,Alice 就可以向任何钱包(例如 Bob 的闪电钱包)进行路由付款。

Tip

并非所有通道对端,都是用于路由支付的优质对端。 连接良好的通道端,将能够通过较短的路径将付款路由到目的地,从而增加成功的机会。 拥有充足资金的通道,也将能够进行更大额的支付路由。

换句话说,Alice 需要一个或多个通道将她连接到闪电网络上的一个或多个其他节点。 她不需要构建通道来将她的钱包直接连接到 Bob’s Cafe 以便向 Bob 发送付款,虽然她也可以选择打开一个直接通道。 闪电网络中的任何节点都可以用于 Alice 的第一个通道。 节点连接得越好,Alice 可以接触到的人就越多。 在这个例子中,由于我们还想演示支付路由,我们不会让 Alice 打开一个直接连接到 Bob 钱包的通道。 相反,我们将让 Alice 打开一个连接良好节点的通道,然后使用该节点转发她的付款,并根据需要通过任何其他节点将其路由到 Bob。

起初,没有打开的通道,所以我们在 LIGHTNING CHANNELS tab 中看到,LIGHTNING CHANNELS 选项卡显示一个空列表。 如果您注意到,在右下角有一个加号 (+),这是一个打开新通道的按钮。

LIGHTNING CHANNELS tab
Figure 7. LIGHTNING CHANNELS tab

Alice按下加号并显示四种可能的打开频道的方法:

  • Paste a node URI

  • Scan a node URI

  • Random node

  • ACINQ node

“节点 URI”是标识特定闪电节点的通用资源标识符 (URI)。 Alice 可以从她的剪贴板粘贴这样的 URI,也可以扫描包含相同信息的 QR 码。 节点 URI 的示例在 Node URI as a QR code 中显示为 QR 码,扫描后显示为文本字符串。

Lightning node URI QR code
Figure 8. Node URI as a QR code
node URI
0237fefbe8626bf888de0cad8c73630e32746a22a2c4faa91c1d9877a3826e1174@1.ln.aantonop.com:9735

虽然 Alice 可以选择一个特定的闪电节点,或者使用“随机节点”选项让 Eclair 钱包随机选择一个节点,但她最终决定选择 ACINQ 节点选项,并连接到 ACINQ 连接良好的闪电节点之一。

选择 ACINQ 节点会稍微降低 Alice 的隐私,因为它会让 ACINQ 能够看到 Alice 的所有交易。 它还会造成单点故障,因为 Alice 只有一个通道,如果 ACINQ 节点不可用,Alice 将无法付款。 首先,为了简单起见,我们将接受这些折中。 在后续的章节中,我们将逐步学习如何获得更多的独立性,并做出更少的取舍!

Alice 选择 ACINQ 节点并准备在闪电网络上打开她的第一个通道。

====打开一个闪电通道

当 Alice 选择一个节点来开一个新通道时,她需要选择填写分配到这个通道的比特币数量。 在随后的章节中,我们将讨论这些选择的含义,但目前,Alice 将把她几乎所有的资金都分配给通道。 由于她必须支付交易费用才能打开通道,因此她将选择一个略低于她总余额的金额。

Alice将她总共0.020 BTC 中的 0.018 BTC 分配给她的频道,并接受默认费率,如 Opening a Lightning channel 所示。

Opening a Lightning Channel
Figure 9. Opening a Lightning channel

一旦她点击 OPEN,她的钱包就会构建特殊的比特币交易打开一个闪电通道,称为_质押交易_。链上质押交易被发送到比特币网络进行确认。

Alice 现在必须再次等待(参见Waiting for the funding transaction to open the channel)交易被记录在比特币网络上。 与她用来获取比特币的初始比特币交易一样,她必须等待六次或更多次确认(大约一小时)。

Waiting for the Funding Transaction to Open the Channel
Figure 10. Waiting for the funding transaction to open the channel

一旦质押交易被确认,Alice 到 ACINQ 节点的通道就打开了,资金充足,并且准备好了,如 Channel is open 所示。

Channel is Open
Figure 11. Channel is open
Tip

您是否注意到通道质押量似乎发生了变化? 没有!通道包含0.018 BTC,但是在截图之间的时间里,BTC汇率发生了变化,所以美元价值不同。您可以选择以 BTC 或美元显示余额,但请记住,美元值是实时计算的,并且会发生变化!

使用闪电网络购买咖啡

Alice 现在已经准备好开始使用闪电网络了。 如您所见,等待确认需要一些工作和一些时间。 但是,现在后续操作快速而简单。 闪电网络无需等待确认即可付款,因为资金可以在几秒钟内结算。

Alice拿起她的移动设备,跑到她附近的 Bob’s 咖啡馆。 她很高兴尝试她的新闪电钱包并用它来买东西!

Bob’s 咖啡馆

Bob 有一个简单的销售点 (PoS) 应用程序,供任何想要通过闪电网络使用比特币支付的客户使用。 正如我们将在下一章中看到的,Bob 使用流行的开源平台 BTCPay Server,该平台包含电子商务或零售解决方案的所有必要组件,例如:

  • 使用 Bitcoin Core 软件的比特币节点

  • 使用 c-lightning 软件的 Lightning 节点

  • 用于平板电脑的简单 PoS 应用程序

BTCPay Server 使安装必要的软件、上传图片、上传产品价格以及快速开设商店变得简单。

在 Bob’s Cafe 的柜台上,有一台平板设备显示您在 Bob’s point-of-sale application 中看到的内容。

Bob’s Point-of-Sale Application
Figure 12. Bob’s point-of-sale application

闪电支票

Alice从屏幕上选择了拿铁咖啡选项,屏幕显示了一张 闪电 发票(也称为“付款请求”),如 Lightning invoice for Alice’s latte 中所示。

BTCPay Server Lightning invoice
Figure 13. Lightning invoice for Alice’s latte

为了支付发票,Alice 打开她的 Eclair 钱包并选择 TRANSACTION HISTORY 选项卡下的 Send 按钮(看起来像一个向上的箭头),如 Alice selecting Send 所示。

Lightning transaction send
Figure 14. Alice selecting Send
Tip

术语“支付请求”可以指比特币支付请求或闪电支票,术语“支票”和“支付请求”经常互换使用。 正确的技术术语是“闪电支票”,不管它在钱包中是如何命名的。

Alice 选择“扫描支付请求”选项,扫描平板电脑屏幕上显示的二维码(见Lightning invoice for Alice’s latte),提示确认支付,如Alice’s send confirmation

Alice按了PAY按钮,一秒钟后,Bob 的平板电脑显示支付成功。 Alice 完成了她的第一次 LN 付款! 它快速、便宜且简单。 现在她可以享用她的拿铁咖啡了,该拿铁咖啡是通过快速、廉价和去中心化的比特币支付系统购买的。 从现在开始,Alice 只需在 Bob 的平板屏幕上选择一个项目,用她的手机扫描 QR 码,点击 PAY,就可以在几秒钟内获得一杯咖啡,而且无需链上交易。

Lightning transaction send confirmation
Figure 15. Alice’s send confirmation

闪电支付对 Bob 来说也更好。 他有信心无需等待链上确认,便可认为 Alice已经为她的拿铁咖啡付费了。 未来,每当 Alice 想在 Bob’s Cafe 喝杯咖啡时,她都可以选择在比特币网络或闪电网络上用比特币支付。 你觉得她会选择哪一个??

总结

在本章中,我们跟随Alice下载并安装了第一个闪电钱包,获得并转移了一些比特币,打开了她的第一个闪电通道,并通过她在闪电网络上的首次付款买了一杯咖啡。 在接下来的章节中,我们将了解闪电网络中的每个组件在幕后是如何工作的,以及 Alice 的付款是如何到达 Bob 的咖啡馆的。


1. Andreas M. Antonopoulos, Mastering Bitcoin, 2nd Edition, Chapter 1 (O 'Reilly)
2. ACINQ: Developers of the Eclair Mobile Lightning wallet (https://acinq.co).
3. It is generally not advisable to reuse the same Bitcoin address for multiple payments because all Bitcoin transactions are public. A nosy person passing by could scan Alice’s QR code and see how many tips Alice has already received to this address on the Bitcoin blockchain. Fortunately, the Lightning Network offers more private solutions to this, discussed later in the book!