Lot49协议

一种轻量级协议,用于激励移动点对点通信

摘录:
https://globalmeshlabs.org/

https://global-mesh-labs.gitbook.io/lot49/

本白皮书描述了我们的开源计划,包括激励支付和数据,以鼓励网络中的节点成功交付。用户互相支付,而不是集中的ISP或移动运营商,以提供基本的通信服务。Lot49建立在为比特币闪电网络开发的技术的基础上,通过在需要的时间和地点激励覆盖范围和容量来推动网状网络的采用。

摘要:Mesh网状网络为集中式载波和移动通信的ISP提供了一种去中心化的替代方案。为了优化成功的消息传递,并提高网络覆盖和可靠性,mesh网状节点需要一个系统来激励对等网络节点的中继行为。我们为消息发送者提出了一种信任最小化协议,以便与传递其消息的mesh网状节点交换激励价值。我们的方法是创建一个基于比特币闪电网络[12]的支付信道网络(PCN),但适用于极低带宽的ad hoc移动网络,因此也适用于受限较少的mesh网状拓扑。为了减少激励协议开销,我们建议使用签名聚合,单支付信道更新和在直接通信范围内的mesh网状节点之间形成的支付信道。节点主要交换支付以激励他们的数据传输,而无需互联网连接。只有当节点不经常建立,检查点或关闭支付渠道时,他们必须将支付数据中继到mesh网状连接的互联网网关。该提议要求比特币社区采用Schnorr签名[17]和SIGHASH_NOINPUT签名哈希标志[43]协议更新。

介绍 Introduction

据估计,全球人们每天发送超过800亿条移动消息[1]。移动消息多年来一直是全球移动电话最受欢迎的用途之一[2]。但是,消费者必须依靠少数大公司来提供移动通信服务。许多集中式移动运营商和互联网服务提供商(ISP)也是地区或国家垄断企业。由于这种集中化,这些服务可以被审查和监督,特别是跨越政治边界。在自然灾害或人为灾害期间,物理上集中的基础设施也容易发生灾难性故障,而且往往无法为最后一英里的社区提供服务。尽管大多数人拥有可以彼此直接通信并绕过集中式基础设施的移动电话,但存在这些问题。

移动ad-hoc网络(又作“临时网络”、“自组网”,MANET)为集中式运营商和ISP的问题提供了一种很有前景的解决方案。随着智能手机的出现,人们现在拥有为移动mesh网状网络供电并以完全对等的方式相互通信所需的技术。在mesh网状网络中,数据直接传输到附近人员的设备,这些人员将数据中继和路由到达目的地。但是为了具有与集中式网络相同的效用,网状网络必须提供类似的覆盖和可靠性。

移动mesh网状网络需要去中心化的方式来确保中继和网关节点在需要的时间和地点运行,以优化覆盖范围和可靠性。我们提出了一种协议,允许数据发送者可交换,可货币化的token支付数据传递中及中继节点。接收token的节点可以使用它们来激励自己的数据传递或向他人出售多余的token。这允许人们在为网络增加价值时获得激励。

1.1相关工作 Related Work
早期以去中心化方式组织移动mesh网格节点的工作集中于在设备和游戏理论解决方案中嵌入安全硬件模块[3] [4]以鼓励节点合作。这些方法主要侧重于防止路由不当行为[5],而不是创建激励来增加mesh网状网络的覆盖范围和可靠性。

一些后来的提案[6]引入了支付以激励中继行为,但要求受信任的第三方(TTP)保留支付余额的账本。比特币[7]的出现,一个公开区块链的去中心账本系统,使得有可能消除TTP [8],但不会因为扩展问题而处理链上的高交易量[9]。支付信道[10] [11]和最近的支付通道网络(PCN)如Lightning Network [12]的发明现在允许在没有TTP和使用不可信中继节点的情况下有效地结算大量微支付。最近的激励mesh网格项目[13] [14]使用支付通道支付附近的节点,以提供互联网接入和带宽。这些项目激励某种服务质量(QoS)来传输大量数据,而不是为每个传输的数据包收费。

例如,Althea Mesh [13]假设节点之间有固定的定向WiFi链路。高带宽链路意味着协议开销可以忽略不计,并且假设节点通过网关间接访问互联网以建立和结算相对长期的支付渠道。这些条件适用于固定无线社区网络(WCN)[15],旨在取代有线互联网连接,但不适用于MANET。

移动网状设备依赖于电池电源和全向传输,这些传输可以在较低的带宽范围内进行权衡。由于节点移动,ad hoc临时网络中的网络拓扑将不会长久存在。mesh网状子网可能与互联网网关隔离,因此互联网连接可能是间歇性的。这些约束要求开销被无情地最小化,因为每次传输都需要电能并使用与附近节点共享的无线电频谱。即使没有立即可用于设置和结算的互联网访问,支付通道也必须可用。

屏幕快照 2019-06-14 下午8.02.14.png

无线社区网络(WCN)和移动Ad hoc网络(MANET)之间的差异摘要。

概览

2.1 目标Goals
我们提出了一种新的支付通道通信协议,旨在激励甚至在低带宽MANET上传递消息。 我们通过减少在节点之间进行支付所需的传输开销来实现这一目标。 我们的协议还可以在未连接到互联网时最大限度地减少mesh网格节点之间所需的信任。

2.2 途径Approach


image.png

图1:Mesh节点是承担不同角色的对等节点。在该示例中,节点A正在向目的地节点D发送数据(即,SMS),并且节点B和C正在中继数据。一旦节点D确认收到消息,任何人都可以通过中继节点E和连接到互联网的中继/网关节点F将发送给中继的签名激励支付交易发送到证人节点G.节点G在全局分布式账本上结算这些交易。

图1:Mesh节点是承担不同角色的对等节点。在该示例中,节点A正在向目的地节点D发送数据(即,SMS),并且节点B和C正在中继数据。一旦节点D确认收到消息,任何人都可以通过中继节点E和连接到互联网的中继/网关节点F将发送给中继的签名激励支付交易发送到证人节点G.节点G在全局分布式账本上结算这些交易。

为了减少必须通过网关转发到互联网的支付费用,我们使用聚合签名方案来维护加密安全性,但只需要一半的签名数据。签名数据是无法比量或压缩交易的最大部分。签名者在本地协商一个聚合签名而不是发送两个签名(每个签名者一个)来确认交易,从而减少了签名数据。这也降低了链上交易费用。

在节点之间建立了支付通道之后,它们只需要在本地相互通信以更新其通道的状态。我们使用有效的提交方案将付款人提交到新的通道状态,而不需要付款接收人回复,直到他们有证据表明消息已送达。这大大减少了总传输开销。

我们有必要向互联网传输最小信息来重建用单个聚合签名的每个隐含交易。一小组预定义的交易类型还减少了必须传输以重建每个隐含交易的信息。

支付到mesh网状中继和互联网网关的由数据发送方预付,并且仅在目的节点返回由发送方创建的秘密值时才有效。这确保中继节点仅仅为成功传送的数据。目的地节点在确认收到数据时也会获得价值,以确保他们合作完成交易。

我们的系统建议使用互联网连接的见证节点来有效地验证不直接连接到互联网的mesh网状节点的支付通道设置和结算交易。没有互联网连接的节点通过网关节点进行通信,网关节点都连接到mesh网状网和互联网。所有其他交易在直接通信范围内的mesh网状节点之间本地协商,作为支付通道更新。如果通道未合作关闭,则会缓存最新的通道更新以供稍后在线结算。

2.3 协议Protocol

在任何mesh网状网络中,节点将消息发送到包括报头和数据有效载荷的附近节点。有效载荷数据可以是从SMS消息到任意互联网协议分组的任何内容。报头包含有关如何将数据有效负载路由到目标节点的信息。附近的中继节点在将消息路由到目的地时读取和修改标头信息。

我们的激励协议在现有行为为基础,并添加额外的标头信息以创建和更新节点之间的支付通道。我们还为数据有效负载添加了一个加密,只能由目标节点显示;类似于为闪电网络提出的自发付款[45]。如果节点已经与另一个节点建立了支付通道,他们可以授权对该节点进行支付,以换取它将一些数据中继到目的节点。每个中继节点承诺沿着路由支付下一个节点并使用相同的传送条件。每个节点建议支付少于它们收到的下一个节点来传输数据;差异代表他们为转发数据而获得的价值。每次支付更新必须满足某些条件才有效。主要支付条件是最终目的地节点通过揭示从数据获得的秘密来确认数据的接收。

image.png

图2:在该示例中,节点A在时间T1经由节点B和C向节点D发送数据。 节点A和B,B&C和C&D具有相互建立的支付通道,并且最初在通道中具有相等的余额。 如果节点D接收数据,则节点A建议增加节点B的平衡。 节点B和C对其下一跳提出类似的建议。

