干货 | 雷电网络的动态调解费用

曾汨   |     |   185 次阅读

在雷电网络中,一位用户可以从相互连接的支付通道中找到一条路径来向另一位用户付款。在这条选定的付款路径上,付款方和收款方之间的节点就是调解节点,可以赚取调解费。

这类调解费的收费模式可以设计得五花八门,通常会受少许几个参数的影响。良好的调解费模式设计可以激励通道平衡(译者注:即保证各节点都有一定的可用余额,以提高路由成功的概率),从而促进代币网络的健康发展。因此,要想支付通道网络能够良好运行,定义一个恰当的调解费框架很重要。

在本文中,我们将深入了解雷电网络当前实行的调解费机制是怎样的,用户如何根据自己的需求修改调解费,以及哪些设计标准是纳入考虑范围之中的。

设置调解费的目的

如上文所述,调解费可以激励用户通过参与转账调解来创建并维护一个健康的网络。用户可以通过调解转账来收回参与网络的全部(或部分)成本,甚至于还有可能实现盈利。

调解费所覆盖的成本可以分为两大类:

  1. 客户端特定(本地)费用部分,例如,收回包括运营费、为开设支付通道而锁定为押金的代币,以及视各自商业模型而定的附加费用等在内的基础成本。
  2. 性能部分:根据支付通道的容量和首选的通道平衡分布方案(应付款通道 vs. 应收款通道),不同客户端对一些调解节点的激励可能会超过另一些。

介绍雷电网络的调解费框架

了解了这些之后,我们实行了如下所示的调解费框架:

  • 虽然调解费是通过发送付款的(应付款)通道支付的,计费过程中不能只考虑到应付款通道,还应考虑接收付款的(应收款)通道。

  • 因此,调解费(MF_total)可通过应收款通道费(MF_in_channel)和应付款通道费(MF_out_channel)之和来建模:

  • 这两种通道费(MF_in_channel、MF_out_channel)均为固定费用(即与交易规模成正比的费用)和(考虑了首选通道余额的)失衡费用之和:


  • 失衡费用 F 取决于已选定的 失衡罚款(Imbalance Penalty, IP),其公式如下所示:

IP 是一种可由调解节点任意选择的函数,表示了调解节点愿意支付多少钱来让支付通道达到最佳状态。

在该框架下,每个客户端都能设置常量(const_flat 和 const_prop),并根据自己的需求为应收款通道和应付款通道定义依赖于容量的 IP 函数。F 既可以是正数,也可以是负数,因此可以用来作为一种激励工具,甚至用来补贴一些付款。

虽然设置常值参数只需要输入单个数字,但是 IP 函数表现为一组呈线性插值关系的 X 值和 Y 值。

利用这个 IP 函数以及通过线性插值推导出实际值的方法,能够得出各种不同的函数。在当前模型中,只有调解节点可以赚取调解费。从理论上来说,如果在路由过程中考虑了收付款双方的 IP ,那么二者都会受益,不过为了避免过于复杂,暂且略过了这一点。

失衡费用的初步实现

在初步实现中,失衡费用可以用一个二次函数来描述,失衡费用的机制就是希望每一个通道都处在理想状态。我们认为,这样设计的失衡费用可以作为大多数用户的默认选择,而且在更多样的策略实现之前也是个不错的起点。

如上文所述,IP 函数表示了调解节点愿意支付多少钱(以绝对值计)来避免通道容量不理想的情况。如果调解节点想要占用的通道容量为 5 ,而该支付通道的总容量实际为 10 (也就是说这条通道可以双向转移最多 5 个代币),IP 函数则如下图所示:

如果转移 3 个代币,把通道容量从 6 变为 9 ,最后算得的失衡费用是:

请注意,从理论上来说,也可以用其他函数代替二次函数来决定失衡费用,而无需对协议进行任何修改。

在雷电网络客户端中设置调解费

