Revive: Rebalancing Off-lockchain Payment Networks 阅读笔记

Revive: Rebalancing Of-Blockchain Payment Networks(链下支付网络的再平衡)

一、文中总结的一些关键参考资料

  • Sprites(旨在解决最坏情况下的链外交易完成时间): Andrew Miller, Iddo Bentov, Ranjit Kumaresan, and Patrick McCorry. Sprites:Payment channels that go faster than lightning. arXiv preprint arXiv:1702.05812,2017
  • Flare(提出路由策略,旨在优化平均花费在确定付款路线上的时间): Pavel Prihodko, Slava Zhigulin, Mykola Sahno, Aleksei Ostrovskiy, and Olaoluwa Osuntokun. Flare: An approach to routing in lightning network. 2016
  • Duplex Micropayment Channels(双向微支付通道): Christian Decker and Roger Wattenhofer. A fast and scalable payment network with bitcoin duplex micropayment channels. In Symposium on Self-Stabilizing Systems, pages 3–18. Springer, 2015.
  • Bitcoin Lightning Network (闪电网络): Joseph Poon and Thaddeus Dryja. The bitcoin lightning network: Scalable off-chain instant payments, 2015
  • Raiden Network(雷电网络): Raiden network. http://raiden.network/
  • 线性规划: H.A. Eiselt and C.L. Sandblom. Linear Programming and its Applications. Springer
    Berlin Heidelberg, 2007.

二、论文重点内容摘录

在这里插入图片描述

  • 上图是一个不平衡支付网络的举例。简单来说, A → C → B A\rightarrow C\rightarrow B ACB 这条支付路径能够支付最多100的金额,而 B → C → A B\rightarrow C\rightarrow A BCA 这条支付路径不能进行任何金额的支付,问题就出现在C节点的通道余额不平衡。
  • 在作者这篇文章之前的支付网络平衡工作: Jameson Lopp. Lightning’s balancing act: Challenges face bitcoin’s scalability savior. http://www.coindesk.com/lightning-technical-challenges-bitcoin-scalability/
    在这里插入图片描述
  • 上图是树形结构的支付通道网,没有环形的通道,所以是无法运用,环路支付的方式进行Rebalance。
    在这里插入图片描述
  • 上图支付通道网络是存在环路结构的,所以是可以进行Rebalance的。

本文提出的Rebalance步骤:

  • P P P:参与者集合标识
  • p p p:参与者标识 , p ∈ P p\in P pP
  • T s T_{s} Ts:参与者形成一个自我再平衡网络的时间点
    在这里插入图片描述
  • 实线虚箭头:需要leader回应的请求,以便让参与者参与协议
  • 虚线虚箭头:参与者的回答
  • 实线实箭头:不需要回复的请求
  • leader的选择: 第一个leader选择时,要求该参与者的ID要是所有参与者集合里最小的,第二轮时将选择第二小的参与者,以此类推,遍历完所有参与者之后再从第一个参与者开始循环选择。
  • 上图的流程介绍:
    1. 参与者向leader发送请求Rebalance的信号
    2. leader向参与者发送Rebalance初始化请求
    3. 参与者向leader发送确认参与Rebalance的确认
    4. leader向参与者发送冻结通道的请求
    5. 参与者冻结自己的通道并确认Rebalance的具体目标
    6. leader向参与者发送完整的事务集
    7. 参与者签名确认后发给leader
    8. 如果参与者之间有异议产生的话就需要上链处理
  • Rebalance的具体步骤:
    1. Triggering(触发): leader 会等待网络中参与者的Rebalance请求,当请求的数量达到一定的伐值,则leader就会向参与者们发送启动Rebalance任务请求。
    2. Participation(参与): 参与者回复leader的启动请求,leader 制定并公布Rebalance的参与者名单,然后让名单上的参与者暂时冻结自己需要Rebalance的通道。
    3. Transaction Set Generation(生成事务集) 参与者回复leader自己已冻结的通道,然后参与者需要跟通道共同拥有者达成共识(包括:冻结通道,通道余额,Rebalance方向)。leader需要计算出一系列的交易,这些交易需要保证每个参与者的总余额不变,且按照参与者的要求去Rebalance。
    4. Consensus(达成一致): leader将事务集和成员列表以承诺的形式发送给所有节点进行验证和签名。当leader收到所有人的签名之后他就会把这些东西广播给所参与者,这时候参与者就可以考虑解除账户冻结了。
    5. Dispute(争议) 如果参与者对Rebalance的余额分配有异议的话,那么这个参与者就可以向链上进行申诉。总的来说如果在规定时间内leader以及所有参与者没有达成一致的话,那么他们的余额将会回到之前的最新状态。