一旦接收到数据,目标节点就将加密值发送回满足主要支付条件的数据发送方。 该付款收据由中继数据的节点使用,以相互更新其支付通道的状态。

当两个节点之间尚不存在支付通道时,必须对其进行设置和资助。资助新通道的交易无法在mesh网格节点之间进行本地确认,因为它涉及可能已承诺资助不同通道的付款。这些交易必须在比特币网络依赖之前由比特币网络直接确认。

mesh网状网络连接节点必须使用互联网网关来访问比特币网络,但与低带宽网络相比,与区块链的状态保持同步是不切实际的。相反,mesh网格节点查询它们信任的见证节点。证人节点持久地连接到互联网,因此他们可以以低带宽方式监视和报告感兴趣的交易的当前状态。如果他们真实地报告区块链的状态,证人节点将获得付款。通过在节点具有在线访问权限时检查底层区块链数据或使用多个独立的Witness节点,可以对它们负责。

  1. 概念 Concepts

3.概念下面我们描述我们的协议使用的基本概念。那些已经熟悉当前比特币闪电网络的人也可以跳到附录A,了解这些变化的技术概述

3.1聚合签名
比特币网络使用椭圆曲线数字签名算法( Elliptic Curve Digital Signature Algorithm,ECDSA)来签署将比特币从一个地址转移到另一个地址的交易。通过检查相关的ECDSA签名来验证交易。即使其他细节的交易可以推断或重建,签名也必须由授权交易的实体提供。因为我们希望针对低带宽通信通道优化我们的协议,所以我们关注如何减少授权交易的签名的大小。

特别是,我们想要一种减少具有多个签名者的交易的签名大小的方法。多重签名[18]提供了一种解决方案,用于将来自单个消息上的两个或多个签名者的签名组合成单个签名。此技术可以显着减少通信多签名交易所需的数据量。

遗憾的是,没有有效的方案来聚合ECDSA签名,因此比特币交易的签名聚合提议需要新的签名算法。Schnorr签名算法已经为支持比特币[17]提出了,并且除其他外,还将为MuSig [18]多重签名方案提供支持。使用MuSig减少通信开销的一个问题是它需要签名者之间的多轮交互。还提出了Schnorr签名的非交互式半聚合[19]的建议,但会随着每个签名的增加而增大的签名。

BLS [20] [21]签名方案也被建议作为创建比特币交易的多重签名的解决方案[22]。 BLS签名也可用于一般签名聚合[23]。不幸的是,比特币由于其更复杂的安全假设和更高的验证计算要求,不太可能采用BLS签名。尽管BLS签名需要更多计算来验证签名,但计算相对于为移动设备传输数据而言相对较少耗电和耗时[24]。对于低带宽移动网状网络,通过使用签名聚合实现的数据传输的减少来证明基于配对的签名方案(例如BLS)的增加的验证时间是合理的。

我们讨论了在附录D中使用Schnorr多重签名和BLS签名聚合的权衡。我们的结论是Schnorr多重签名对该协议具有最佳技术权衡。

3.2支付通道

支付通道[10] [11]用于在节点之间进行本地双向支付。它们将必须在分布式账本上结算的交易减少到设置和结算交易。更新在节点之间直接交换的交易以修改共享多重签名地址中的当前值分割不需要立即传送到互联网连接的比特币节点。使用比特币区块链直接验证节点之间的许多小型转移将需要每次付款到互联网访问。使用支付通道,价值被锁定在共享交易输出中,两个节点都必须授权从中获取任何支出。节点直接协商如何划分存储在共享交易输出中的token。节点只需要在完成付款后将最终余额拆分与发送到区块链的最终结算交易进行通信。

image.png

图4:在时间t1,节点B通过将退款交易签署回节点A来建支付通道。在时间t2,节点A通过签署建立交易来为通道提供资金以及UpdateAndSettle交易的两个路径以提供新的通道来打开通道。状态更新到节点B.为了有效,该交易需要节点B的签名和证明消息m被加密传递。节点B可以在时间t3通过添加它们自己的签名和证明它被传送的消息的加密来更新交易状态。在时间t4,如果节点B呈现证明传递新加密消息,则节点A可以签署最终的关闭交易以使得最终传输到节点B而没有延迟。

支付通道交易使用编码规则的脚本来更新和解决节点之间的值分割。这些规则包括超时,以便如果一个节点停止响应,另一个节点可以最终确定最近结算的拆分。调整此超时是为了防止恶意节点尝试完成过期余额更新。在我们的使用中,结算交易还需要证明已经传递了消息。这使得通道更新仅在关联的消息传递成功时才有效。

image.png

图5:UpdateAndSettle输出脚本的伪代码,必须满足从支付通道交易(例如,Tx0,AB)支出。在提交最后一个通道更新1周后,第一个路径从共同控制的事务传输令牌。AB被同时被节点A和节点B控制,如果新交易状态大于旧状态并且节点D已经显示与消息m1相关联的原像,则第二路径立即将所有值传送到由节点A和B控制的新Tx1。如果更新交易在1周延迟之前签名并结算,则更新到通道的下一个状态(具有不同的值拆分)使旧的结算交易无效。

我们的支付通道基于Decker-Russell-Osuntokun eltoo通道[25]并假设一个条件输入脚本,它可以将token合作转移到具有较新状态的地址,或者在一段延迟后单方面解决该通道(图5)。

例如,节点A承诺通过签署解决交易来支付节点B将数据m1中继到消息目的地节点D通过签名结算交易解锁由Tx0控制的余额,AB用输出脚本UpdateAndSettle(图6)。如果节点B交易结算一周后结算支付通道可以在资助Tx0,AB的交易结算一周后结算支付通道。由交易Tx0,AB结算,token将基于分配(例如,7到节点A和13到节点B)则节点A承诺向节点B付费,如果数据m1被传递。


image.png

图6:伪代码Settle输入脚本仅在包含来自节点A和B的状态0的结算公钥的签名并且自上次更新交易以来已过去1周时才有效。即使节点A没有响应,只要节点B有证据表明节点A也签署了交易并且节点D的签名为m1证明它已经被传送,那么节点B可以在一周后结算支付通道。 但是,如果节点B希望提交具有节点A的新标记分组,则节点B可以简单地向节点A证明它们具有针对m1的节点D的签名。 然后,两个节点都可以安全地协商新的拆分,该拆分假设先前商定的结算拆分已得到确认。 现在,节点A可以使用相同的UpdateAndSettle输出脚本签署新交易,并具有更新的状态。 节点A将签署对新分组的提交,该分组向节点B支付更多token,即先前的分割以证明某些新数据被传递到目的节点。

image.png

图7:伪代码更新输入脚本立即将值从先前状态转移到由节点A和B控制的新状态,如果它包括来自节点A和B的签名,节点D的消息m1的秘密以及新的状态交易大于当前交易。通过这种方式,节点可以在它们之间进行任意多次双向传输,而无需互联网访问来连接到分布式账本。如果任一节点没有响应,则两者都将有足够的信息来解决他们在延迟一段时间后收到的最后一笔付款。如果两个节点在任何时候都希望结算其余额的当前状态,则他们可以合作签署一个没有1周延迟负担的结账交易。结账交易还可以与汇总签名协商,以减少需要在线结算的数据量。

3.3支付通道网络我们的设计建立在比特币闪电网络[12]率先推出的支付通道网络(PCN)的概念之上。在这种类型的网络中,通过支付通道连接的节点对被组织成连接图,该图可以在没有建立直接支付渠道的节点之间安全地路由支付。

image.png

图8:现有PCN通过互联网进行通信,并通过支付通道的逻辑网络路由支付。我们提出了一种系统,它通过相同的点对点通信信道路由数据和支付。 当前的PCN形成覆盖网络,其通过节点之间的逻辑连接来路由支付,但是使用不同的因特网连接数据路由器进行通信。我们的物理PCN根据其物理位置直接在无线电范围内的节点之间创建支付通道。 数据和付款都通过相同的网络拓扑进行路由。

image.png

图9:在基于mesh网格的PCN节点中,通过相同的物理链路将支付和数据路由到一起。现有的在线PCN承担互联网连接并直接访问分布式账本,以在建立新通道时确认通道融资交易。

在我们的物理PCN中,在分布式账本上建立和结算支付通道的交易必须通过mesh网格中继到互联网网关。

3.4 Implied Transaction 隐含交易

