闪电网络的缺环:一个去中心化的流动性市场

2023-12-26 19:30

本文主要是介绍闪电网络的缺环:一个去中心化的流动性市场,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源 | 以太坊爱好者

责编 | Carol

Liquidity ads (ad 字面意义为 “广告”)是一个最近在 c-lightning v0.10.1 中实现的规范,是闪电网络的一个重要补充。它体量虽轻,却能让网络以去中心化的方式在网络中协调流动性部署,并保证可访问性。

Liquidity ads 解决了通过闪电网络来接收支付的一个常见问题:从何处以及如何获得入账流动性(inbound liquidity)。

实际上,补充入账流动性,是闪电网络中每个节点或多或少都要面对的问题。

为什么入账流动性很重

无论是要接收支付,还是路由支付,入账流通性都极为重要。

你的入账流动性总量,就是你能在闪电网络中接收的支付额的上限;这对于使用闪电网络的 供应商/服务商 来说,重要性不言而喻;对于普通的节点来说,也关系到可以获得的路由费总数。

总而言之,入账流动性的作用是:

  • 在闪电网络中接受流动性

  • 赚取路由费

入账流动性与路由费

在闪电网络中赚取路由费就是通过转介支付交易来获得手续费。这部分收获会累加在你的节点的通道的本地余额(local balance)中。

也就是说,你的闪电网络余额,会随着你把入账流动性转化为出账流动性而增加,且这一过程会在所有通道中发生。

这里,我们来考虑一个假想的例子,一个路由节点靠转介支付交易来赚取手续费。我们来看看他可以获得的路由手续费的数量,是如何被通道开启时的入账容量所限制的。

我们假设,这个节点一开始有两个通道,通道的余额使得支付交易可以在两个通道间穿梭,这个节点(<Node>)则居中路由。他的通道分别有 1000 聪的入账容量和 1000 聪的出账容量。

1000sats <----->  0sats <Node> 1000sats <-------> 0sats
<Node> 为两个通道设置了 100 聪(sat)的 “路由费”,也就意味着,每次有支付交易经过,<Node> 就要收取 100 聪。

如我们所见,随着转介次数的增加,节点的通道费将逐渐侵蚀其路由能力 —— 因为他净赚了转移资金的费用。

简单演示一下。假设我们通过这两个通道来回发送支付,每支付一次,都要给 <Node> 支付 100 聪。

那么,在开始时:

1000sats <----->  0sats <Node> 1000sats <-------> 0sats
然后我们用这两个通道来回发送支付交易。每一次我们都支付最大可支付的数额,所以第一笔我们支付 1000 聪,减去 100 聪的手续费之后,接收方得到 900 聪。
0sats <-----> 1000sats  <Node> 100sats <-------> 900sats. Payment of 900sats  800sats <-----> 200sats <Node> 1000sats <-------> 0sats.  Payment of 800sats  0sats <----->  1000sats <Node> 300sats <-------> 700sats. Payment of 700sats  600sats <-----> 400sats <Node> 1000sats <-------> 0sats.  Payment of 600sats  0sats <----->  1000sats <Node> 500sats <-------> 500sats. Payment of 500sats400sats <-----> 600sats <Node> 1000sats <-------> 0sats.  Payment of 400sats  0sats <----->  1000sats <Node> 700sats <-------> 300sats. Payment of 300sats  200sats <-----> 800sats <Node> 1000sats <-------> 0sats.  Payment of 200sats  0sats <----->  1000sats <Node> 900sats <-------> 100sats. Payment of 100sats
经过这么多次转介之后, <Node> 就没法在转介支付交易了。这个节点路由了 9 笔支付交易。

一开始,节点有 1000 聪的出账容量(也就是自己能花的钱)和 1000 聪的入账容量。

在转介了 9 笔支付交易之后,节点现在拥有了 1900 聪的出账容量和 100 聪的入账容量。

通过转介支付交易,你成功用这对状态通道赚到了 900 聪。我们的节点如果还想继续做路由交易的生意的话,就需要更多的入账容量了。

让流动性可获取、更便宜

某种程度上来说,每个节点都需要入账流动性。

因为这是运行一个闪电网络节点的基础部分 —— 只有节点能获得入账容量之时,闪电网络对他才有意义。

