闪电网络

来自非小号百科
Doge留言 | 贡献2024年12月9日 (一) 02:08的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

闪电网络(Lightning Network,LN)是位于比特币之上的“第 2 层”支付协定[1]。 旨在实现参与节点之间的快速交易,并已被提议作为比特币可扩展性问题的解决方案。 该方案有点对点系统,可通过双向支付渠道网络对加密货币进行小额支付,而无需委托保管资金[2]

闪电网络
所构想的支付信道网状网络路由。
原作者 Joseph Poon, Thaddeus Dryja
开发者 Elements Project (Blockstream)

Lightning Labs ACINQ MIT DCI

预览版本 1.0 RC(2017年12月6日,​6年前)
编程语言 C语言, Go, Scala
类型 密码货币
许可协议 Apache许可证
网站 lightning.network

闪电网络的正常使用包括通过向相关基础区块链(第 1 层)提交资金交易来打开支付通道,然后进行任意数量的闪电网络交易,更新通道资金的暂定分配,而不将这些交易广播到区块链,可选地随后通过广播结算交易的最终版本来关闭支付渠道以分配渠道的资金。

要结算付款,必须关闭通道。为了启动这一过程,一个节点向网络广播最新的结算交易。接下来的事件可以大致以两种方式来考虑,一种是双方确认分配并立即结算资金的合作关闭,另一种是不合作关闭。不合作的关闭可能是合法的,例如,如果一个节点不再是网络的一部分或欺诈性的一个节点广播过时的、不正确的分布。在不合作的关闭中,资金不会立即结算,但存在一个争议期,在此期间节点可能会质疑广播分发。如果第二个节点广播更新的分发,则资金将完全转移给他们。这种惩罚性行为被称为违约补救交易,它可以防止节点试图通过广播过期交易来欺骗网络。

发展历程[编辑 | 编辑源代码]

2015年2月,Joseph Poon 和 Thaddeus Dryja 发布了闪电网络白皮书的草稿。

2018年,Lightning Labs 推出了闪电网络,目标是减少加密货币交易的成本和时间。具体来说,比特币区块链每秒只能处理大约 7 笔交易(相比之下,Visa 公司每秒可以处理大约 24,000 笔交易)。尽管闪电网络最初备受关注,但社交媒体上关于交易失败、安全漏洞和过于复杂的报道导致人们的兴趣下降。

2018年7月,闪电网络得到了移动支付创业家 Jack Dorsey 的认可[3]

2017年莱特币的第一笔闪电交易[编辑 | 编辑源代码]

2017年5月10日,Blockstream 的 Christian Decker 在非测试网络上进行了第一次完整、安全的闪电支付, 以及莱特币上的第一次闪电支付,发送了在区块链上通常不可能或经济的微观支付,完全结算在几分之一秒。

2019 比特币闪电火炬[编辑 | 编辑源代码]

2019年1月19日,推特上一位化名为 hodlonaut 的用户开始对闪电网络进行类似游戏的促销测试,向受信任的收件人发送 100,000 satoshis(0.001 比特币),每个收件人添加 10,000 satoshis(当时为 0.34 美元)发送给下一个受信任的收件人。 “闪电火炬”的支付惠及知名人士,包括 Twitter 首席执行官 Jack Dorsey、莱特币创造者 Charlie Lee、Lightning Labs 首席执行官 Elizabeth Stark 和 Binance 首席执行官“CZ”赵长鹏等。 在达到之前硬编码的 4,390,000 satoshis 限制之前,闪电火炬被传递了 292 次。闪电火炬的最后一笔款项于2019年4月13日作为捐赠 4,290,000 聪(当时为 217.78 美元)捐赠给委内瑞拉比特币的非营利组织,该非营利组织在委内瑞拉推广比特币。

2021年在萨尔瓦多采用[编辑 | 编辑源代码]

2021年6月,萨尔瓦多立法议会投票通过立法,使比特币在萨尔瓦多成为法定货币。 该决定基于 El Zonte 的比特币海滩生态系统的成功,该生态系统使用了基于 LN 的钱包。政府推出了一个使用闪电网络协议的钱包,同时让公民可以自由使用其他比特币闪电钱包。

设计[编辑 | 编辑源代码]

Andreas Antonopoulos 将闪电网络称为第二层路由网络。 支付通道允许参与者相互转移资金,而无需在区块链上公开他们的所有交易。 这是通过惩罚不合作的参与者来完成的。打开通道时,参与者必须提交一个金额(在区块链上的资金交易中)。 CheckSequenceVerify 和 CheckLockTimeVerify 等基于时间的脚本扩展使惩罚成为可能。

交易双方通过开启支付通道并将资金提交到相关的一层区块链(如比特币)上的智能合约中来使用闪电网络。双方随后可以进行任意数量的闪电网络链下交易,这些交易会更新通道资金的临时分配情况,但不会广播到区块链上。当双方完成交易会话后,他们关闭支付通道,智能合约根据交易记录分配提交的资金。