节点传输激励标头以承诺将值从一个节点转移到另一个节点的支付通道交易。可以通过检查为这些交易创建的签名来验证对交易的签名。这些交易未明确包含在每个激励标题中。相反,节点仅传输每个交易的信息,这些信息不能从传输中的其他信息推断出来。例如,激励标题可以包括从节点A发送到节点B的支付信道更新Tx交易,但不需要包括节点A和B的支付地址。可以通过查找缓存的扩展公钥来确定性地计算这些地址。 (xpub)[26] [27]涉及的节点。例如,可以通过将节点A和B的高速缓存的xpub乘以已知的随机数(例如消息的散列)来确定性地生成地址。首次遇到新节点ID时,可以交换和缓存Xpub,也可以在节点联机时同步。节点还必须聚合签名,以使隐含交易有效。任何重建隐含交易的节点都可以使用聚合签名来确认隐含交易中包含的正确隐含付款地址。我们协议中的一个重要隐含值是根据有效载荷数据计算的秘密值。每个邮件发件人都会将此值与其付款一起提交。消息发送方为每条消息生成一个秘密随机数,并使用消息有效负载对其进行加密。只有目标节点才能解密有效负载并恢复机密随机数。除非目标节点接收到正在发送的数据,否则支付通道更新交易无效;只有在目标节点解密消息并返回秘密随机数后,才能满足此条件。还预定义了交易以消除可以标准化的值。例如,我们可以创建一个标准的中继费用,其中每个节点支付的代价比收到的少一个。不需要传输该信息来重建隐含的交易。知道起始中继支付金额和已发生的跳数足以重建每个隐含交易的支付金额。我们还可以允许节点为他们将要支付的付款设置不同的值。例如,桥接两个大型子网的节点可能比大型井连接网络中的节点充电更多。可以通过向每个跃点的提示添加一些信息来实现可变中继费用。可以在本地存储的缓存中从较短的节点ID中查找较大的值,例如扩展的公钥,这些节点ID映射到较大的公钥值。如果特定值尚未在本地缓存,则可以首先以长格式传输,从那时起,只需要发送较短的哈希ID。

image.png

图10:从节点A发送到节点B的隐含交易包括暗示交易的提示,其中如果节点D通过返回与前映像条件Hash匹配的值来接收数据m1,则节点A将向节点B支付3个token(msecret),1)。 正常路由头应该已经包括节点A和D的ID,因此必须传输的唯一附加信息是节点A花费的token(例如3)和节点A签署的签名(例如SigA)。

image.png

图11:节点B可以从节点A发送的提示和路由头以及它们的公钥缓存中重构完整的签名事务。 如果节点B具有针对具有消息m1的节点D加密的前映像,则隐含交易将节点A和B之间的支付通道更新为新状态。

3.6 Witness 证人

3.6证人当设置新的支付通道时,资金交易将token提交给通道。在通过区块链的共识机制验证和解决融资交易之前,存在资金支付可能被双重花费的风险。节点可以通过作为完整节点运行来保持已结算交易的最新视图,该节点在生成时见证所有新的分类帐更新。然而,在低带宽移动mesh网状网络上,将该信息广播到所有节点的开销是不切实际的。相反,离线mesh网格节点会将此任务委派给他们自己操作或信任的在线见证节点。联机见证节点应始终返回从脱机节点接收的交易所包含的加密值,以指示它们已收到请求。见证节点还应该向请求的离线节点返回一条消息,该消息提交该交易是否在比特币区块链上有效。离线mesh网格节点和互联网连接的见证节点之间的交互像处理节点之间的正常通信一样处理,但必须包括互联网网关节点。验证交易需要向中继节点和网关节点进行支付,该中继节点和网关节点通过mesh网状网络将信息中继到因特网。与其他目的地节点一样,见证节点将收到确认收到有效有效载荷的付款,在这种情况下,有效载荷是必须由比特币网络确认的交易。发送到见证节点的付款也可能需要两个有效的预映像中的一个。这将使见证节点能够确认收到的消息并向发送方发出信号,表明交易已成功确认,取决于它们返回的是哪个原像。

3.7 结算

我们建议使用比特币区块链作为去中心分布式账本,以维护激励支付交易的全球记录权威。分布式账本确保没有可能危及系统运行的中心故障点。此方法的替代方案是由单个或联合运营商组运行的集中式账本。通过利用成熟的数据库技术,集中式账本在技术上更容易扩展,但不会具有社交可扩展性[28]或对停机时间具有弹性。值得信赖的第三方是单点故障,为集中式ISP和移动运营商提供相同的审查和寻租机会。比特币是第一个成功的无权分散分布式账本网络,仍然是最可靠的例子。自2009年以来,它已经证明了它的弹性,超过99.99%的正常运行时间[29]。它能够在高度对抗的环境中抵御攻击,这使得比特币网络成为世界上卓越的分散式金融账本。我们还计划使用比特币,以利用已经过比特币协议测试和改进的许多扩展和安全功能。但是,为了允许我们验证由主要由离线节点组成的带宽受限mesh网状网络上的交易,我们需要支持像MuSig这样的签名聚合方案。出于这个原因,我们不建议最初在现有的比特币账本上结算交易,而是使用新的比特币测试网络,其中包括我们测试Lot49协议所需的修改。特别是,Schnorr签名[17]和SIGHASH_NOINPUT签名哈希标志[43]。在网络的初始测试阶段,我们预计会运行分类帐的单个集中式实例。在此阶段,token发行和赎回将与某些名义价值单位挂钩。这种方法消除了投机性价格波动,并确保仅获取token以用于数据传递。token将由他们为其他人传递数据的努力赢得过剩的用户兑换。一旦Bitconin主网络上的比特币社区采用了必要的协议变更,我们将过渡到使用它进行结算。如果比特币社区不采用我们期望使用的协议更改,我们还可能使用联合侧链[38]创建一个与主比特币区块链挂钩的网络。

  1. Protocol Details 协议细节

4.1 协议细节

下面我们将更详细地描述我们提出的激励协议的组成部分和机制。4.1节点
mesh网状节点通常使用相同的硬件和软件,但在通过mesh网状网络传输数据的过程中起不同的角色。根据具体情况,他们可以是数据的发送者(sender),中继者(relayer)或数据目的地。中继节点还可以充当网关,用于将数据从本地mesh网状网络发送到另一个区域网或全球网络,如互联网。

连接到互联网的节点也可以充当区块链交易服务的提供者。对于带宽受限的网络,我们期望区块链访问将涉及与在线可信见证节点的加密交互。

发送人节点

希望发送数据的节点承诺花费特定数量的激励token,条件是确认数据被传递。发送方承诺花费更多token来提高成功传输的可能性,增加中继数据的距离和/或激励网关中继数据。mesh网状路由协议将生成估计的传递成本作为其路由度量的一部分,并且可以基于先前消息的传递成功来更新其估计。

image.png

图12:发送者节点A将有效载荷数据m1发送到中继节点B,并建议将节点B的联合帐户份额增加3个token,以换取目的节点D接收到m1的证据。

中继/网关节点

从发送方或其他中继节点接收消息的节点将缓存并可能重新传输该消息。中继可以使用基于拓扑和激励成本的启发法来确定消息最终将被传递的可能性,并使用该信息来决定是否中继它。还会考虑节点的当前电池电量及其他缓存消息。中继还可以优先考虑来自具有确认的价值承诺的发件人的消息,或者如果它有助于重新平衡通道。同时具有互联网接入的中继节点可以通过路由协议通过广告获得作为网关的价值。节点要么以标准价格收取中继费用,要么提前公布其费用作为其路由指标的一部分。

目标节点
接收作为目的地的消息的节点与中继节点非常相似,但是他们可以立即确认支付通道更新来增加通道的余额。当他们显示他们收到的消息附带的加密信息时,参与消息传递的任何节点也可以更新或解决其关联的交易。

image.png

图13:节点G产生证明有效载荷数据m1的传递的加密数据。 收到数据后,他们的最后相应更新和结算交易变为有效,并记录在比特币区块链上。

涉及传递消息的所有中继节点可以使用最终显示的加密数据来确认他们自己的支付通道更新。 一旦节点具有交付收据,如果他们中继的节点变得无响应,则他们可以执行单向关闭通道。 在节点接收到他们中继的消息被接收的证据之后,他们可以与其上游中继节点协商以更新或协作关闭它们各自的支付通道余额,而不是立即将确认的更新提交给区块链。

image.png

图14:节点B通过发送目的地节点D接收到m1时产生的递送加密数据来与上游节点A协商。 如果无法访问节点A,节点B可以单方面使用此信息来解决区块链上的更新。 但是,节点A和B可以保持通道打开并使用上次有效更新同意的余额创建下一次更新,而不是设置。

重新传输消息传递收据的节点不需要等待激励支付的链上确认。 此外,当他们将付款数据重新发送回信息发件人时,他们鼓励在他们的路线上发送更多信息。 交付证明意味着沿同一路线的未来传输也将导致付款。 额外的奖励支付也可以预付信息接收者来回复。 任何回复还可以包括先前的发送加密数据,以提高效率。

