首页 >>
学术向丨让比特币更安全,Erlay协议如何节省节点84%的带宽
发布时间:2019-06-25 13:17:56 来源:mrcat注册-手机app客户端软件点击:11

  比特币作为区块链世界的先行者,其10年来遭遇过无数次攻击,正因为如此,构成比特币的协议,必须适应网络的发展,以确保网络的安全。

  比特币网络的安全性取决于节点之间的连接。而更高的连通性,会带来更好的安全性,但在当前的BTCFlood协议下,这会造成带宽低效的问题。

  对此,比特币代码维护者之一Pieter Wuille,比特币重要贡献者Gregory Maxwell,不列颠哥伦比亚大学学者Gleb Naumenko、Sasha Fedorova以及Ivan Beschastnikh,共同提出了一种称为Erlay的比特币交易中继协议。

  那么,相比比特币当前所使用的BTCFlood中继协议,Erlay协议的优势在哪呢?

  下面这张图可以清晰地告诉我们答案:

  

  图1:Erlay协议与BTCFlood中继协议的对比,出自Erlay论文

  在这篇论文中,研究者们提出了两个观察结论:(1)当前比特币网络的连接性太低,其无法实现最佳的安全性;(2)同时,增加连接将大大增加交易传播协议所使用的带宽,这使得操作比特币节点的成本高得令人望而却步。

  当前,运行比特币节点所需总带宽的一半,仅用于宣布交易。与区块中继不同,在前期工作当中,交易传播受到的关注是非常少的。在此,研究者们提出了一种新的交易传播协议 -- Erlay 。这不仅在当前连接的情况下,将带宽消耗降低,而且随着连接的增加,带宽使用几乎保持不变。相比之下,现有的协议会随着连接数的增加而导致带宽消耗的增加。

  总的来说,Erlay在允许更多连接的同时,以较低的成本提高了比特币网络的安全性。而且,正如研究者所展示的,Erlay还会加强网络,以抵挡试图了解一笔交易源节点的攻击。目前,比特币开发社区正在研究Erlay协议,以备在未来用于比特币core协议。

  一、引言

  比特币是一种对等式(又称点对点)电子现金系统。 根据2019年3月份统计的数据显示,比特币全网的节点数超过了60000个。为了跟上节点的数量以及网络的使用情况,研究者必须不断优化系统,同时保持其安全性,而这正是比特币用户所期待的。比特币网络的安全性取决于足够的网络联通性。很多比特币文献一再建议增加节点之间的连接数,以使网络变得更具鲁棒性 。正如论文第3节中所解释的,如果网络是高度连接的,那么攻击将更难以成功,但不幸之处在于,提高比特币网络的连通性,会线性增加交易中继的带宽消耗!当前的比特币协议,会占据运行一个比特币节点所需总带宽的一半之多。今天,单是交易中继,每个节点每月都要消耗18 GB。如果连接从当前使用的8个出站连接增加到24,用于中继交易的每个节点,其每月带宽消耗将超过50 GB,这就使得节点的成本对于某些人而言变得过于高昂。

  尽管如此,交易中继在科学文献当中并没有受到太多的重视,而区块中继则不同。

  比特币交易中继协议之所以低效的主要原因,在于其依赖于洪泛法(?flooding)。一笔比特币交易相当于几个账户之间的资金转移。图2概述了比特币网络中交易的生命周期。一笔交易想要被网络节点所接受,其必须首先通过网络被广播或中继。然后,必须对其进行验证,并将其与其他有效交易一起打包到一个区块当中。最后,包含交易的区块必须中继到网络当中所有的节点。每笔比特币交易必须到达网络中几乎所有的节点,并且之前的工作已证明网络的完全覆盖对于安全而言是很重要的。

  

  图2:一笔比特币交易的生命周期,Erlay协议优化了比特币网络节点中继交易的部分(灰色框)

  今天,比特币通过确保一个节点接收到的每一条消息都被传输到其所有的邻节点来传播交易。

  这种洪泛法(?flooding)具有很高的容错性,而且由于节点会尽可能快地了解交易 ,这就使得网络具有低的延迟。

  然而,洪泛法(?flooding)这种方式具有很糟糕的带宽效率:网络中的节点会多次了解交易。研究者的实证测量表明,交易宣布占到了比特币总流量的30%-50%,这种低效性是一个重要的可扩展性限制:这种低效性会随着网络的连接变得更多时而变得更糟,而网络的连通性对网络的增长和安全而言又是可取的。

  先前的研究工作探索了两种解决带宽使用低效的问题,第一种是使用短交易标识(以减少消息大小)。第二种则是独占使用区块,而不去传输个人交易。遗憾的是,这两种方法都是存在弊端的。短标识符只会降低常数因子,而不会随着网络的连通性而扩展,而独占使用区块会造成区块中继和交易验证的峰值,关于这两个方案,原论文在第11节中探讨了更多的内容。

  该论文中所提到的Erlay协议,旨在优化比特币中继交易,同时维持现有的网络安全保障。该协议背后的主要思想,在于减少通过洪泛法(?flooding)传播的信息数量,而是在大多数交易广播中使用一种有效的集对账方法。此外,研究者还设计了防护措施,使得 Erlay协议能够承受DoS、时序攻击(Timing Attack)等其他攻击。

  研究者在一个模拟器中实现了 Erlay协议,以此作为主线比特币节点软件的一部分,并对 Erlay进行了规模评估。结果显示,Erlay能够让和交易公告相关的带宽消耗可忽略不计,同时让延迟保持在区块间隔时间的一小部分。

  总而言之,该论文的贡献如下:

  研究者分析了比特币交易中继协议的带宽低效性,并通过运行一个连接到比特币网络的节点以及运行一个比特币模拟网络来实现这一点。研究结果表明,用于交易公告的带宽使用,有88%是冗余的,而这大约占到了比特币总带宽的44%。研究者提出了一种新的、带宽利用率高的比特币交易中继协议,它的名字称为Erlay,其结合了快速低扇出(fanout)洪泛法(?flooding)和高效集对账,旨在改善比特币网络。研究者证明了该协议实现了资源消耗和传播中继的近似最优组合,并且实现了针对攻击的鲁棒性。Erlay可立即减少用于交易公布84%的带宽使用,并允许比特币网络在未来实现更高的连通性,以实现更好的安全性。

  接下来,让我们回顾一下研究工作背景。

  二、比特币的背景

  首先,我们需要了解的是,比特币网络当中存在着两种类型的节点: 不接受入站连接的自私(Private)节点,以及接受入站连接的公开(public)节点(见图3)。公开节点充当了网络的主干:它们帮助新节点与网络相连。一旦它们加入网络,公开节点和自私节点在操作中便是不可区分的:两种类型节点都执行交易和区块验证,并中继有效交易及区块。

  

  图3:比特币网络中的自私节点(Private node)和公开节点(public node)

  当前版本的比特币交易中继协议,使用了diffusion,这是一种随机洪泛法(?flooding)的变体。而所谓洪泛法(?flooding),则是一种协议,其中每个节点会向其每个对等节点宣布其接收到的每笔交易。

  交易公告可通过入站和出站连接发送。对于diffusion,对等节点在向其对等节点宣布接收到的交易之前注入一个随机延迟。这减少了时序攻击,并极大地降低了碰撞的概率(当两个节点同时通过 它们之间的连接宣布相同的交易时)。

  图4解释说明了一笔交易在两个对等节点之间的传播。当一个比特币节点接收到一笔交易时(图4中的对等节点1),它会将该交易通告给它所有的对等节点(除了在第一个位置发送这笔交易的节点,以及已经接收到通告的其他节点)。

  

  图4: 两个对等节点之间的Transaction交换

  而要通告一笔交易,一个节点将在一个清单或INV消息中发送交易的哈希。如果一个节点(图4中的对等节点2)第一次接触到一笔交易,它会通过向发送INV消息的节点发送一则GETDATA消息来请求完整的交易。

  研究者将协议的交易广播部分(所有INV消息)称为BTCFlood。由于它依赖于洪泛法(?flooding),因此大多数交易都是通过网络中的每个连接来单向广播的(除了那些在区块中继阶段广播的交易)。因此,具有n个连接的节点,将为单笔交易发送和接收n和2n则INV消息(两个节点可能会同时向对方宣布同一笔交易)。

  公开和自私节点都限制了入站和出站连接(图3)。默认情况下, 自私节点没有入站连接,且最多拥有8个出站连接,而公开节点则可以有8个出站连接,以及最多125个入站节点(但入站连接限制可高达1000左右)。因此,随着比特币网络中自私节点数量的增加,运行公开节点所需的带宽和计算量也随之迅速增加。

  这是因为自私节点连接到多个公开节点,以确保它们通过多个对等节点连接到网络。因此,比特币设计者们会专注于(1)在所需的带宽、计算能力和硬件资源方面,使公开节点的运行更容易实现,以及(2)使公开节点更加高效,以便它们能够接受来自自私节点的更多连接。而Erlay协议,就是同时瞄准了这两个目标。

  三、洪泛法(?flooding)交易存在的问题

  洪泛法(?flooding)是低效的。BTCFlood会发送大量冗余的交易通知。为了了解原因,我们先考虑一下,如果协议被认为是高效的,发送的通知数量应该是什么数量。最理想的情况下,是每个节点只接受一次公告,所以每则公告发送的次数应该等于节点的数量。

  接下来,让我们考虑通过BTCFlood,一则公告会被发送几次。通过定义,(除了公告最初到达的连接)每个节点在每个连接上都会中继一次公告。换句话说,如果没有两个节点同时向彼此发送相同的通知,则每个连接会看到每一则通知一次,而如果它们同时发送,则会看到多次。因此,在BTCFlood中,每则公告的发送次数至少是连接数的数倍。

  如果比特币网络中的节点数是N,则连接数为8N,这是因为每个节点必须进行8次出站连接。因此,冗余公告的数量至少为8N ? N=7N。每则公告都会占到中继一笔交易所需的300字节中的32字节(这300字节包括公告、响应以及完整的交易主体)。因此,如果八则公告中至少有7则公告是冗余的(对应于224字节),则至少所有公告所耗流量当中有43%是属于浪费的。研究者通过实验验证了这一分析,具体研究者配置了一个具有8个出站连接的公开比特币节点,并对其运行了一个星期的时间。在此期间,研究者的节点还接收到4个入站连接。研究者测量了专门用于交易公告和其他交易广播流量的带宽。如果接收到的公告与已知的交易对应,则其被认为是多余的。如果发送的公告后面没有交易请求,则研究者也认为它是多余的。根据研究者的测量(在不同的区域运行了多个节点),对应于接收公告的10%流量,以及对应于发送公告的95%流量是多余的。总的来说,研究者节点所消耗的流量当中,有55%是冗余的。

  更高的连通性需要更多的带宽。在BTCFlood的情况下,鉴于冗余流量的数量与连接数成正比,增加网络的连通性(即每个节点的出站连接数)会线性地增加带宽消耗。

  

  图5:一个月内一个比特币节点通过洪泛法(?flooding)进行中继交易的分析成本

  研究者模拟了在60000个比特币节点的网络中传播一笔交易的带宽消耗,是如何随连接数的增加而增加的。图5(通过模拟得到其结果)显示,随着网络的联通性越强,交易公告流量会占据到主导地位。每个节点有8个连接,一个自私节点每月用于交易公告的带宽流量可能会消耗9GB,今天,将连接数调整到24,则会导致交易中继消耗超过15GB每月。

  连通性越强,网络安全性越高。在P2P网络中,更好的连通性会提高网络的安全性。传统的P2P研究 以及比特币的前期工作证明了这一点。

  如果网络的连通性高度发达,某些攻击的成功率就会降低。日食攻击论文表明,低于13个连接,会对网站造成很多的安全隐患。而最近发现的漏洞 则依赖于InvBlock 这种技术,这是一种阻止交易被首先对其发出公告的节点所广播的技术,然后将交易内容保留2分钟,随着更高的连通性,这种攻击也就更容易缓解。

  四、协议需求

  需求1:按连接数进行扩展。研究者的主要目标,是设计一个具有很好的连接数扩展性的交易广播协议。通过这种思路,研究者可以让网络变得更安全,而无需牺牲性能。

  需求2:维护一个适合去中心化环境的网络拓扑。比特币去中心化环境的前提,对其网络的设计造成了限制。尽管将一个结构强加于一个网络,例如通过将其组织成树或星型拓扑,或者使用DHT式路由,可以实现带宽高效的洪泛法(?flooding)协议,但这也带来了关于审查或分割的风险。因此,网络的拓扑结构必须保持非结构化,并且每个节点必须根据其本地状态独立地做出路由决策。

  需求3:保持合理的延迟。交易广播延迟应该保持在现有协议的变动范围内。低延迟对于用户体验以及实现区块中继更高的效率方面 都是必不可少的。

  需求4: 对现有威胁模型下的攻击具有鲁棒性。研究者的协议必须在现有协议假设的相同威胁模型下保持健壮。

  交易中继协议必须对DoS攻击和客户端反匿名具有抵抗性,且相比现有协议,不得泄露更多任何关于网络拓扑的信息。

  五、Erlay的设计

  传统上,P2P网络通过在特定拓扑结构上施加结构化覆盖来解决网络的洪泛法(?flooding)低效问题。出于第4节中讨论的安全原因,研究者避免了机构化网络组织。相反,研究者的设计依赖于两个常用的系统构建技术:中继(delay)和批处理(batching)。

  使用这一协议的节点不会在每个连接上公告每一笔交易,而是将其通告给对等节点的一个子集,这被称为低扇出洪泛法(?flooding)。为了确保所有交易到达整个网络,节点定期参与交互式协议,以发现丢失的通知,并请求丢失的交易。这被称为集对账(set reconciliation)。而Erlay协议,就是由低扇出洪泛法(?flooding)以及集对账(set reconciliation)组成的(图6)。

  

  图6:Erlay使用低扇出洪泛法(?flooding)传播交易作为第一步,然后进行几轮对账,以到达网络中的所有节点。

  低扇出洪泛法(?flooding):低扇出洪泛法(?flooding)基本原理是方便地从网络中的每个节点中继一笔交易,使其在少量跃点(hop)内。如果每笔交易都接近每个节点,那么对账(reconciliation)可使用少量round数来完成传播,因此,低扇出洪泛法(?flooding)的一个关键决定在于哪个对等节点(peer)去中继。

  集对账(set reconciliation):集对账(set reconciliation)被提议作为分布式系统中的同步替代方案。使用集对账(set reconciliation),P2P网络中的节点会定期将其本地状态与对等节点的状态进行比较,并仅发送/请求必要信息(即状态差异)。集对账(set reconciliation)可被视为批处理的有效版本(累积多个状态更新并将其作为单个消息发送)。实际对账过程中的关键挑战,在于对等节点能够准确计算其丢失的交易状态,并将交换的交易限制为另一个对等节点丢失的交易。

  

  图7显示了Erlay是如何通过结合洪泛法(?flooding)以及对账,在带宽和延迟方面找到最佳位置。

  5.1 低扇出洪泛法(?flooding)

  洪泛法(?flooding)是低效而昂贵的,所以研究者要谨慎地、战略性地使用它。因此,只有连接良好的公开节点通过出站连接来向其它节点洪泛(?flood)交易。又因为每个自私节点都直接连接到几个公开节点,因此,此策略确保交易快速传播到网络中大多数节点的一个跃点内。因此,完全可达性(full reachability-- (R3))只需要1-2轮对账。根据这一点,研究者提出的协议可被视为二阶乐观复制(two-tier optimistic replication)。

  为了实现可扩展目标(R1),研究者限制了洪泛法(?flooding),将公开节点的出站连接设为8个(即使连接的总数更高)。这种方式,在增加连接数的同时,不会造成交易传播成本也按比例增长。

  通过出站连接而不是入站连接进行中继的决定,是为了防止时序攻击 。

  在一次时序攻击中,一个攻击者连接到受害者,并监听受害者可能在该连接(受害者的入站连接)上发送的所有交易。如果一名攻击者从多个节点(包括受害者)处了解到一笔交易,交易到达的时间可以用于猜测交易是否从受害者处发出:如果是这样的话,它很可能会更早地从受害者那里到达,而不是其他节点。BTCFlood引入了一个扩散延迟以防止时序攻击。在Erlay协议中,由于研究者不将单个交易转发到入站连接,因此就不需要这种延迟。所以这个决定对R3和R4而言都是有利的。

  比特币网络中的交易可能同时出自公开和自私节点。在研究者提出的协议当中,节点并不通过洪泛法(?flooding)中继交易,因此,网络通过对账来了解它们发起的交易:自私节点将它们自己的交易添至对账期间转发给其对等节点的其他交易批(在对账期间向其对等节点附送)。当交易是从自私节点发起时,这是用于隐藏的。如果交易是从自私节点发出的,那么很明显,对于公开节点来说,这些交易必须是在这些节点上创建的,因为根据所选的洪泛法(?flooding)策略,这是自私节点洪泛一笔交易的唯一情况,因为它们没有入站连接。由于自私节点将自己的交易作为批处理的一部分转发,而不是单独转发,一个恶意的公开节点不太可能发现一笔交易(R4)的来源。

  5.2 集对账(set reconciliation)

  在Erlay中,对等节点通过计算local 集sketch来执行集对账,正如PinSketch算法所述。集sketch是具有两个重要属性的集校验和的一种类型:

  sketch具有预定的容量,并且当集合中的元素数量不超过容量时,始终可通过解码这个sketch来从这个sketch中恢复整个集。容量为c的b位元素的sketch,可存储在bc位当中。两个集之间的对称差异sketch(即一个输入集中出现的所有元素,而非两个输入集),可通过异或这些集的sketch的位表示来获得。

  这些属性使sketch适合于带宽有效的集对账协议。更具体地说,如果双方爱丽丝和鲍勃每人都有一个元素集,他们怀疑这些集很大程度上(但并非完全)重叠,他们可以使用以下协议让双方了解这两个集合的所有元素:

  爱丽丝和鲍勃都在本地计算其集合的sketch;爱丽丝把她的sketch发送给鲍勃;鲍勃结合了这两个sketch,并获得了对称差异sketch;鲍勃试图从对称差异sketch中恢复元素;鲍勃把爱丽丝所缺少的元素发送给她。

  当差异的大小(即爱丽丝所拥有的,但鲍勃所没有的元素,以及鲍勃所拥有的,但爱丽丝没有的元素),没有超过爱丽丝所发送的sketch的容量时,这个程序总会是成功的。否则,程序很可能会失败。

  此过程的一个关键属性在于它与实际集大小并没有关联:其只与集差异大小有关。

  解码sketch的计算成本很高,并且与差异的大小成平方关系。因此,在集差异变得太大之前(5.2.2节),准确估算差异的大小(5.2.1节)以及进行对账,对于协议而言是很重要的目标。

  5.2.1 对账轮(Reconciliation round)。图7总结了这个对账协议。为了执行一轮对账,每个节点都会对其对等节点维护一个对账集。对账集包含了由节点通过常规BTCFlood向对应对等节点发送的交易短ID,但由于Erlay限制了洪泛法(?flooding),情况则有所不同。研究者将爱丽丝为鲍勃的对账集设为A ,将鲍勃为爱丽丝的的对账集设为B。爱丽丝和鲍勃将计算这些对账集的sketch(正如前一节所述。)

  该协议的重要参数是:D -- 集差异的实际大小,d – D的估计值,q -- 用于计算 d的参数。研究者会在下面提供这些值的由来。首先,研究者描述了一个对账轮:

  根据选定的对账计划(5.2.2节),爱丽丝把A和q的大小发送给了鲍勃;鲍勃在他的B和爱丽丝的A(见下文)之间计算了D的一个估值d;鲍勃计算了具有D交易能力的B的sketch,并将其与B的大小一起发送给爱丽丝;爱丽丝收到了鲍勃B的sketch,计算了A的sketch,并异或这两个sketch。现在,爱丽丝有了A与B之间差异的sketch;如果差异大小估算正确,爱丽丝可以解码上一步计算的sketch,向鲍勃请求她丢失的交易(或事务),然后向鲍勃通告他丢失的交易(或事务)。如果估算不正确(sketch解码失败),爱丽丝将采用平分法(第5.2.3节);此过程后,爱丽丝更新q(见下文)并清除A,鲍勃清除B;

  准确估计D值对对账的成功而言是至关重要的。以前的工作使用诸如minwise hashing或随机映射等技术进行估计。这些技术是很复杂的,研究者担心这些技术最终会消耗掉很多带宽。因此,研究者采取了极简主义的方法,其中,研究者仅根据当前集合的大小以及上对账轮中观察到的差异来估计集差异的大小:

  d=abs(|A| ? |B|) + q · min(|A|, |B|) + c,

  其中q是表示先前以先前对账为特征的“浮点系数”(推导如下),c是用于处理特殊情况的参数。

  事实上,两个集合之间的差异,不能小于他们的大小差异。为了避免代价高昂的低估,研究者添加了由q标准化的较小集合的大小,以及一个常量c=1,当|A|=|B|且q ·min(|A|, |B|)=0时,避免估计d=0。

  这个系数q描绘了先前的对账,因此在第一对账轮之前,其设置为0。在对账轮结束时,研究者只需根据这轮中发现的真实D更新q,用上面公式中的d替换D,去掉c,然后求解q:

  q=D ? abs(|A| ? |B|)/ min(|A|, |B|)

  这个更新后的q,将用于下一对账轮。研究者用这种方法计算q,这是因为研究者假设网络中的每个节点都有一个一致的最优q。

  对账是DoS攻击的沃土,因为解码一个sketch的计算成本很高。为了防止这些攻击,在研究者的协议当中,对对账感兴趣的节点(以及需要解码sketch的节点)会启动对账(在研究者的例子中是爱丽丝),鲍勃不能强迫爱丽丝执行过度的sketch解码。

  5.2.2 对账计划(Reconciliation schedule)。每一个节点每T秒,通过一个出站对等节点启动对账。选择正确的T值对性能和带宽消耗而言是很重要的。如果T值太低,对账运行会太频繁,这将会消耗过多的带宽。如果T值太高,对账集将变得很大,解码集差异将变得昂贵(将与差异的数量成二次方关系)。一个大的T值,还会增加交易(或事务)传播的延迟。

  一个节点每T秒与一个对等节点对账一次。由于每个节点拥有c个出站连接,网络中的每个连接,平均每T · c秒进行一次对账。这意味着对账之前设置的平均对账集将包含T · c · TXrate 笔交易(或事务)其中TXrate 是全局交易(事务)率。也就是说,每个节点间的对帐期间,节点都将收到T· TXrate笔交易(或事务)。

  在 Erlay协议中,T值被设为了1秒,通过这一设置,以及当前自私节点与公开节点的比率,每个公开节点每秒将执行大约八次对帐。考虑到当前比特币网络最大交易率为7 tps,此协议的平均差异集大小为7元素。对于该参数的选择,原论文在第8节内容中有详细的介绍。

  5.2.3 集差异估计失败的平分法。研究者的集对账方法依赖于一个假设,即对于设定值,两个对等节点之间的差异是可预测的。如果实际差异高于估计值,则对账将失败。这种失败可由客户端计算差异进行检测。对这种失败的一个明显的解决方案,是假定集合中的差异更大,重新计算并重传输sketch。然而,这会使先前的对账传输无效,这种可能性是很小的。

  相反,Erlay使用了对账平分法,其重利用了先前传输的信息。平分法是基于假设的元素在对账集中均匀分布(可通过hashing实现)。如果一个节点无法从两个sketch的乘积中重建集差异,则该节点会发出与初始对账请求类似的附加对账请求,但此请求仅适用于可能消息的一小部分(例如,到范围为0x0–0x8的交易(或事务))。由于sketch的线性,交易子集的sketch将允许节点为剩余部分节点计算sketch,这就节省了带宽。

  然而,这种方法最终允许恢复2d数量的差异,其中d是初始步骤中估计的集差异。

  六、 讨论

  研究者相信,仅对账交易中继协议在本质上容易受到时序攻击的影响,这可能会揭示交易的来源。不同于洪泛法(?flooding),对账本质上是双向的:一个对等节点的入站连接,是另一个对等节点的出站连接。不能按每个方向,而是按每个连接应用中继。因此,BTCFlood的di?ffusion中继不能在对账中应用。

  Erlay将延迟从3.15s 增加到了5.75s。Erlay协议增加了在所有节点间中继非确认交易的时间,这对于比特币的点对点交易处理(平均10分钟)而言是很小的一部分。研究者调整了Erlay,以最大限度地节省带宽,假设延迟从3.15s增加到5.75s是可接受的话。当然,如果你想要保持和BTCFlood相同的延迟,我们可调整Erlay协议的对账频率,这会稍微增加带宽开销(从节省84%降为节省70%)。

  在实践中,交易中继延迟增加会有两个主要影响:

  区块生产速率由区块中继延迟来定义,而区块中继延迟只能间接由交易中继延迟来定义:如果更少的交易被中继,传播区块就需要更长的时间(因为丢失的交易必须进行中继和验证)。因为Erlay在公开节点之间的延迟要好于BTCFlood,使用Erlay的矿工,其孤块率可能会较低。用户体验:如果在非确认状态下,一笔交易被接受了,那么用户会感觉到2.6秒的延迟增加。但是,未确认交易很少会被用户接受,通常用户会至少等待10分钟来确认交易。因此,我们可以认为,Erlay所带来的2.6秒延迟增加,对于用户体验来说,并没有太大的负面影响。与Dandelion(蒲公英)协议的相容性

  。Dandelion(蒲公英)是另一种交易中继协议,其旨在提高比特币的匿名性和鲁棒性。Dandelion(蒲公英)具有两个阶段: stem(平均在10个节点的单个链路上传播),以及?fluff(使用stem链路中最后一个节点进行 ?flooding中继)。 Erlay与Dandelion(蒲公英)协议是互补的:Erlay将取代Dandelion(蒲公英)协议中的?fluff阶段,而Dandelion中的stem阶段,将通过入站和出站连接进行flood,以保护自私节点的隐私。

  向后兼容性。当前,全网仅有30%的节点运行了最新版本的Bitcoin Core软件,因此,Erlay必须向后兼容。如果并非所有节点都使用Erlay协议,则当两个对等节点都支持它时,它们之间的连接才会激活Erlay。

  与挖矿相关的攻击。Erlay与自私挖矿等攻击之间没有直接关系。通过使得时序攻击变得更加昂贵,Erlay使得网络拓扑结构的推断变得更难。因此,Erlay间接使网络变得更健壮。

  与其他区块链的相关性: Erlay实践上并非只适用于比特币,市场上大多数已部署的区块链都可以使用Erlay协议(例如以太坊、 Zcash等),因为它们都使用了洪泛法(?flooding)来中继交易。即使有可能存在TXID大小或连接对等节点数量的差异,真正重要的在于交易率。Erlay理论上适用于交易率较高的系统。另一方面,由于 PinSketch具有二次方关系的复杂度,因此在没有修改的情况下使用它,将导致更高的对账成本,以及更高的硬件要求。例如,一个类似比特币的区块链网络,但其交易吞吐量为700 tps,如果直接把比特币的Erlay协议搬过去运用,那么平均的对账集差异会由1000个元素组成。根据基准,通过Minicketch直接对账会需要1000毫秒。而如果递归应用平分法3次,则需要对125个元素组成的8个组块进行对账,而这需要20毫秒。由此,Erlay可适用于交易率更高的系统。

  七、结论

  比特币是全世界范围内应用最广泛的P2P应用之一,当前,其网络依赖60000个节点进行洪泛法(?flooding)交易中继。洪泛法(?flooding)提供了低延迟,且对敌对行为具有鲁棒性,但它也是带宽低效的,同时会造成大量的冗余流量。而由研究者们提出的Erlay协议,可有效减少交易所需带宽,通过2.6秒的交易广播延迟,带来84%的带宽节省。Erlay允许比特币节点实现更高的连接性,这将使比特币网络变得更安全。当前,研究者正积极将Erlay协议引入Bitcoin Core软件。

  而其他类似的区块链,也可采用这种协议来降低节点带宽需求。

  有兴趣的读者,可阅读原论文了解更多关于Erlay协议的内容:https://arxiv.org/pdf/1905.10518.pdf