作者:tony
来源:https://delvingbitcoin.org/t/stable-channels-peer-to-peer-dollar-balances-on-lightning/875
1. 背景和引言
各位好。我想展示一个我正在开发的开源项目,叫做 “Stable Channels(稳定通道)”。这个项目的主要目标是为闪电网络带来以比特币为储备的美元余额。另一个目标则是给闪电网络带来更多比特币和兴趣。
简单来说,稳定通道通过闪电通道来匹配 BTC 空头(法币稳定性的需求方)和 BTC 多头(法币稳定性的供给方)。然后,基于定期更新的 BTC-USD 汇率,我们非常频繁地结算聪,这样每一方都可以得到自己想要的东西。这样一来,我们就创造除了一种以比特币为担保品的合成美元余额,位于通道的一端;通道的另一端则是带有杠杆的看涨仓位。
稳定通道解决了比特币的采用中的一个主要障碍:价格波动性。与比特币相对,中心化的稳定币给了用户稳定的价值存储,并且稳定币也是一个巨大且还在成长的市场。即便如此成功,中心化的稳定币依然有系统性风险。中心化的稳定币对外依赖于中心化的银行和债券托管商。他们有被黑、银行挤兑、资产冻结、资产没收和强制关停的风险。
我们可以,也应该,在去中心化的仅使用比特币的轨道上提供更好的稳定性工具。而且,我们做到这一点的同时还能保持比特币的自主保管哲学。这些去中心化的解决方案,比如稳定通道,若想要长期生存并发展壮大,将需要采用与中心化的稳定币显著不同的形式。
在介绍稳定通道的机制以前,还有几件重要的事要回顾。首先,稳定通道的想法,你可能觉得耳熟。没错,早在 2015 年,Arthur Hayes 就在博客中提到,可以通过撮合 BitMex 交易所中的比特币多头和空头来创建合成美元。在 2019 年, Dan Robinson 在一文和另一文中提出了 “Rainbow Channels(彩虹通道)” 的理论。彩虹通道将使用 “连续不断的结算”,让用户可以通过支付通道 “交易、借入和贷出”。在当前的比特币生态中,也有 10101 这样的初创公司,使用 DLC 来实现类似的东西。
其二:如果我们想尝试让一些比特币保持(对美元)价值稳定,那么我们可能只能得到一个模糊的近似。为什么呢?因为市场上的比特币价格变化是以秒计或者以分钟计的,但比特币的结算,若要获得中终局性,只能以分钟或者以小时计。即使以最高的精度设计,当一笔结算交易得到区块确认时,比特币的价格可能已经大涨或者大跌。当然,闪电通道可以有所帮助。
其三,也是最后一条:这是一个复杂的话题。我不会在这里讲解所有细节,但我希望开始讨论,并且感谢任何反馈。
2. 稳定通道:基本提议
这就开始吧。我的提议是什么呢?如前所述,稳定通道软件的方法是连续不断地结算,从而尽可能减少你在任何一个检查点(checkpoint)的对手方风险。
稳定通道有两类用户:收到稳定价值的一方,以及,提供稳定价值的一方。这两类用户都运行稳定通道软件,与自己的闪电电节点(或者能够与软件安全交互的其它东西)一起运行。
- 收到稳定价值的一方。他们希望比特币(相对于一种参考资产,比如美元)的价格敞口小一些。比如说:Alice 拥有 1 BTC ,希望得到小一些的 BTC 价格波动性/敞口(相对于美元)。Alice 希望其 1 BTC 的价值锁定在 62000 美元(我们假设 BTC 的现价就是 62000 美元)。
- 提供稳定价值的一方。他们希望比特币(相对于一种参考资产,比如美元)的价格敞口大一些。比如:Bob 拥有 1 BTC ,但希望 BTC (相对于美元)的价格波动性/敞口再大一些。Bob 希望使用这 1 BTC 作为保证金,来放大自己的比特币价格敞口。
我们将这两类用户匹配到一条闪电通道中。Alice 和 Bob 各自向通道投入 1 BTC ,我们开启一条双向注资通道。这条通道的总容量是 2 BTC,并且在一开始是一条平衡的通道。
现在,我们已经准备好运行稳定通道软件的定期节目了。每一分钟,程序都会查询 5 个不同的价格信息源:BitStamp、CoinGecko、Coindesk、Coinbase,以及 Blockchain。我们取中值,以容纳其中一个或两个偏离正常值或被劫持的故障。
在我们取得最准确的价格之后,可能是以下三种情形之一:
- BTC 的美元价格下跌。 那么,需要更多 BTC 才等价于 62000 美元。因此,稳定性供给方在通道中给稳定性需求方支付。
- BTC 的美元价格上升。那么,只需更少 BTC 就等价于 62000 美元。 因此,稳定性需求方在通道中给稳定性供给方支付。
- 价格没有变化,因此也不需要支付。
结算的过程会不断运行。假设参与者基本都是合作的,那么在稳定性需求方这一端,我们就创造出了一种合成美元余额。通道两端的参与者都得到了自己想要的东西:收到稳定价值的一方得到了稳定性,提供稳定价值的一方则得到了看多比特币的杠杆。当然,如果价格变化不利于他们,任何一方都可能失去是比特币。但如果价格变化对他们有利,那么任何一方都可能获得更多比特币。就是这样。
请注意:这些都是普通的闪电通道。不论你认为这是好是坏,这个结算过程不涉及 DLC、没有断言机(oracle)数字签名(只有从交易所查询价格的 HTTPS 请求/响应)、没有 token、不修改闪电通道 合约/脚本、没有法币,也没有银行。每一方都保持自主保管,并且随时能离开。因为这是一个持续不断的、自愿的过程,其中显然有舍有得,我们以后会讨论。
3. 实现上的挑战和机会
当前,这个程序在搭配 CLN 时,是作为一个 Python 语言的插件;搭配 LND 则是一个单独的 Python app 。代码中的主要函数是处理价格信息源、处理支付和会计逻辑,以及风险管理。
过去半年的经验表明,这个解决方案面临跟今天的比特币和闪电网络类似的使用体验和操作性难题。 我只简要提及,熟悉这个领域的听众自然能懂:你需要运行一个闪电节点,而闪电节点软件用起来很复杂;你还需要让节点保持联网,还有许多微妙的边缘情形;备份很复杂、私钥需要保持在线,可能会遇上手续费高涨,等等。那么好的一面是,未来的闪电网络如有更新和升级能够缓解这些 UI/UX 痛点,那么本解决方案也能受益。
然后,我们来讨论一些风险因子、攻击界面以及可能的缓解措施。首先,哪怕是在双方极为配合的情形中,如果比特币的价格暴跌,通道中的比特币数量可能不够,不足以让这套稳定机制生效。比如说,如果双方都在比特币的价格为 62000 美元时投入 1 BTC 到通道中,然而比特币的价格跌去了 50% ,那么现在整条通道的 总容量 也不值 62000 美元了,因此任何一方都不可能持有 62000 美元的稳定价值了。如果是友好的参与者,希望保持这项交易安排,那么也许能够发起一次通道拼接操作来处理这种类似于需要追击保证金的情形。而反过来,如果 BTC 的美元价格上涨,就总是有充足的比特币来让稳定性需求方获得稳定的美元价值。但我们务实地说,友好的参与者的节点也可能会下线,这种情形在闪电网络上时常发生。
如果参与者不合作,那会有什么风险呢?不合作的参与者有多种办法可以利用这个系统。最显然的是,他们可以等待价格变得有利于他们,然后在价格突然反向变动时拒绝支付。稳定通道的一些特征可以缓解这种风险。首先,攻击者需要先支付,才能开始玩这个游戏。攻击者需要先锁定资金到通道中,祈祷有这样重大的获利机会出现。攻击者也需要支付链上交易手续费。其次,在非合作关闭通道的情形中,攻击者可能需要等待几天乃至数周,才能拿回放在通道中的资金。其三,攻击者可能需要支付持续的服务费获得利息(详见下文)。最后,攻击者自己也有可能被攻击。
实际上,考虑到这些失败情形,稳定通道是诚心合作且声誉良好的通道对手之间的最佳选择。闪电网络基本上符合这个条件。闪电网络使用声誉、身份和过往记录来评估通道对手方的可信度。这在稳定通道上可能也行得通,声誉可以协助合作行为,并形成交易条款和合同持续时间的标准。
另一种缓解通道对手突然采取不轨行为的方法是使用移动平均值价格,而不是现货价格。这样就可以平滑化比特币价格波动的不稳定性质,并降低错过结算机会的财务损失。移动平均值也可以放宽频繁结算的要求。还有另一种办法,是进一步缩短结算周期。不过,还有一种简单的策略,就是与多样的 交易伙伴/通道对手 达成合约,从而分散任何一个通道对手不合作所带来的负面影响。最后,“虚拟的稳定通道” —— 也就是在并不直接连接的闪电节点之间形成双向的交易合约,也许可以放在一个自由进入的子网络中 —— 也许能提供一个更平滑的解决方案,只要交易手续费不会将通道余额消耗殆尽。
这个无法消除的 “免费弃权” 问题究竟有多严重,取决于具体的市场结构和实现细节。稳定通道的作用并不是消除对手方风险,而是通过闪电通道所具有的高频结算的能力来尽可能降低风险。基本的思路是保持简单,这样即使在故障情形中,你也依然持有你的比特币。
还有一个没有清楚答案的问题是:“稳定性的需求方和供给方如何找到彼此呢?”当前,还没有一个市场能够匹配稳定性的需求方和供给方。这些市场可以是中心化的,比如一个网站或者一个手机 app 。也可以是去中心化的,比如说使用闪电网络上的 Liquidity Ads 消息,或者 nostr 帖子。或者各种方式多管齐下。所有这些即时通讯和订单簿协议都是相关的,多个平台齐头并进也是有意义的。
4. 进一步的分析和应用场景
本章节会给出更多金融方面的背景。有点复杂,想跳过就跳过。
首先,请注意,我们用比特币来保持的稳定价值的参考资产也可以不是美元,而是别的东西。只要一种资产具有可靠的价格信息源以及充足的流动性,那么它就可以成为一条稳定通道的候选参考资产。比如,稳定性接收方可能想要对欧元、黄金乃至 标普 500 指数保持价值稳定。同样地,在锚定 BTC 的美元价格的稳定性以外,我们可以提供多种面向比特币的产品。比如,移动平均值价格可以让用户获得比特币价格上涨的一部分好处,同时减小其下跌所带来的影响。从比特币的价格上涨中得到的好处越多,受到价格下跌的冲击也就越多。可以把这些产品理解为 —— 从追求稳定的一方看,是 “温和比特币”,而在稍微使用了杠杆的一方,则是 “狂暴比特币”。
哪怕是在同一条通道中,我们也可以改变,或者说重新定义仓位的性质,只要双方都愿意,这就给了我们 “交易” 这个应用场景。我来解释以下,假设稳定性接收方 Alice 希望保持 62000 美元的稳定价值 …… 那么另一种理解方式是,她将保持稳定的 “62000 美元以及 0 BTC” 价值。她也可以发送一条带有签名的消息给稳定性供应方,将她的仓位重新定义为这两种(或者更多)资产。这条发送给稳定性供应方 Bob 的消息可能是这样的:“请将我的仓位重新定义为 31000 美元和 0.5 BTC”。因为 “31000 美元和 0.5 BTC” 总价值依然等于 1 BTC ,而 Alice 刚好持有 1 BTC ,所以 Bob 也可以接受。他也许会收一笔手续费。这样一来,这个重新定义的过程就会生效,那么 —— 相等于 Alice “买入了” 0.5 BTC 。
总的来说,这些交易应用场景可能会给闪电网络带来流动性。想想看,基于 BTC-USD 交易对的衍生品是一个非常大的市场,比 BTC-USD 现货市场的规模大几个数量级。绝大部分时候,从我的观察来看,交易员们使用中心化的、托管的衍生品交易所来运行这些买卖。如果这些托管式交易所跑路、被黑或被关停,那么这些用户就会完蛋。而且,这些用户还要支付一笔可观的费率,才能使用他们存入交易所的比特币来实现杠杆交易。一般来说,72% 乃至更大比例的时间里,在这些交易所中,多头会给空头支付。年华利率通常在 10% ~ 20% 之间(Axiom 的网站有一篇很棒的文章讨论了这种现象)。
使用稳定通道和闪电网络,我们可以将这些利率支付做到定期结算程序中。这种理论可以帮助调节对这些通道的需求,并激励人们使用它。这部分利息也可以分割成很小的部分,在每次结算时支付给稳定性接收方。
当然,我们也可以为用户加入外部支付。我在搭配 CLN 的插件的最新版本中就加上了这一点。代码会监听通过通道来转发的支付,并相应降低确保稳定价值的数量。不过,这些支付的进入和离开会带来套利和攻击界面。
我们已经完成的另一个有趣的集成是使用 Chaumian eCash 系统 Cashu 。开发者 Star Builder、我和其他人帮助开发了一个 eCash 稳定美元 token ,其价值由一条稳定通道来担保。你可以在 Boardwalk Cash 上看到一个很棒的用户界面,并在 Umint mint 网站上了解 eCash 铸币厂。
使用 eCash ,就可以提供一种 “债务证明”,并且可以通过识别一条稳定通道的链上注资交易、并提供来自稳定性需求方和稳定性接收方对通道状态的签名见证,来出示一种 “储备证明”。你可以在上面链接的 Umint 网站看到这样的一个初步版本。
一个 eCash 系统提供了超过只使用闪电通道的许多好处。用户不需要像使用稳定通道那样运行一个闪电节点,也不需要全时在线。会有一些可扩展性和使用体验上的优势,我们也可以很快地启动并运行。只不过,eCash 系统是托管式的,铸币厂可能会跑路或被监管制裁。Fedimint 可以解决托管方面的一些问题。最后,显然,这里的 eCash token 也跟稳定通道一样,最终还是要市场接受才行。
5. 结论
稳定通道尝试重新想象闪电网络的能耐:闪电通道中的资金可以作为担保品,连续不断地持有衍生品仓位。这就是流式金融,使用比特币作为技术上的后端、担保品以及交易媒介。因为稳定币和衍生品交易是比闪电支付大得多的市场,稳定通道的才有可以帮助扩大闪电网络的容量和效用。
在我提到这个想法时,人们常常会说,“啊,这就是一种差价合约(contract for difference)”,或者,“这是一种期货合约、永续互换合约、永不交付的远期合约,blabla ……” 。emmm,稳定通道也许跟其中一些有相似之处, 但不是它们中的任何一个。稳定通道是比特币担保的、在闪电通道中结算的,这些特征给了它一些特殊性,任何开发闪电网络的人都不会认错。这些特殊性也需要比特币和闪电网络的开发者以特殊的办法来处理。
这当然有难度。不过,从我自己的经验来看,我们开发出来的软件,在友好的参与者和可靠的服务端之间工作得非常好。这是对闪电网络的开发者们多年的专注和递进的优化的证明。向你们致敬。
(完)