image.png

图15:节点A建议发送新消息m2并再次与节点B更新它们的余额。节点B已经证明节点D接收到m1,因此节点A知道节点B可以在没有节点A的情况下直接在区块链上解决最后一次更新。当节点A提出新的更新时,他们必须将先前的更新视为当前状态,否则节点B不接受他们的新更新。
证人节点
证人节点预期将持久地连接到互联网并由mesh网状网络用户操作,以便更有效地确认已结算的交易。见证节点从希望设置支付通道和由比特币区块链确认的结算交易的mesh网格节点接收作为数据有效载荷的交易。如果交易有效,但尚未在账本中确认,则见证节点会将交易提交给区块链并等待其确认。然后,它们将交易有效负载中包含的加密发送回请求验证的原始节点。

离线mesh网格节点也可以使用由他们信任的其他人运行的节点,而不是运行他们自己的在线见证节点,并且可以通过包括见证节点只能在区块链上确认交易时才能收集的付款来激励他们验证交易的功能。也可以使用在线节点兑换预付Lightning账单,以便无信任地为新通道提供资金。 [44]

4.2 数据中继
在这里,我们详细描述节点发送和接收token支付所需的步骤,以换取在mesh网状网络上传送数据。

同步

为了优化mesh网状节点之间的低带宽通信,应该缓存和推断激励支付所需的信息,而不是尽可能地传输。

我们假设一个同步阶段,其中节点周期性地直接连接到互联网并缓存用于重新创建隐含交易的信息。节点缓存此信息,并且还可以通过mesh网状网络将其广播到没有同步缓存的节点。节点还可以发布自己的公钥和缓存元数据,这些元数据可用于优化消息传递,例如他们的地理位置和他们信任的见证节点,以验证交易。

每个节点的信息与用于查找每个节点的扩展公钥的唯一短节点ID相关联。路由协议还使用节点ID来标识节点。可以将节点信息发布到见证节点,这些节点将其闲聊到其他节点并将其存档以用于离线节点。缓存数据由与其关联的公钥签名,并且可以具有到期日期以防止同步错误或过时的数据。

在初始同步阶段之后,离线节点将具有扩展公钥的缓存版本,激励余额和所有其他节点的其他提示。为了减小该信息的大小,节点可以选择仅同步来自在地理位置的子集中注册为活动的节点的信息。

发送
节点通常使用设备支持的标准MANET路由协议将数据发送到另一个节点。我们的可选激励协议将额外的标头信息附加到标准网络级标头,并使用启发式增强的路由。节点将优先考虑包含有效激励标头的消息的中继,以便从成功传送的数据中获得激励。

在激励消息传递继续之前,mesh网状节点必须构建其路由表 - 从学习附近节点开始。一旦节点从其广播中识别出附近的节点,它就可以建议用它们创建支付通道。节点必须具有支付通道,其中任何节点都被标识为要向其发送消息的下一跳。发送数据的节点根据其接收的数据协商通道更新。每个中继节点遵循与发送节点相同的过程,但协商支付低于它们接收的下一个节点。

发送节点使用发送到目标节点的消息进行加密。如果要解密,则涉及中继消息的任何节点都承诺支付到下一个中继跳。创建或结算支付通道的交易被发送到互联网连接的见证节点。当节点重新协商本地支付通道更新时,它们使先前的通道更新无效。必须在上次更新后的通常长时间窗口(例如,一周)内发布新的通道更新,以防止过时的更新成为最终的。

下面描述了六个消息传递协议步骤:
第1步:发现拓扑
我们的激励协议采用“按需”式路由协议。在填充路由表之前,使用洪泛发送消息。 Flooded消息不指定应作为传递的下一跳的节点的ID。在此阶段,激励协议不活跃。在成功传递消息后,路由信息在节点之间传播以填充其路由表。节点还通告不同路由间的成本,因此在选择路由时可以考虑此信息。

第2步:提出通道
要在节点A和B之间创建支付通道,需要两个节点签署一系列从2对2多签名地址开始的交易。假设节点B将首先从节点A接收付款。然后,节点B向相邻节点A提供将为其提供资金的通道。由于在节点A为通道提供资金之前,节点B部分地签署了交易,因此节点A可以确信如果节点B没有响应,则来自多签名地址的退款交易将是有效的。节点B可以在接收到包括节点A的ID的路由发现flood消息之后的任何时间建议打开通道。节点B在其传输中包括激励报头(Setup_1),其部分地签署打开由节点A资助的支付通道所必需的一组交易。

第3步:发送消息

image.png

图16:节点A向节点D发送消息。该示例示出了必须在节点之间传输以实现隐含交易的重建的附加信息(例如,“A *; 8; D *,SigA”)。不需要传输带星号的节点ID,因为信息已经存在于传递消息所需的网络头中。节点A用于发送消息的初始token数量为8,SigA是节点A的第一组隐含交易的签名。节点D发送的最终交易具有完整的签名集和原像,因此可以在区块链上进行结算。

在从节点B接收到支付通道提议之后,节点A具有他们通过节点B向网络中的某个其他节点发送消息所需的内容。例如,当节点A沿着包括节点B的路由向节点D发送消息时。作为第一跳。节点A在其传输中包括激励报头(Setup_2),其具有签名以向具有节点B和激励报头(Negotiate_1)的支付信道增加值,或者如果信道已经被资助则添加报头(Negotiate_2)。这些标题更新通道以将一定量的激励值传递给节点B.如果节点D显示原像密码以确认它们从节点A接收到消息,则节点B将仅能够结算支付通道更新。链中的每个交易中继节点包含相同的条件:显示节点A发送给节点D的消息中包含的原像。如果节点C是节点B必须用于将消息中继到节点D的下一跳,则节点B必须遵循与节点A类似的过程来创建和/或更新具有节点C的支付通道。同样,如果节点C是相邻的到节点D,然后他们创建和/或更新向节点D支付任何剩余token的频道。

第4步:收到消息

image.png

图17:节点D向节点A发送包含原像的返回消息。该示例表明节点B必须通知节点A节点C将消息中继到节点D;当验证原像是正确的时,其他节点可以推断出这一点。每个节点可以使用最终签名的交易和前映像来与其上游伙伴协商通道更新或立即关闭支付通道。当消息到达其目的地时 - 例如,节点D已经从节点A接收到消息 - 然后节点D通过发送激励标题(Receipt_1)来更新其节点C的支付通道的状态,该激励标题包括它们的原像确认收到的信息。现在交易已完成,可以呈现给证人节点以在全局区块链上发布。在节点C接收到消息接收确认之后,它们可以包括激励标题(Receipt_2)以更新其与节点B的支付通道的状态。节点B遵循相同的过程以用节点A更新其支付通道的状态。

一旦节点更新了其支付通道的状态,他们就可以发送更新通道状态或合作关闭通道的其他消息。注意,从新创建的通道接收激励支付的节点可以在相反的方向上使用该值而无需自己提交值。在这种情况下,他们退还从上游节点收到的信用。在节点不相互转发另一节点的消息的情况下,从在线见证节点接收通道的链路结算的确认是很重要的。图16中所示的反向确认用于更新通道状态,因此中继它不需要额外的激励。数据接收确认还可以与反向流动的新数据组合以提高效率。见证人上述消息传递步骤承诺必须在分布式帐本上确定的激励支付交易最终确定。在为付款通道提供资金的交易已经结算之前,任何包含来自该新通道的付款的交易链都可能无效。同样,最终的通道更新交易必须在付款通道关闭后的特定时间内结算。节点可以继续使用具有未经验证的资金交易的通道,但是如果资金交易最终未验证,那么他们对其他节点进行的任何付款仍然可以由那些始发节点收集。当两个节点之间的支付通道合作或单方面关闭时,还应在标准超时窗口内记录或验证最后一次更新,以防止旧的更新被解决。为了验证和解决事务,我们在基本消息传递协议中添加了步骤5和6:

第5步:记录交易

image.png

图18:节点D向见证节点G发送消息,其中包含来自图16的交易提示。节点G将使用来自节点C和D的多重签名来验证结束交易,如果有效,则发布它以结算交易。任何具有激励交易的节点如果包含来自目的地节点的消息接收预图像以使交易有效,则可以在区块链上进行结算。为此,节点可以重复步骤3,其中消息由见证节点所需的“提示”信息组成,以重建要验证或记录的交易。此消息的目标节点是发件人信任或操作的见证节点。如果发送节点未连接到互联网,则“提示”信息和激励标题必须通过互联网网关。

发送包含要验证或记录的交易的消息的节点必须包括将由中继节点和验证或记录它的见证节点收集的激励token支付。因此,解决交易需要创建具有从发送节点到见证节点的中继激励的第二交易。使用由两个通道方创建的聚合签名减少了必须验证以确认交易的数据量。

第6步:验证交易

image.png

图19:见证节点G返回其原像作为接收节点D发送的交易的证据,并返回原像以确认已收到交易。证人节点G必须向D发送单独的消息,以指示交易是否经过验证并在区块链上结算。见证节点接收,重建,验证和记录激励交易链,并以与其他中继或消息接收者相同的方式接收激励支付。一旦在分布式帐本中充分确认了发布交易,则除了提供其原像之外,见证节点还可以提供证明交易已结算的消息。见证节点通过mesh网状网络将激励标题(Receipt_1)发送回请求以与上述步骤4相同的方式记录交易的节点。信任见证节点的任何节点现在都可以依赖于现在确认的交易链中包含或依赖的交易。

  1. Safety

5.安全
默认情况下,mesh网状节点无需付款即可通过我们的激励协议中继数据增加了默认的中继启发模式,以鼓励更有价值的发送者为激励中继而花费价值。行为不当的中继节点不应该能够获得未获得的价值,但我们不能总是阻止数据发送者的有限免费数据传送。我们希望网络在传输数据方面犯错误。考虑到这个框架,我们在下面讨论一些问题以及针对节点退化行为的一般保护。
5.1离线节点
PCN的正常安全假设包括节点可能脱机而不监视区块链的可能性。在此离线期间,恶意对方可能会尝试解决过期的支付通道交易。脱机节点必须对此尝试做出反应并发布更新的状态,以防止恶意交易对手回滚付款。

由于mesh网格节点大部分时间都处于脱机状态,因此我们必须仔细考虑这种情况。我们的协议必须使其他PCN协议使用的技术适应mesh网状网络的约束。

超时
脱机节点的主要安全性来自单方面关闭通道的交易的长时间延迟。这使得另一方有时间注意并提交更新的更新。我们的系统必须使用适合离网社区特征的超时。如果用户通常每天在家中或通过网关访问互联网,则可以将超时设置为比每周访问一次更短。这样做的一个结果是,节点访问互联网的频率越低,他们就越需要合作关闭通道以防止锁定流动性。

碉楼

闪电网络白皮书考虑了一个私人和信任最小化的第三方,也称为“了望塔”[12] [30],可以激励他们始终在线观看以过期更新交易结算的通道。为离线mesh网状网络节点外包信道监控更加困难,因为它需要将加密的交易发送到了望塔。这在mesh网状网络上以带宽有效的方式可能是不可能的。相反,当通道被确定为离线节点的附加服务时,更有可能激励见证节点来监视和通知离线节点。 Watchtowers也可以机会性地发送节点持有的最新完全签名的更新事务。这些检查点可以在网关附近发送,只有在区块链上出现无效更新时才能由了望塔使用。

5.2其他风险
无效的交易
在分布式帐本确认之前,新创建的支付通道的通道更新应视为可能无效。如果包含通道融资交易但未最终确认,则交易将失效。这意味着当来自其上游节点的通道资金交易无法验证时,中继节点可能欠其下游节点值。

对于以大致相等的数量相互传递消息的节点,在链上确认通道融资交易需要多长时间,因为它们的通道余额将大部分接近零。

当交易链包括为通道提供资金的未经证实的交易时,沿着路线的每个节点可以启发式地决定是否中继消息。优先考虑未经确认的通道融资交易无风险的消息。未签名交付数据接收器必须揭示从与该数据相关联的激励支付的数据导出的原像是有效的。最后一个中继节点无法知道它们的下一次传输(包括数据有效载荷)是否会被消息接收器听到。恶意消息接收者可以接收消息并选择不确认收据。消息接收者在签名以证明他们收到消息时也会收到奖励。这是我们鼓励消息接收者遵循激励协议的主要方式。但是,当消息发送人和接收人串通或由同一实体控制时,此付款可能不相关。例如,如果发送方和接收方是同一个实体,那么如果接收方总是无法签名并证明他们收到了消息,则发送方可以避免发送消息的成本。这种情况只能通过注意到模式和将责任节点列入黑名单的节点来解决。

Sybil女巫

消息目标节点应该接收发送方提交的任何值,但不会被中继节点使用。这使得中继声称收取的费用超过了他们所宣传的费用。消息目标节点在收到消息时不收集任何值,但可能无法显示证明已收到消息的前映像。 此外,目标节点接收的值越多,它们越有可能将交易转发到互联网网关以在区块链上进行确认,该区块链显示依赖于该原像的其他中继节点的原像。 如果中继希望获得更多价值,他们可以发布更高的中继成本,因此节点可以将这些信息合并到其路由度量中。

虚假证人节点
见证节点可以错误地确认离线节点交易是否有效。这可能导致中继节点接受来自实际上没有资金的新支付通道的支付。通过使用多个见证节点并在节点具有直接互联网连接时重新检查交易,可以阻止这种情况。证人节点将获得用于确认交易的token,因此有动力诚实地履行其职能。因为任何人都可以运行见证节点,所以那些具有最佳正常运行时间和最长跟踪记录的节点应该受到青睐。

交易费用
在区块链上结算交易的费用可能超过作为微支付转移的价值以传递信息。这可能导致支付交易在不合作的支付通道关闭的情况下花费不经济。

5.3 解决方案
上述风险都需要节点运行恶意版本的节点客户端软件。重要的是,这些攻击最多只能导致免费消息传递,但不会导致未实现的可替代价值。这意味着只有使用系统进行消息传递的节点才有理由对其进行攻击。隔离并降低恶意节点传递成功的解决方案应足以防止攻击。只有无法检测到的攻击才值得实施。

本地黑名单
如果节点没有正确地遵循激励协议,那么任何附近的节点将在RF无线电层上偷听它。可以安全地忽略本地行为不当的节点。例如,未签名以证明他们收到消息的目标节点是脱机,超出范围或行为不当。为了排除信道错误,在观察到足够的不良行为证据之前,不应忽略节点。无论什么原因,本地节点都可以安全地停止向它们发送消息。激励协议通过允许节点监视交易并识别或多或少可能导致确认的消息传递的路由,将信任扩展到超出消息发送者可以直接监视的范围的节点。

消息接收者仍然可以与发送者串通,以便在发送或接收消息时周期性地改变他们的身份,移动和/或等待没有目睹他们的不良行为的新同伴。然而,每当节点改变其身份时,这将需要建立新的支付通道并将新的路由信息传播到中继。

启发式中继
对于获得消息传递激励的中继节点而言,最重要的是它们中继的给定消息将导致成功和确认的消息传递的可能性。由于许多原因可能发生传递失败。目标节点可能处于脱机,隔离或恶意状态。下游中继同样可能具有导致消息未被传递的通信故障。节点唯一可靠的数据是他们自己收集的有关他们发送或转发的消息成功和失败的统计信息。基于此信息的启发式算法是节点优先处理它们将传递哪些消息的最佳方式。

优化成功消息传递的本地启发式对于整个网络也是有益的。使用不太可能接收的消息使网络泛滥会降低每个人的网络容量。每个节点必须平衡他们的个人成本以传输消息与成功交付的可能性。

节点还必须参与可发现的整体中继协议并学习新路由。不受功率或传输机会约束的节点总是可以中继它接收的每个消息。功率受限节点或位于关键位置的节点可能无法中继其接收的每条消息。这应该导致成功的节点采用一种策略,该策略优先考虑中继最有可能传递的激励消息。

理性微支付

为了解决由于交易费用而在经济上不可行的小额支付的解决问题,已经提出了各种解决方案[41]。对于我们的系统,我们认为如果比特币脚本语言支持概率小额支付将是一个可行的选择。如果单个消息的付款不经济,也可以通过多个消息分摊付款。在这种情况下,中继节点承担更大的风险,即在发送多条消息之前它们不会收到付款。然而,这并不比接受他们无法花费的微支付更糟糕。目前在闪电网络中实施的另一种方法是“削减输出”[42],其低于预定值。消减后的输出值将用于交易费用,而不是创造不可靠的输出。当支付通道结算时,消减后的产出可以在以后记入经济合理的产出。

  1. Incentive Economy 激励经济

任何节点都可以获得奖励,以便为他人转发数据并在适当的时间出现在正确的位置。mesh网格节点相对于其他网格节点的位置确定它们的通道平衡是否可能增加,减少或保持均匀。作为一个互联网网关,或接近一个,也可能增加由于流量增加和确认新创建的支付通道的能力所赚取的价值。