Rebalancing Objectives:

  • Δ u , v \Delta_{u,v} Δu,v:表示在通道 u , v u,v u,v上, u u u所愿意接受的,v向他转移的最大金额。(资金转移方向: v → u v \rightarrow u vu
  • δ u , v \delta_{u,v} δu,v:表示在通道 u , v u,v u,v上,进行Rebalance之后, u u u将要收到 v v v的转移金额。(资金转移方向: v → u v \rightarrow u vu
  • 注意: δ a , b \delta_{a,b} δa,b δ b , a \delta_{b,a} δb,a是不能共存的,一个通道中重平衡方向只能是单向的。
  • ∀ u , v : ∆ u , v > 0 ∧ ∆ v , u < 0 ⇔ 0 ⩽ δ u , v ⩽ m i n ( ∆ u , v , − ∆ v , u ) ∀_{u,v}: ∆_{u,v}> 0 \wedge ∆_{v,u} < 0 \Leftrightarrow 0 \leqslantδ_{u,v} \leqslant min(∆_{u,v},−∆_{v,u}) u,v:u,v>0v,u<00δu,vmin(u,v,v,u) :
    1. ∀ u , v : ∆ u , v > 0 ∧ ∆ v , u < 0 ∀_{u,v}: ∆_{u,v}> 0 \wedge ∆_{v,u} < 0 u,v:u,v>0v,u<0 表示在 u v uv uv通道上,余额平衡的方向是由 v v v u u u转移金额。
    2. 0 ⩽ δ u , v ⩽ m i n ( ∆ u , v , − ∆ v , u ) 0 \leqslantδ_{u,v} \leqslant min(∆_{u,v},−∆_{v,u}) 0δu,vmin(u,v,v,u)表示当Rebalance事务执行完毕后, u v uv uv通道内 v v v u u u实际转移的金额是要大于0,小于u的期待值和v的欲付值中的最小值的。
  • ∀ u : ∑ v δ v , u = ∑ v δ u , v \forall u : \sum_{v}δ_{v,u}= \sum_{v}δ_{u,v} u:vδv,u=vδu,v
    这个公式应该是表示v这个节点得到的金额和失去的金额是相等的(自己的总余额在Rebalance前后是没有变化的)
  • Δ u , v \Delta_{u,v} Δu,v的计算公式: ∀ u , v : Δ u , v = 1 2 ( b a l u + b a l v ) − b a l u ∀u,v : \Delta_{u,v} = \frac{1}{2} (bal_{u}+ bal_{v}) − bal_{u} u,v:Δu,v=21(balu+balv)balu 化简后的公式为: Δ u , v = 1 2 ( b a l v − b a l u ) \Delta_{u,v} = \frac{1}{2}(bal_{v}-bal_{u}) Δu,v=21(balvbalu)
    这个 Δ u , v \Delta_{u,v} Δu,v并不是最终转移的金额,后面最后具体的转移金额是要用线性规划方法求解
  • (作者提到由于计算结果的精度很高,他们在处理数据时会将计算结果四舍五入,并假设造成的损失可以忽略不计)

从局部到整体的平衡假设:
在这里插入图片描述

  • 由于链下支付通道数量很庞大,作者提到很难通过一次协议的运行去Rebalance整个网络的通道,所以通过并行的平衡局部节点的方式去达到平衡整个网络的目的(但是效果会稍微差一点),上图便是从局部到整体的Rebalance假设示意图。
  • a图是协议运行前的状态,b是协议运行后的状态。
  • 方框旁边的虚线连接其他节点,绿色的无箭头边代表平衡的支付通道,红色带有箭头的边代表不平衡的通道。
  • 从上图可以看出左边本来很多不平衡的通道,在运行协议之后变成右图这种比较平衡的状态了。

协议安全性的分析:

  • 可能的攻击一: 领导者发布不公平的Rebalance事务集,让某些诚实的节点失去他们原本的余额。
    解决办法:每个参与者收到Rebalance协议之后,都会检查自己的总余额是否会变化,如果不会变化,那么他就会在协议上签名,如果变化了就不会在协议上签字,只有所所有参与者签字这个协议才会奏效,所以对于诚实的参与者来说是安全的。
  • 可能的攻击二:攻击者发布的Rebalance方案对一些合伙人有利对其他人不利。
    解决办法:任何感兴趣的参与者都将使用相同的随机种子重新求解线性规划,以验证商定的目标函数确实是优化的目标函数。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值