《An Accelerated Method for Message Propagation in Blockchain Networks》论文阅读笔记

paper

Abstract

区块链基于P2P网络,支持当前加密货币的去中心化共识。 由于比特币和山寨币都利用底层的区块链,因此它们会受到P2P网络性能的极大影响。 在比特币中,矿工们参与了对时间敏感的竞赛,以解决工作量证明问题以扩展区块链。 因此,这就提出了一个关键问题,即最小化获胜区块的传播与下一轮比赛开始之间的时间。 本文提出了一种选择节点最接近的邻居以使消息及时在整个网络中传播的方法。 该方法使用传输等待时间来测量从节点到其邻居的距离。 因此,等待时间越短,邻居越近。 与经典方法相比,仿真显示平均传播延迟和最大传播延迟的降低率很高。 此外,本文不仅提出了基于等待时间建立连接的原理,而且还评估了同时建立的连接数量的影响。

关键字:加密货币,区块链,矿工,延迟

Introduction

比特币系统是在区块链网络上运行的最受欢迎的加密货币之一。 它需要传播各种信息,包括交易和区块。在比特币的P2P网络中,节点随机连接到其他节点。 事务和块通过这些节点在该网络上传输,直到每个接收到所有必需的数据为止,这是低效的。 这个P2P网络可能相对较慢。 这样,矿工(和矿池)有时会在旧区块的顶部浪费哈希功率挖掘,而较新的区块正在通过网络查找。 因此,传输延迟有利于合并采矿以及矿工的地理聚类,从而激励了更加集中的采矿拓扑。 这通常被认为是可伸缩性的瓶颈之一,因为更大的块(可能包括更多的事务)将传播得更慢。

比特币中的消息传播如图1所示。 每个节点接收交易请求消息,更新其自己的分类帐副本,然后将消息传递到附近的节点。 因此,一条消息将经过很长的路径才能到达位于网络角落的远端节点。

Fig 1

P2P系统的目的是在大量用户之间共享信息,而无需显式服务器的帮助。 对等体形成一个覆盖拓扑,该覆盖拓扑可能与基础物理网络拓扑有很大不同。 底层区块链网络的传播时间至关重要,尤其是对于矿工而言,因为每毫秒的延迟都会增加大约在同一时间发现的另一个区块赢得“区块竞赛”的机会。 然而,区块链的核心本质对此无益:P2P网络相对较慢,覆盖无法感知底层网络,节点以随机方式连接到邻居。

CNS Method

在区块链网络中,当新节点启动时,它必须发现网络中的其他节点参与。 要开始此过程,一个新节点必须发现网络上至少一个现有节点并连接到该节点。 其他节点的地理位置无关紧要,因为没有在地理上定义区块链网络拓扑。 因此,任何现有的比特币节点都可以随机选择。

每个节点都可以独立于基础网络建立与另一个节点的连接。 区块链的行为很典型,因为它是一个P2P覆盖网络。 实际上,此连接上的数据包将通过许多网络链接,这些链接形成了从初始节点到其对等方的路由。 路由(或路径)的属性随后会影响连接的效率。

在消息传输中,可以通过等待时间来衡量所连接对等方之间的距离。 往返时间(RTT)指标在流行的网络测量环境中扮演着这样的角色。 RTT已被广泛用作经典Internet应用程序中对等/服务器选择的度量标准,例如流,基于树的多播服务以及其他基于UDP和TCP的服务。 实际上,RTT被用作许多协议(包括基于P2P网络的区块链)推断正向和反向延迟的解决方案。

在本文中,RTT表示两个节点之间的距离。 值越小,节点越近。 在P2P覆盖网络中,任何两个节点都直接连接,从而成为邻居。 在参与区块链时,一个节点会构造一个邻居列表作为潜在的对等节点。

在具有10个节点的全连接P2P网络中,有90个节点(即n(n -1)),其中n是节点数 )双向连接。 例如,一个节点连接到几个选定的对等点,从而导致图2所示的稀疏拓扑。