6.1 中继定价
发起消息的节点必须确定预付传递其数据的中继节点的数量。每个中继节点可以设置他们期望的价格以重新传输数据包。网关和见证节点也可以为其服务设置价格。中继将向中继节点收取费用,以便充分补偿它们传输信息的费用加上一些费用。对于移动节点,其成本来自于使用电池电力为其他节点传输而不是将其保留用于其自身使用的机会成本。网关和见证节点可以根据对其服务的需求包括更大的费用。桥接子网的中继节点也可以比存在备用路由的节点添加更高的费用。节点还应调整其中继价格以考虑网络的PDR(分组传送率)。 PDR越低,中继在传送之前必须传输的数据包越多。对于最终未交付的数据,中继不会得到补偿。然后,中继节点i应为单个中继传输充电的价格为:

屏幕快照 2019-06-17 下午6.47.19.png

每个中继节点通告它们的传输价格加上由广告到目的节点的路由的一组邻居节点N中的所有节点n通告的最小价格。

屏幕快照 2019-06-17 下午6.47.23.png

包含太高费用或需要更多中间节点到达目的地的相邻节点将通告更高的中继价格而不被选择作为传递分组的下一跳。

6.2发行
节点必须获得可用于激励其他节点传输其数据的比特币。然后,比特币可以被提供给网络的中继服务的用户兑换超过他们对网络的使用。对于此分析,我们将考虑主要用于发送短消息(例如,SMS,Whatsapp等)。在更高带宽链路上的更多数据密集型应用将需要每个设备存储更多初始值。我们可以假设每个使用协议的设备每天发送50条消息,每条消息要求不超过10跳,中继节点期望每跳一个。使用这些假设,我们可以预测设备每天使用大约500 satoshi。

我们还需要考虑到,在获得价值与交易结算以及比特币变得可重新消费之间存在延迟。此延迟取决于预计脱机节点访问Internet的频率。如果我们假设用户至少每七天都有互联网连接,那么每台设备至少需要3500个satoshi来激励他们发送的每条消息。一个只花费token,但从不为其他人转发的设备,大约一周后就会耗尽比特币。但是,如果一个节点中继更多的消息然后它发送,它将以比特币的净增益结束本周。节点是增益还是丢失值取决于用户的行为(例如,节点必须保持通电以进行中继),还取决于设备的位置和网络的拓扑。

6.3 中心节点
位于连接良好的mesh网状网络中的中心位置的节点将很容易获得用于中继的值,但往往不能接收更多消息以进行中继,然后它们能够进行中继。中央节点不太可能有积压的消息,因为它们必须与其他附近节点共享本地无线电信道。他们将稳步获得奖励,但也会按比例平均支出,以获得净余额。
6.4 桥节点
位于稀疏mesh网状位置的节点桥接两个连接较多的网状区域,更有可能接收积压的消息以进行中继,并且将为其他人传递更多信息而不是自己。这些节点将能够优先考虑附加激励价值的消息,并且更有可能成为激励价值的净收入者。
6.5 网关节点
提供通往全球互联网的门户的节点也可能是激励价值的净收入者。经常通过网关节点发送消息的节点可能会随着时间的推移减少其激励余额。这些节点可能会成为瓶颈,并使用激励token对消息进行优先级排序。
6.6 边缘节点
不是子网之间的桥接但位于mesh网状网络边缘的节点将更少的中继其他节点的机会。除非它们成为网关或网桥节点,否则这些节点的激励平衡可能会随着时间的推移而减少。这些节点代表“最后一英里”节点,并且为它们提供服务的任何中继节点都将成为token的净收入者。
6.7 确认通道
中继节点应该期望接收更多消息并从仅包括确认的支付通道的路线获得更多价值。这为节点提供了一些激励,可以主动确认包括新支付通道资金交易的交易链。包括消息接收者在内的所有节点更有可能从已确认资金交易的通道获得激励价值。
6.8 免费接力
节点不需要总是花费或需要激励来中继数据。节点可以在不添加激励报头的情况下发送消息,并且仅路由通过同样不宣传中继费用的附近节点。只要找到空闲中继节点的路径,就会传递这些消息。发送到直接无线电范围内的节点也不需要激励。例如,当节点仅发送短距离并且有许多附近节点可用于中继时。在这些情况下,激励协议增加了开销,但可能无法改善消息传递。免费中继还可以帮助节点构建其路由表,并且可以被网络中的其他节点发现。为了使激励支付变得有用,使用激励协议的节点必须创建一个网络,其消息传递比仅具有自由中继行为的网络更好。在跨多个跃点发送数据以及桥接隔离网络时更有可能发生这种情况。激励措施还改善了遭受“搭便车”问题的网络的本地交付,其中许多节点仅发送数据但不转发数据。
6.9 转售
已经存在一个将比特币转换为本地法定货币的强大市场。基于比特币和法定货币之间的交换,价格节点对中继数据的收费最终将浮动。
6.10覆盖范围
没有必要单独激励节点以在特定区域中提供覆盖。 消息传递的激励措施将鼓励节点在有需求的地方运营。 任何覆盖系统证据都依赖于欺骗的位置证明也很容易。

  1. Analysis 分析

在我们的模拟中,我们分析了将激励协议添加到称为“Ad hoc按需距离矢量”路由(AODV)的IETF标准按需路由协议的效果[33]。

7.1交付率
我们模拟了由于额外的激励协议开销而增加的数据包大小的影响。我们比较了有没有添加标称50字节激励标头的传送速率。激励标头附加到伴随有效负载数据的标准路由标头。激励标头的最大部分是64字节签名。我们假设额外的提示信息大约6个字节加上每个跃点4个字节,平均3个跃点,估计每个激励标题总共100个字节。

我们使用ns-3 [34]模拟mesh网状网络,该网状网络由30个节点组成,这些节点在不同的节点密度下运行AODV路由协议。节点随机移动并运行应用程序,该应用程序将50字节的有效负载发送到从始发节点的固定子集中选择的另一个随机节点。节点每30秒发送一次数据,总共20分钟,具有一些初始随机开始时间,并以100 Kbps的数据速率发送。

我们的模拟侧重于数据包传输率(PDR),它测量发送的数据包与传输数量的比率。我们研究不同比例的节点发起数据与仅中继数据的比率。非始发节点用于模拟可用于中继数据的激励节点,即使它们不发送或期望自己接收数据也是如此。

我们的模拟研究了以下问题:对每个50字节有效负载添加额外的50字节激励报头对PDR的影响。由于激励而增加非始发节点比例的效果。

图19显示,除了适当的低网络密度之外,添加额外的50个字节的激励报头不会显着降低我们的模拟中的PDR。图20显示了在我们的模拟中增加非始发(仅中继)节点的比例的效果。仅中继节点表示在不主动使用节点时激励人们离开节点的激励效果。总体而言,这些结果表明,由激励报头开销引起的PDR降低是适度的,并且仅在低节点密度下。增加非起源节点比例的激励会增加PDR,特别是在低密度时。


image.png

图19:该图显示了在具有不同密度的30个节点的网络上使用AODV协议的平均PDR。


image.png

图20:该图显示了在一系列节点密度下使用AODV协议的平均PDR。 我们将30个始发节点的网络与仅具有第三个半非发起中继节点的网络进行比较。

  1. Future Work 未来工作

我们的提案描述了一种足以激励移动网状网络中节点的设计,但是还有一些值得探索的领域可以提高网络的可靠性和速度,并最大限度地减少对互联网连接的需求。

激励洪水。
在“泛滥”模式消息中继期间包括奖励支付可以扩展协议以鼓励路由发现。在这种模式下,节点可以从不同的路由接收相同的消息,并且将中继沿最短路径到达的那个(或者支付最多token的那个)。
通道工厂。
在mesh网状子网上连接良好但没有很好地连接到互联网的节点组可以为通道工厂提供资金[35],以便于在离网时动态创建成对支付渠道。局部再平衡。一种在附近节点之间检测和重新平衡支付通道的协议。这也可以通过尝试与附近节点维持平衡支付渠道的路由协议度量来完成。
块摘要。
使用BIP-158 [37]的方案广播紧凑块过滤器摘要,以使网状子网上的节点与全局区块链保持同步,并且对分布式分类帐的访问最少。此方法将减少对可信证明节点的需求。
地理分片。
允许网状节点锁定到特定地理区域的付款。这将允许构建和广播特定于不同地理区域的较小块过滤器摘要。由于节点先验地知道它们的位置,因此它们可以拒绝未锁定到其当前地理位置的资金交易。BLS签名。
基于BLS的签名聚合可以用于通过单个短签名来解决多个交易,而不是使用基于Schnorr的多重签名。
离线渠道资金。
使用以前共享的具有长超时和已知预图像的共享发票,使用来自在线Lightning节点的Lightning付款为新的离线通道提供资金。 [44]Proofmarshal。
见证节点可以返回对区块链状态的紧凑承诺,以确认在给定时间UTXO集中的事务的存在。与[47]相似。

  1. Conclusion 结论