现在,补充入账容量有很多办法:

  • 使用闪电网络来买一些东西,可以获得入账容量

  • 使用像 Lightning Labs 的 Loop 或是 Boltz 这样的 loop out 服务,可以将资金从你的闪电网络节点推回你的链上钱包

  • 与朋友合议开启一个余额充足的通道

  • 使用第三方的布告栏(bulletin board)比如 LightningNetwork.plus

  • 从已知的服务商比如 LNBig 的流动性服务处购买入账容量

  • 找一个愿意通过中心化拍卖来出租入账容量给你的人

Liquidity ads 与这些方法都不相同:你是通过闪电网络的 gossip 网络找出节点来租用入账容量。

Ads (广告)是去中心化的,任何拥有一个公开通道的节点都可以创建一个并发送给网络上的每一个节点。租用广而告之的流动性非常简单,就是跟发布广告的节点开启一个通道。你也知道跟你开启通道的人是谁 —— 在开启租用之前,你可以看到对方都有哪些通道。

流动性不是同质化的

在闪电网络上,流动性不是同质化的,它们是嵌在网络中的,而网络由节点和他们的通道余额组成。

在一个流动性网络中,没有两条意义完全相同的通道 —— 每个通道都是独一无二的,连接起了网络的不同部分。新的通道对闪电网络通道图的影响也不完全相同。一个新加入的节点处在网络的哪个位置、最短路径的启发,也会因他连上的节点而有所不同。

换句话说:新创建的每个通道,都对一个节点在网络图谱中的位置有完全不同的影响。连上某个节点的一条新通道,可能让这个节点迅速靠近中心;而连上另一个节点可能对此毫无帮助。

如果不知道一条新的通道会在网络图谱的哪个位置,为这笔新的入账流动性定价是很难的。即使善意的第三方会尝试给不同对等节点的价值 “评级”,也很难准确估计来自一个未知节点的入账资金的价值。实际上,分辨具有哪些属性的节点是值得分配流动性与之建立通道的,仍然是一个未有定论的问题。

估计价值的困难,同样也使人们难以辨别哪些入账流动性是有价值的。

举个例子,如果我的节点在广告流动性,你怎么知道该给我付多少钱呢?

这个问题的答案会因节点而异,因为我所提供的流动性的价值,也部分取决于你的节点当前的流动性情形以及通道图谱中,你我的节点的相对位置。

我希望能看到一些服务商为不同的节点广告提供实时估价,并为谋求租用入账容量的节点量体裁衣。

权衡

Liquidity ads 是一种强大、轻量的方法,可协助入账流动性在闪电网络所有节点间的部署。然而,关于布告栏方法,仍有一些要点需要强调。

优点:

  • 只需提交一笔链上交易来租用入账流动性。不需要将资金预先锁定在拍卖账户中。

  • 任何带有一个公开通道的节点都可以创建一个广告。

  • 在租用开始之前,你可以知道自己的通道对手的情形。

  • 租用可持续一个月(4032 个区块)

  • 部分租用条款可在链上强制执行 *

  • 通道对手会为租用资金转介支付交易的手续费承诺一个上限

缺点:

  • 无法保证流动性可用。对手可能用尽了资金,或者无法为你提供足够的数额

  • 出租资金的节点必须提前决定资金的费率(没有即插即用的拍卖机制来决定它的价格)。不过,这可以通过第三方服务来缓解,他们可以帮助你拍下可用流动性,然后用 dual-funded/liquidity ad 来执行。

  • 流动性的市场可能更为碎片化,因为任何人都可以在任何时间向你请求流动性。

  • 你必须自己调查为你提供流动性的对等节点。

* 租用的资金会用 CSV(相对时间锁)锁在一个 to_remote 输出中。

『声明:本文为作者独立观点,不代表区块链大本营立场,本内容仅供广大区块链技术相关爱好者科普学习和交流,不构成投资意见或建议,请理性看待,树立正确的理念,提高风险意识。文章版权和最终解释权归作者所有。』

原文链接:

https://medium.com/blockstream/lightnings-missing-piece-a-decentralized-liquidity-market-a0bb47534a4f

更多阅读推荐
☞iPhone 13 Pro或将取消256GB;小米汽车正式注册;亚马逊将在全球范围内招聘5.5万名员工|极客头条☞谁说技术男不浪漫!90后程序员2天做出猫咪情绪识别软件☞邹欣对话MongoDB CTO:新数据库时代将带来什么?

这篇关于闪电网络的缺环:一个去中心化的流动性市场的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/540573

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor