闪电网络路由:正和博弈中的隐私与效率

  • kingonly
  • 发布于 2019-07-13 19:38
  • 阅读 15

本文详细介绍了闪电网络中的路由机制,包括其隐私性和效率方面的挑战与改进方案,涉及基础概念如节点、通道、洋葱路由,以及未来可能采用的跳板支付和蚂蚁路由技术。

两点之间最短的距离是直线。这一点众所周知。但事实上并非如此——至少在数学抽象的欧几里得宇宙之外,情况并非如此。任何见过闪电的人都知道,闪电并不是直线传播的。相反,闪电会根据所遇到的阻力,在空间中从一个点移动到下一个点,自动找到最高效的路径,每次移动一个微小的片段。

挺美的,不是吗?(来源:wikimedia

Lightning Network 上的支付也面临着类似的挑战,但网络并没有内置像自然界那样的优化程序。Lightning(我们现在讨论的是网络)需要大量的思考、代码和适应,才能尽可能健壮和高效。在这篇文章中,我们将解释支付路由在 Lightning Network 上是如何工作的,哪些方面仍需改进,以及未来的路由技术。

当前路由的现状

首先需要注意的是,路由已经在 Lightning Network 上有效运行。事实上,它运行得非常好。在 AndroidiPhone 上也是如此。

基础知识:节点、通道、洋葱

Lightning Network 的基本构建模块是节点和连接它们的支付通道(即边)。一个节点可以是任何用户、商家或 LSP支付通道将(某些)节点连接到(某些)其他节点。

自然,网络上的每个节点都至少连接到一个其他节点,但像你的轻客户端这样的特定节点不太可能与其他特定节点(比如 Tschego 和 Lonny,他们的蜜蜂在约翰内斯堡这一边产的蜂蜜最好)之间有开放的通道。在区块链上打开一个新的支付通道是一个链上交易,因此为每个新的对手方打开一个通道会违背二层网络的目的。因此,任何两个未连接的节点之间的支付最好是找到通过一系列现有支付通道的路径。

你和他们或他们美味的蜂蜜没有连接,但有人是连接的。(来源:wikimedia

当前路由的工作原理

目前,Lightning 使用源路由和洋葱路由。在源路由中,源节点负责计算从源到目的地的整个路由。为此,源节点需要下载所有公共支付通道的整个图,以计算路由,同时考虑沿途所有通道的容量、费用成本和所需的跳数。这个过程涉及大量 P2P 交易数据,而且随着网络的发展,数据量只会增加。

Lightning 还实现了洋葱路由,这大大增强了隐私性,它的工作原理如下:假设我想向 Adam 发送一笔支付,但我们之间没有共享的支付通道。然而,我与 Nick 共享一个通道,Nick 与 Jameson 共享另一个通道,Jameson 与 Andreas 共享另一个通道,Andreas 与 ̶V̶i̶t̶a̶l̶i̶k̶(开玩笑!)Adam 共享一个通道。那么,

  1. 我将支付锁定在一个盒子里,再将这个盒子锁定在一个更大的盒子里,里面有一把钥匙和接收者的地址。
  2. 我将第二个盒子锁定在一个更大的盒子里,里面有一把钥匙和上一个节点的地址。
  3. 重复操作,直到从我到 Adam 的盒子、钥匙和地址(即交易)链完成。

当我将最大的盒子发给 Nick 时,他会打开盒子,找到下一个盒子和 Jameson 的地址。他会将其发送给 Jameson,Jameson 可以用他的钥匙打开盒子,并找到带有 Andreas 地址的下一个盒子。Andreas 会用下一把钥匙打开盒子,并找到带有 Adam 地址的最后一个盒子。他将其转发给 Adam,Adam 有最后的钥匙并接收支付。

工程师看到这个,想到的是洋葱。人们却说他们缺乏想象力!(来源:wikimedia

每个节点只知道前一个节点和后一个节点的地址,但没有人能够重组整个链或识别最终的接收者是谁。这就是洋葱路由:在需要知道的基础上进行中间转移。

Tor 进一步提升了用户隐私。通过洋葱路由,中间节点基本上是不知情的,但发送者仍然可以访问接收者的 IP 地址和大致的地理位置。Tor 完全隐藏用户的 IP 地址,因此网络上的其他人都无法知道他们的身份或位置——即使是直接通道伙伴。

在失去隐私之前,很容易忘记隐私的价值。(来源:reddit

归功于 PBMC 的更高效率

由于交易如果未能迅速完成可能会过期,提升交易速度可以提高 Lightning 的有效性和效率。最初,如果一个节点或边导致路由尝试失败,算法会在短暂的忽略后失去所获得的知识。如果没有一种方法来存储和使用这些信息,后续的支付和并发“在途”支付可能会在路由计算中考虑失效的节点,浪费时间和数据。

基于概率的任务控制(PBMC)通过从过去的成功中学习来解决这个问题。每个节点现在都从一个默认的成功概率开始,根据其实际完成转移的速率进行增减。网络守护程序路由的支付越多,它对网络特征的了解就越多,未来路由支付的能力也就越强。

未来的路由

随着 Lightning Network 的成熟,其开发者从现有实现中学习,他们往往不再将基本功能、效率和隐私视为三个不同的问题。相反,每项新开发都会考虑到路由的这三个方面,并寻求它们之间的最佳平衡。

跳板支付

如上所述,网络扩展将增加图的规模,使源路由变得不适用于带宽和存储有限的移动节点。跳板支付是一种提议的方法,通过将路由外包给“跳板节点”来减少它们的数据和计算负担。

跳板节点简而言之是包含完整网络图的 Lightning 节点,它们负责从支付者到接收者的路由。每个轻客户端只需要连接到一个可靠的跳板节点,而无需下载和不断更新网络图。支付会从一个跳板节点跳到下一个跳板节点,直到到达预期的接收者。

跳板支付提供了与实物相同的效率提升,但不会那么有趣。(来源:djromanj

然而,将路由外包给跳板节点会带来隐私风险:为了路由支付,它们需要知道发送者和接收者。但在技术上线之前,已经有一个有前景的提案来解决隐私问题。

这个想法是使用两层洋葱包裹:一层包含发送者和接收者,另一层包含随机选择的一系列跳板节点。与洋葱路由的一般情况一样,路径上的每个节点只能访问其所需的路由信息。而且随机链使得任何中间节点都难以辨别敏感信息。主要的缺点是增加节点之间的跳数会提高交易费用,但 10 倍约等于零的数仍然是约等于零。

蚂蚁路由

当侦查蚁在随机找到食物后返回巢穴时,它会留下一条其他蚂蚁可以跟随的信息素路径。路径使用得越频繁,它的吸引力就越强。但当食物源枯竭时,这条路径就会蒸发。蚂蚁随机和有序行为的结合,在信息和通信稀缺的情况下产生了最优路径。等等!

如果你想找到最优路径,不要走人迹罕至的路。(来源:wikimedia

蚂蚁的聪明行为启发了 Cyril Grunspan 和 Ricardo Pérez-Marco,他们在努力消除 Lightning Network 上的层级,让所有节点执行所有功能。他们的“蚂蚁路由”工作原理如下:

  1. 两个节点生成一个大的随机数,并各自生成一个“信息素种子”(即部分哈希值),需要对方的信息素种子来重新组合这个数。
  2. 它们分别向邻居广播各自的信息素种子。
  3. 当一个节点接收到信息素种子时,它会检查网络中是否存在该种子,以及其邻居是否已经接收到它。
  4. 如果节点发现它接收到的是一个的种子,它会将其存储在网络的 mempool 中,并将其传递给邻居。
  5. 当两个部分种子在网络中某个位置匹配时,它们会从邻居到邻居回溯路径,直到发送者和接收者连接,使得支付得以进行。

在每个节点确定的某段时间后,所有关于确认种子的本地数据都会被清除(就像信息素蒸发一样!),然后所有交易数据会在短时间内被删除。如果在可用时间内没有找到路径,交易就简单地失败了。

由于每个节点只需要知道传递种子的邻居,作者声称该算法保留了发送者和接收者的匿名性。他们还声称他们的提案消除了本地存储网络图的需求,这将大大减少涉及的数据量,并扁平化网络结构。然而,每个节点都需要进行一些额外的计算。

蚂蚁路由可能是另一种在提高隐私和效率的同时扩展 Lightning Network 的好方法。

  • 原文链接: blog.breez.technology/li...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
kingonly
kingonly
江湖只有他的大名,没有他的介绍。