我们设计了一个系统,可以安全有效地激励低带宽MANET上的数据传输。 现有的支付通道协议不专注于在多个低带宽跳跃上同时有效地路由数据和支付。 我们通过使用更有效的数据通道更新方案和签名聚合来解决此问题。 我们相信,我们的系统开辟了一个灵活的设计空间,以优化移动网状网络的覆盖范围和可靠性,从而保持其去中心化。

  1. Acknowledgments 致谢

我们的工作受到了Poon和Dryja的比特币闪电网络的发展,Decker,Russell和Osuntokun提出的eltoo更新方案以及Maxwell,Poelstra,Seurin和Wuille的MuSig签名聚合方案。

我们要感谢Daniela Perdomo和goTenna团队对这个项目的慷慨支持。 感谢USV的Albert Wenger和Nick Gross的鼓励,评论和建议。 感谢杰伊·格拉伯(Jay Graber)提出的早期讨论。

我们也非常感谢这个提案早期草稿的读者,他们慷慨地花时间给我们提供有用的建议,建设性的批评和深思熟虑的反馈:Alex Akselrod,Bryan Bishop,Nic Carter,Robin Chan,Arthur Demeester,Adam Gibson,Fabian Jahr, Bob McElrath,Steve Myers,Elaine Ou,Mats-Erik Pistol,TeemuPäivinen,Ram Ramanathan,Dan Robinson,Lucas Ryan和Peter Todd。

References

[1] Goode, L. Messenger and WhatsApp process 60 billion messages a day, three times more than SMS. The Verge. URL: https://www.theverge.com/2016/4/12/11415198/facebook-messenger-whatsapp-number-messages-vs-sms-f8-2016. Accessed, 2018-09-29.

[2] Follow the leaders: highest ranking Apps in Google Play Store, United States. SimilarWeb. URL: https://www.similarweb.com/apps/top/google/app-index/us/all/top-free. Accessed, 29-Sep-2018.

[3] Buttyán L, Hubaux JP. Mobile Networks and Applications (2003) 8: 579.