关闭通道时,一个节点首先将当前交易记录的状态广播到网络,包括一个结算提议,即提交资金的分配方案。如果双方都确认该提议,资金将立即在链上支付。另一种情况是非合作关闭,例如一个节点从网络中掉线,或者广播了不正确(可能是欺诈性)的交易状态。在这种情况下,结算会延迟并进入争议期,期间节点可以对提议提出异议。如果第二个节点广播了一个带有更新时间戳的分配方案,其中包含第一个提议遗漏的交易,则所有提交的资金将转移到第二个节点名下。这种惩罚性违约补救交易可以阻止节点通过广播过期交易来欺诈另一方。

如果我们假设比特币区块链上有一个庞大的通道网络,并且所有比特币用户都通过在比特币区块链上打开至少一个通道来参与这个图表,那么就有可能在这个网络内创建近乎无限量的交易。过早在比特币区块链上广播的唯一交易是与不合作的渠道交易对手。

CheckSequenceVerify (CSV) 比特币改进提案详细说明了如何使用 CSV 实杂凑时间锁定合约并在闪电网络中使用:BIP 0112[4]

优势[编辑 | 编辑源代码]

与链上交易相比,使用闪电网络有几个声称的未来好处:

  • 原子交换(Atomic Swap):原子交换由 Tier Nolan 于2013年在 BitcoinTalk 论坛上首次引入。Nolan 通过使用跨不同类型区块链的简单加密货币交易概述了跨链加密货币交换的基本原则。快进到2017年9月,当 Litecoin 创始人 Charlie Lee 在 Twitter 上宣布成功执行 Litecoin 和比特币之间的原子交换时,原子交换引起了整个加密货币社区的关注。
  • 粒度(Granularity):根据 Andreas Antonopoulos 的说法,闪电网络的一些实现允许小于比特币基础层上的最小单位 satoshi 的支付。 支付给闪电网络中间节点的路由费用通常以毫秒或 msat 计价。
  • 隐私(Privacy):个人闪电网络支付的细节不会公开记录在区块链上。 闪电网络支付可以通过许多连续的通道进行路由,每个节点运营商都可以通过他们的通道看到支付,但如果不相邻,他们将无法看到这些资金的来源或目的地。
  • 速度(Speed):闪电网络交易的结算时间不到一分钟,可以以毫秒为单位。 相比之下,比特币区块链的确认时间平均每十分钟发生一次。
  • 交易吞吐量(Transaction throughput):协议下每秒可以发生的支付量没有基本限制。交易量仅受每个节点的容量和速度限制。

限制[编辑 | 编辑源代码]

闪电网络由两个节点之间的双向支付通道组成,结合起来创建智能合约。如果任何一方放弃通道,通道将关闭并在区块链上结算。开启和关闭闪电通道所需的链上交易限制了闪电网络的可扩展性。如果多个彼此信任的用户共享一个闪电节点,这种限制可以得到缓解。

由于闪电网络的争议机制的性质,要求所有用户不断地观察区块炼是否有欺诈行为,因此发展了“瞭望塔(Watchtower)”的概念,可以将信任外包给瞭望塔节点以监控欺诈行为。在收到请求后,有 24 小时的时间用来创建一个双向通道。

路由[编辑 | 编辑源代码]

如果交易双方之间没有开通双向支付通道,则必须通过网络进行支付。这是使用类似于 Tor 的洋葱路由技术完成的,要求付款的发送者和接收者有足够的共同点来找到付款路径。 实际上,一条简单的路线如下所示:

  • Bob 想向 Alice 支付 1 BTC,但 Bob 和 Alice 没有相互开放的通道。
  • Bob 确实有一个与 Carol 开放的频道,而 Alice 也有一个与 Carol 开放的频道
  • 为了进行支付,Bob 向 Carol 发送 1 BTC,然后 Carol 向 Alice 发送 1 BTC

关于路由的原始白皮书建议“最终,通过优化,网络将看起来很像第 1 层 ISP”。

案例[编辑 | 编辑源代码]

BOLT(闪电技术基础)规范于2016年底起草。 做了几个实作:

  • Lightning Labs 在 Go 中的 lnd 实现
  • Blockstream 在 C 中的核心闪电实现
  • ACINQ 在 Scala 中的 eclair 实现
  • 其他语言(例如 Rust 和 F#)的其他社群专案(例如“rust-lightning”和“DotNetLightning”)。Stakenet 基于闪电网络的去中心化交易所(称为 Stakenet DEX)
  • MIT Digital Currency Initiative 在 Golang 中使用自己的非 BOLT 相容协定的非商业实作

应用[编辑 | 编辑源代码]

Bitfinex 和 Kraken 等加密货币交易所使用它来实现存款和取款。 Laszlo Hanyecz 因2010年为两个披萨支付 10,000 比特币而在加密货币社区声名鹊起,他在2018年使用闪电网络又购买了两个披萨并支付了 0.00649 比特币。

参考链接[编辑 | 编辑源代码]