调解费的所有组成部分都是默认关闭的,可以通过在命令行中指定参数来对它们进行设置(参见雷电网络的帮助页面):

  • 固定费用(flat-fee):每次调解所需收取的固定费用(以最小单位的调解代币计,例如,用 wei 作单位来收取 WETH 的手续费)。
  • 正比费用(proportional-fee):调解费是按照调解金额的百万分率(10^-6)来计算的。
  • 最大失衡费用(max-imbalance-fee):设置最坏情况下的失衡费用(以最小单位的调解代币计)。最大失衡费用指的是失衡罚款二次函数的有效值范围的最高点。

就目前而言,必须修改代码才能为不同的支付通道设置不同的费用,不过这一点在协议层上是完全支持的,也就是说,就当前的客户端而言,所有支付通道都使用的是同一组参数。

调解费模型背后的决策依据

虽然固定费用和正比费用这一划分非常清晰,而且是调解费模型常用的划分方法,但是我们并没有止步于此。

调解费模型的设计目标是将调解费作为一种激励转账的工具,以此促进整个网络的健康发展。 要实现这一目标,可以通过提供较低的转账费来平衡支付通道。

为了恰当解释支付通道失衡的原因,我们必须考虑到每一个调解节点的应收款通道和应付款通道。一个节点的应收款通道就是另一个节点的应付款通道,不过不同的节点对于什么是平衡的支付通道可能有不同的看法。因此,不是在所有情况下都能依靠对手方来平衡支付通道的。

我们认为,一个支付通道平衡与否没有一个客观的评判标准:如果一名用户主要利用支付通道向他人付款,但是很少利用它来收款,那么他可能更希望支付通道能够朝着自己常用的付款方向扩容。如果是一个依靠运行调解节点来盈利的用户,那么他可能更偏好那种双向容量相当的支付通道。为解决这类问题,我们使用了失衡罚款(IP)函数,表示节点愿意支付多少钱来让支付通道达到最佳状态。每一次转账,我们都会通过计算 IP(c_after) -IP(c_before) 来得出失衡费用。

长远来看,失衡费用对每个调解节点来说都是一场零和博弈:纵观整个支付情况,调解费中的失衡费用部分并不会抬高总成本,因为它增加的费用和减少的费用相当。因此,从整体的转账情况来看,引入失衡费用既不会抬高也不会降低成本。然而,失衡费用确实会改变所有转账之间的费用分配情况,激励那些能够改进通道状态的转账,从而改进通道状态的平均水平。

调解费的未来

尽管很难对此做出预测,而且调解费需视各个网络的拓扑结构和实际的付款路径而定,但是我们希望上述调解费模式能够行之有效,也有可能会为了适应具体要求和不断变化的情况而对其进行调整。

调解费模式的研究是永无止境的,我们一开始采用的是最简单且最经济的模式。我们会一如既往地对其进行公开讨论,并且探索如何把它与其他模式相融合。

如果你对调节费研究以及其他解决方案感兴趣的话,我们推荐以下阅读材料:

此外,你可以阅读这篇文档来了解雷电网络调解费的详细信息,或者看一下具体的代码实现

我们希望你能喜欢这篇关于雷电网络调解费模式的短文。你还想了解雷电网络的其他哪些部分?可以给我们留言,也许会是我们下一篇博文的主题。

雷电网络团队

请关注我们的 TwitterMedium,并加入我们在 RedditGitter 上 的讨论。

雷电网络项目是由 brainbot labs Est 领导的。

免责声明:请注意,虽然我们尽最大的努力来确保所提供信息的质量和真实性,本文可能会出现一些个人偏见、错误或疏忽之处,本文作者及代表机构概不负责。涉及到经济术语(如“支付”、“支票”、“货币”、[价值]“转移”)的论述和概念仅用于阐述技术原理,并不一定符合现实世界或法律上的定义。


原文链接: https://medium.com/raiden-network/dynamic-mediation-fees-in-raiden-explained-dbc29f032e4b
作者: Raiden Network
翻译&校对: 闵敏 & 阿剑

本文由原作者授权 EthFans 翻译及再出版。


你可能还会喜欢:

科普 | Raiden Network — Ethereum 区块链支付通道
引介 | 雷电网络:愿景,挑战与路线
干货 | 雷电 FAQ

 
0 人喜欢