Fig 2

该拓扑描述了一个10节点,12边缘P2P网络,其中的节点从0到9进行索引。在这种简单情况下,每个节点都与网络具有至少一个连接(节点度大于或等于1),因此 制作连接图。 这种连通性允许来自一个节点的消息最终到达网络中的任何节点。 对等点之间的连接显示为一条线,并在内部与代表其传输延迟的值相关联。 表1中列出了节点,连接及其延迟。

Table 1

当节点是区块链网络的成员时,它必须维护一个邻居列表。发生这种情况时的经典和简化过程如下所示。

RNS方法步骤列表

  • 步骤1:当节点首次连接或重新连接到网络时启动邻居列表;
  • 步骤2:在节点找到新邻居或丢失的邻居时刷新其邻居列表;
  • 步骤3:通过选定邻居发送消息至区块链网络的其余部分。

该过程包括三个步骤,没有一个适用任何特殊规则。 从这个角度来看,该过程以自由或随机的方式运行。 我们将这种选择邻居的方式称为“随机邻居选择”(RNS)方法。 尽管RNS在当前已部署的区块链实现中效果很好,例如比特币和以太坊,但网络遭受消息延迟的困扰。

因此,我们提出了一种新方法来优化区块链网络中的传输延迟,选择最近的邻居并使用它们来传播消息。 下面的几个步骤描述了此最邻近选择(CNS)方法。

CNS方法步骤列表

  • 第1步:初始化一个潜在的邻居列表,其中每个邻居都与一个无限的等待时间值相关;
  • 第2步:在发现新节点或丢失旧节点时刷新邻居列表,并通过刷新每个邻居的延迟值 RTT测量。
  • 第3步:按延迟值对列表中的邻居进行排序,首先以较小的值进行排序。
  • 第4步:通过按顺序选择列表中的邻居,将消息发送到整个区块链上的节点。

从以上两种方法的这些描述中,可以看出CNS发生了一些细微但重要的变化。 首先,每个节点都与到其他节点的连接延迟量度相关联,指示成对的两个节点之间的距离。 其次,通过消息发送和回显来测量每个节点的等待时间值,代表点对点RTT。 第三,邻居是按优先顺序选择的,而不是随机的机会均等的方法。

第一个更改可以通过使用简单的数据列表在软件中实现,该数据列表随着区块链网络的波动而刷新。 第三个变化可以用通用排序算法处理,使按RTT值排序的列表从小到大。 有了这两个容易解决的更改(包括在步骤1、3和4中),我们剩下了第二个更改(包括在步骤2中)。

第二个更改着眼于经典的网络测量问题,包括一对节点之间的RTT测量。 RTT通常可以作为在两个点之间流动的流量的副产品进行衡量。 主动测量系统会注入特定的测量数据包。 无源测量系统使用直接测量数据包或观察现有流量。

我们假设两端都对评估RTT感兴趣,主动端作为客户端,消极端作为服务器。 参照图3,我们定义tSc作为客户端发送探测请求的时刻,tRs为服务器端接收探测请求的时刻,tSs为服务器端发送探测响应的时刻,tRc为客户端收到探测响应的瞬间。 请注意,客户端和服务器时钟不需要同步,因此tSc和tR代表由客户端时钟测量的时间,而tRs和tSs代表由服务器时钟测量的时间。

探测请求消息包括3个参数:



其中tSs(kprev)和tRc(kprev)代表这些状态变量的最新接收值。

探测响应消息包括3个参数:



这样,隧道的两端都可以在不保留状态信息的情况下从探测数据包评估RTT延迟,如下所示:

在客户端上:


在服务器端:


Fig 3

因此,利用RTT值,我们可以选择最接近的邻居进行网络范围的消息传播,从而获得更好的性能。 因此,低延迟的区块链为更高效的应用交付奠定了基础。

Experiments

与RNS方法相比,CNS添加了许多新功能来提高性能。 本节介绍了CNS的评估模型和实验。