[4] Wu F, Chen T, Zhong S, Li L, Yang R. (2008). Incentive-compatible opportunistic routing for wireless networks. In Proceedings of the 14th ACM international conference on Mobile computing and networking (MobiCom '08). ACM, New York, NY, USA, 303-314.

[5] Marti S, Giuli TJ, Lai K., Baker M (2000). Mitigating routing misbehavior in mobile ad hoc networks. In Proceedings of the 6th annual international conference on Mobile computing and networking (MobiCom '00). ACM, New York, NY, USA, 255-265.

[6] uncorrelated, “A very rough draft of a new Hocnet Whitepaper • r/hocnet,” reddit. URL: https://old.reddit.com/r/hocnet/comments/204kma/a_very_rough_draft_of_a_new_hocnet_whitepaper/. Accessed, 29-Sep-2018.

[7] Nakamoto, S (2009). Bitcoin: A Peer-to-Peer Electronic Cash System. Cryptography Mailing list at https://metzdowd.com. URL: https://bitcoin.org/bitcoin.pdfAccessed, 29-Sep-2018.

[8] Open Libernet [DRAFT] (2015). URL: http://www.openlibernet.org/paper/open-libernet.pdf. Accessed, 15-Aug-2018.

[9] Croman K, Decker C, Eyal I, Gencer A, Juels A, Kosba A, Miller A, Saxena P, Shi E, Gün Sirer E, Song D, Wattenhofer R (2016). On Scaling Decentralized Blockchains. In: Clark J., Meiklejohn S., Ryan P., Wallach D., Brenner M., Rohloff K. (eds) Financial Cryptography and Data Security. FC 2016. Lecture Notes in Computer Science, vol 9604. Springer, Berlin, Heidelberg.

[10] Bitcoin Wiki. Contracts: Example 7: Rapidly-adjusted (micro)payments to a pre-determined party. URL: https://en.bitcoin.it/wiki/Contracts#Example_7:Rapidly-adjusted.28micro.29payments_to_a_pre-determined_party. Accessed, 29-Sep-2018.

[11] bitcoinj. Working with micropayment channels. URL: https://bitcoinj.github.io/working-with-micropayments. Accessed, 29-Sep-2018.

[12] Poon J, Dryja T (2015): The bitcoin lightning network. URL: https://lightning.network/lightning-network-paper.pdf. Accessed, 29-Sep-2018.

[13] Tremback J, Kilpatrick J (2017). Althea: An incentivized mesh network protocol. URL: https://altheamesh.com/documents/whitepaper.pdf. Accessed, 29-Sep-2018.

[14] Ernst J, Wang Z, Abraham S, Lyotier J, Jensen C, Quinn M, D’Souza A (2017). Decentralized Mobile Mesh Networking Platform Using Blockchain Technology and Tokenization. URL: https://www.rightmesh.io/docs/RightMeshTechnicalWhitepaper3.1.pdf. Accessed, 29-Sep-2018.

[15] Frangoudis P, Polyzos G (2011). Wireless Community Networks: An Alternative Approach for Nomadic Broadband Network Access. Communications Magazine, IEEE. 49. 206 - 213.

[16] Boneh D, Gentry C, Lynn B, Shacham H (2003). A Survey of Two Signature Aggregation Techniques. CryptoBytes. 6.

[17] Wuille P. bip-schnorr.mediawiki. URL: https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki. Accessed, 29-Sep-2018.

[18] Maxwell G, Poelstra A, Seurin Y,Wuille P (2018). Simple Schnorr Multi-Signatures with Applications to Bitcoin. IACR Cryptology ePrint Archive 2018: 68 (2018).

[19] Dryja T. [bitcoin-dev] Per-block non-interactive Schnorr signature aggregation. URL: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014272.html. Accessed, 29-Sep-2018.

[20] Boneh, D, Lynn B, Shacham H (2001). Short Signatures from the Weil Pairing. In: Boyd C. (eds) Advances in Cryptology — ASIACRYPT 2001. ASIACRYPT 2001. Lecture Notes in Computer Science, vol 2248. Springer, Berlin, Heidelberg.

[21] Chia BLS Signatures implementation. URL: https://github.com/Chia-Network/bls-signatures. Accessed, 29-Sep-2018.

[22] Boneh D, Drijvers M, Neven G (2018). Compact Multi-Signatures for Smaller Blockchains. IACR Cryptology ePrint Archive 2018: 483 (2018).

[23] Boneh D, Gentry C, Lynn B, Shacham H (2003). Aggregate and Verifiably Encrypted Signatures from Bilinear Maps. In: Biham E. (eds) Advances in Cryptology — EUROCRYPT 2003. EUROCRYPT 2003. Lecture Notes in Computer Science, vol 2656. Springer, Berlin, Heidelberg.

[24] Szczechowiak P, Oliveira L, Scott M, Collier M, Dahab R (2008). NanoECC: Testing the Limits of Elliptic Curve Cryptography in Sensor Networks. In: Verdone R. (eds) Wireless Sensor Networks. EWSN 2008. Lecture Notes in Computer Science, vol 4913. Springer, Berlin, Heidelberg.

[25] Decker C, Russell R, Osuntokun O (2018). eltoo: A Simple Layer2 Protocol for Bitcoin. https://blockstream.com/eltoo.pdf. Accessed, 29-Sep-2018.

[26] Maxwell G (2011). Deterministic wallets. URL: https://bitcointalk.org/index.php?topic=19137.0. Accessed, 29-Sep-2018.

[27] Wuille P. BIP-32, Hierarchical Deterministic Wallets. URL: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki. Accessed, 29-Sep-2018.

[28] Szabo N (2017). Money, blockchains, and social scalability. URL: http://unenumerated.blogspot.com/2017/02/money-blockchains-and-social-scalability.html. Accessed, 29-Sep-2018.

[29] findbl0k. Bitcoin Uptime. URL: http://bitcoinuptime.comAccessed, 29-Sep-2018.

[30] The MIT Digital Currency Initiative. watchtower - watch channels for fraudulent transactions. URL: https://github.com/mit-dci/lit/tree/master/watchtower. Accessed, 29-Sep-2018.

[31] Dryja T (2017). Unlinkable outsourced channel monitoring. Scaling Bitcoin 2017. Transcribed by Bryan Bishop (kanzure). URL: https://diyhpl.us/wiki/transcripts/scalingbitcoin/milan/unlinkable-outsourced-channel-monitoring

[32] Herlihy M. (2018). Atomic Cross-Chain Swaps. URL: http://arxiv. org/abs/1801.09515. White Paper. Accessed, 2018-08-29.

[33] Perkins C, Royer E (2000). The ad hoc on-demand distance vector protocol. In: Ad hoc Networking, Addison-Wesley, pp. 173–219, 2000.

[34] NS-3. URL: http://www.nsnam.orgl. Accessed, 2018-08-01.

[35] Burchert C, Decker C, Wattenhofer R (2017). Scalable Funding of Bitcoin Micropayment Channel Networks. In: Spirakis P., Tsigas P. (eds) Stabilization, Safety, and Security of Distributed Systems. SSS 2017. Lecture Notes in Computer Science, vol 10616. Springer, Cham.

[36] Gentry C, Ramzan Z (2006). Identity-Based Aggregate Signatures. In: Yung M., Dodis Y., Kiayias A., Malkin T. (eds) Public Key Cryptography - PKC 2006. PKC 2006. Lecture Notes in Computer Science, vol 3958. Springer, Berlin, Heidelberg.

[37] Osuntokun O, Akselrod A. BIP 158: Peer Services. URL: https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki. Accessed, 2018-04-13.

[38] Back A, Corallo M, Dashjr L, Friedenbach M, Maxwell G, Miller A, Poelstra A, Timón J, and Wuille P (2014). Enabling Blockchain Innovations with Pegged Sidechains. https://blockstream.com/sidechains.pdf. Accessed 12-Feb-2019.

[39] Wahby, R. and Boneh, D. (2019). Fast and simple constant-time hashing to the BLS12-381. elliptic curve. Cryptology ePrint Archive, Report 2019/403. ia.cr/2019/403. Accessed 23-Apr-2019.

[40] Snigirev, S. (2018). BLS signatures: better than Schnorr. Medium.com post. cryptoadvance/bls-signatures-better-than-schnorr-5a7fe30ea716. Access 23-Apr-2019.

[41] Discussion topic “HTLCs don't work for micropayments”? on StackOverflow.com . https://bitcoin.stackexchange.com/questions/85650/htlcs-dont-work-for-micropayments. Accessed 16-May-2019.

[42] Basis of Lightning Technology (BOLT) specification. Bolt #3. https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md#trimmed-outputs. Accessed 2019-May-16.

[43] Decker C. bip-0118.mediawiki. URL: https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki. Accessed, 16-May-2019.

[44] Comte V. Insight #3: Running a Lightning enabled Point of Sale offline. URL: https://www.puzzle.ch/de/blog/articles/2018/11/21/takeaways-from-the-lightning-hackday-in-nyc. Accessed, 17-May-2019.

[45] Roasbeef. [WIP] multi: add new draft key send mode for spontaneous payments. URL: https://github.com/lightningnetwork/lnd/pull/2455. Access, 29-May-2019.

[46] Dryja, T. (2019).Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set. Cryptology ePrint Archive, Report 2019/611. ia.cr/2019/611. Accessed 4-June-2019.

[47] Todd, P. (2017). Scalable Semi-Trustless Asset Transfer via Single-Use-Seals and Proof-of-Publication. URL: https://petertodd.org/2017/scalable-single-use-seal-asset-transfer#proof-of-publication-ledger. Accessed 4-June-2019.

Appendix A.Technical Overview


Lot49 vs. Lightning Network

为了减少每个支付节点之间交换的数据量,我们使用一种需要较少轮次通信的机制。 为了减少必须通过互联网网关在区块链上确定的数据量,我们使用签名聚合方案。 具体而言,该项目建议使用如下所述的MuSig方案使用eltoo支付渠道更新机制和签名聚合。 使用这些技术可以将节点之间交换的签名数据量减少大约50%。 通过这些更改,我们认为平均每个传输的激励开销可以减少到接近100个字节。
Lot49偏离现有比特币闪电网络的其他方式如下所述:

数据传递
Lot49协议主要用于使用微支付来激励在对等通信网络中成功传送数据。在可能的情况下,我们最大限度地减少微支付所需的激励协议开销,以增加可用于数据传输的带宽。对中继节点的付款很小且是固定的,或者基于传输的数据量,而不是传输的值。如果该提议已扩展为支持通过Lightning Network发送任意数据,则此提议应与Sphinx keysend系统兼容。
网络拓扑结构
Lot49协议假设一个网状无线电网络,其中节点只能与无线电范围内的其他节点直接通信。节点承诺小额支付以激励附近的中继或网关节点传递其数据。节点只能直接激励他们可以直接与之通信的节点。 Lightning Network中不存在此类限制,因为您可以通过任何互联网连接节点路由付款。
比特币网络访问
节点并不总是直接访问互联网以确认比特币网络上的比特币交易。与比特币网络的任何通信都是通过直接连接到互联网的网关节点进行的。使用中继和网关节点向比特币网络发送交易信息可能需要包括奖励支付,就像源自离网节点的任何其他数据一样。
我们假设离网节点确认和提交事务的最有带宽效率的方法是与他们控制或信任的互联网连接节点进行通信。其他轻客户端技术是可能的,但该提议未考虑。
网格路由
使用特定于所使用的网状无线电网络的低开销技术来对数据进行源路由。我们假设节点从知道路由(如果可用)开始,到他们希望与之通信的节点。在该提议中没有考虑使用激励来交换准确的路由信息​​或密码术以验证路由信息。我们也不假设使用洋葱路由来保持路由信息的私密性。

推断交易
为了减少节点之间通信的支付开销,我们假设只传递更新其支付状态所需的最少量数据。这类似于Lightning Network对等协议当前的工作方式,如Bolt#2中所述。我们的建议假设更加标准化默认值,以进一步减少节点之间传输的数据量。我们还假设使用分层确定性钱包或类似技术来预先共享节点之间的公钥信息。由于签名信息表示无法推断且必须传输的大量数据,因此我们尝试减少必须通过网络广播的签名数据的总量。
支付网络
通过中继或网关节点发送的每个消息都包括一个消息头,它承诺支付消息传送的证据。足够的值承诺为每个中继节点和消息接收者支付先前约定的金额。每条消息还必须包含解锁HTLC奖励支付的原像。应该对preimage进行加密,以便只有消息接收者才能对其进行解密,并且只有当他们收到完整的消息时才能对其进行解密。
eltoo
我们建议使用eltoo通道状态更新机制,因为它允许节点之间的单工付款更新其支付状态。设置频道后,只有转发付款的节点必须将其签名发送给付款接收方。付款发件人不需要付款接收人的签名,因为他们将始终拥有自己的签名,用于他们收到的最后一笔付款,或者用于开户退款交易。这减少了为更新频道而必须传送的数据量减少一半以上。使用当前的Poon-Drjya更新方案,双方都需要从最后一个状态发送两个签名和撤销信息。
MuSig
当两个节点提交eltoo触发器,退款或关闭事务时,他们通常需要将两个64字节签名传送到比特币区块链,以便从2-of-2 multisig事务中花费。 MuSig签名聚合方案可以将这减少为两个签名者的单个多重签名。在一般的MuSig签名会话情况下,每个签名者在三个通信轮次中发送96字节的信息以创建单个64字节多重签名。但是,对于两方会话的特殊情况,在另一方发送其随机数之前,只有一个节点需要发送一个nonce承诺,从而节省了32个字节。这意味着两个节点只交换32个字节的数据来创建聚合签名,而不是交换两个完整的64字节签名。与发送两个64字节签名相比,在发送单个多重签名时,必须发送事务以到达因特网的每个中继跳需要一半的带宽。

公开问题
公钥
必须在汇总交易的支付渠道合作伙伴之间交换此公钥信息。 eltoo协议还要求为每个新的结算交易使用新的公钥。交换公钥的最节省空间的方法是使用一些预共享表,该表将节点的扩展公钥映射到较短的节点ID。还需要为每个事务发送用于指定每个公钥的确切路径的随机数或索引。我们尚未指定如何传达此公钥信息并用于重新创建可在比特币网络上结算的完整交易。
比特币脚本
我们还没有说明使用的比特币脚本与eltoo纸和闪电网络BOLT规范中描述的脚本有何不同。我们还需要指定如何减少从节点之间传递的数据重建这些脚本所需的数据量。
点对点消息
我们仍然需要指定用于在节点之间设置,更新和关闭支付渠道的确切消息和消息传递顺序。
离线优化
最小化必须通过互联网网关传送并在比特币网络上建立的数据量的技术值得进一步探索。理想情况下,我们可以通过互联网网关进行最少或没有通信的设置,关闭和监控信道。还应该可以将许多支付和渠道运营分摊到少量不频繁的链上交易中。一些可能的方法包括:
渠道工厂
eltoo更新机制不是始终使用新的链上设置事务锚定支付渠道,而是使用渠道工厂与可用离网节点的联合协商开放和关闭渠道。通道工厂还可以减少在离网节点之间创建新通道所需的时间。
轻客户端支持
使用BIP-158方案的广播块头和紧凑块过滤器摘要,以使网状子网上的节点与全局区块链保持同步,并且对分布式分类帐的访问最小。此方法将减少对可信证明节点的需求。

推荐阅读更多精彩内容