评估网络建模为一个连通图。 形式上,图是一对集合。 可以用G =(V,E)来刻画,其中V是顶点集,E是边集。 E由V的无序元素对组成.DiGraph也是一对D =(V,A)的集合。 V是一组顶点,A是一组弧。 A由V的有序元素对组成。在有向图的情况下,((u,v)`和((v,u))之间是有区别的。 通常将这些边称为圆弧,以指示方向的存在。

在本节中,为简单起见,网络由DiGraph表示,并且两个方向边的权重相同。 具有100个节点和不同程度的P2P网络如下所示。 图4中接下来的6个图形(a,b,c,d,e,f)是用度数(2、3、4、5、10和20)创建的,线随机地连接成对的节点。 节点的数量和网络的程度在以下实验中起着重要作用。

Fig 4

对于CNS方法,每个连接都与等待时间值相关联,该等待时间值与邻居配对。 假定整个网络的等待时间值遵循正态分布(等式1)。

本文设置μ=2000,平均连接延迟为2000ms,标准偏差σ=500。

实验1

此实验显示40个节点的网络中节点的平均延迟,其中每个节点有5个最邻近的邻居(定向)。 节点的平均等待时间是从节点到其5个邻居的等待时间值的平均值。 在图5中,两条实线分别是RNS和CNS方法中节点的平均延迟,分别为2006.19ms和1194.41ms。 虚线表示CNS相对于RNS的减少百分比,平均接近40%。在同一实验中,我们还计算了代表节点到其邻居延迟的5个值中的最大值。 CNS平均为1381.6ms,RNS为2605.9ms,下降了近50%(图6)。

Fig

RNS方法选择5个随机邻居,而CNS方法选择5个最近邻居,这说明了上面的不同结果。 显然,CNS优于RNS方法。

实验2

该实验从整个网络的角度比较结果,这与以前的观点不同。 下面曲线中的每个点都是网络的摘要,该摘要每次创建时具有不同的网络度(与节点的连接数)。 随着网络程度的增加,CNS方法平均网络延迟的优势逐渐降低(图7)。图7跨1-20度的网络平均延迟此实验还根据每个节点的最大延迟来计算网络的平均值。 图8中的曲线显示了与上述类似的结果。

Fig 7

此实验还根据每个节点的最大延迟来计算网络的平均值。 图8中的曲线显示了与上述类似的结果。

Fig 8

RNS方法和CNS方法可以选择更多的邻居来分担流量负担,但是随着创建的连接数增加,两种算法之间的差异会减小。 这表明,在某些关键时刻,CNS方法不再具有优势。 这一点与实际网络情况有关。

Conclusion

区块链在当今世界越来越受欢迎。 我们不断寻找更新的方法来利用区块链的功能来提供直观的应用程序,从而为现实世界的问题提供解决方案。 本文介绍了在支持更高应用程序的同时区块链的效率。 提出了P2P等待时间度量标准,实验表明选择最近邻居(CNS)的方法有利于更快的消息传播。

CNS和这些实验表明,通过有目的地选择低等待时间的邻居节点,可以有效地传播消息。 改善。 同样,可以在没有第三方(例如中继网络)服务的情况下实现消息交换加速。 这使以下几点成为现实。 首先,新的区块采矿者应该赢得工作量证明竞赛并获得奖励,而不是被继任者带走。 其次,网络通过有效的消息传输极大地避免了无用的功耗,因此以节能的方式运行。 第三,快速的消息交换可最大程度地减少网络上节点使用的内存和带宽。 最后,该最优等待时间模型可以促进性能感知网络的演进或推动底层区块链结构的演进。

本文提出了选择最近邻居节点的原理,这是有效的区块链信息交换。 在实践中,考虑到去中心化问题等,引入了节点位置权重。进一步的研究将开发区块链网络的鲁棒性和可扩展性,同时优化其效率。

原文地址:
https://arxiv.org/abs/1809.00455

你可能感兴趣的:(《An Accelerated Method for Message Propagation in Blockchain Networks》论文阅读笔记)