作者:Che Kohler
在过去十年间,比特币从一种不起眼的另类货币变成一种价值几十亿美元、茁壮成长的资产类别,其市值一度达到 1 万亿美元。一个持有这种购买力级别、每个月都清算几十亿美元交易的网络,总是会面临安全性问题。
这让安全性变成了比特币网络的首要焦点,而比特币网络的安全性依赖于节点之间的联通性。更高的联通性会产生更好的安全性,这就是为什么运行一个节点是比特币使用体验中的一个重要部分。运行节点为个人提供了特定的安全性和隐私性好处,同时也帮助了网络的去中心化、增加了观察网络的眼睛。
比特币节点可以运行在任何设备上,从老旧的笔记本到树莓派小电脑,但除了硬件,你还需要管理节点的软件。在你运行一个比特币节点的时候,相关的流量中有一半都是在公布交易。
不像区块的转发,交易的传播在以往的工作中很少受到重视,可能会变成网络效率的一个瓶颈。Erlay,一个开发中的新提议,尝试解决这些带宽上的限制。
什么是 “Erlay 协议”?
Erlay 是一种比特币升级提议,致力于提高在比特币全节点之间转发未确认交易时候的带宽效率。为了理解这套协议如何优化全节点广播交易数据的方法,我们先要知道当前的节点是怎么工作的。
在当前服役的比特币 gossip 协议中,全节点被配置成向自己的所有对等节点播报每一笔新交易,不管对方是否已经从别的地方收到过这笔交易。
播报一个 txid(交易标识符)至少要 32 字节,如果一个节点拥有默认的最大连接数 —— 125 个对等节点,光这里就要消耗大量的多余带宽,因为不论任何一笔交易,在最优情况下,每个节点都只需要从一个对等节点处了解。
为什么需要 Erlay ?
根据 Erlay 白皮书对比特币节点做的研究,没有 Erlay 的话,在拥有 8 个出站连接(outbound connection)的节点中,交易转发每个月最多可以消耗 18 GB 的带宽。如果是 24 个出站连接,那么每个月最高可达 50 GB 。
对无法获得、无法负担如此高的带宽要求的人来说,运行节点就编程了一个非常昂贵的事情,这会限制比特币在那些人们最需要它的地方得到采用。
如果你身处一个发达国家,可以负担可靠且全天候运行的互联网连接,这对你来说不是什么问题。但是,在世界上绝大部分地区,这并不是现实,带宽是昂贵的、互联网连接不够可靠,而且,很多时候,用户所依赖的移动数据连接,即使在可用的时候也是断断续续的。
如果节点依然会消耗这么多的带宽,许多想运行节点的人就会被拒之门外,他们将不得不信任第三方。
Erlay 所提议的升级
Erlay 协议可以分成两部分:第一部分是,限制一个节点会直接向其播报交易的对等节点的数量(默认值为 8)。
第二部分是,基于 libminisketch 创建一组协调消息(reconciliation)并跟其余的对等节点分享,从而避免发送已被这些对等节点知晓的交易的 txid ,从而也减少了广播重复信息的需要。
比起当前的协议,Erlay 可以帮助节点扩展自己的对等节点数量,让接受更多连接成为可行的事情。
这可以提升交易转发网络的强度,对抗意外的和有意发动的网络切割。
Erlay 实现以前的交易广播
在实施 Erlay 以前,交易会从发起广播的节点传播到其对等节点。这些对等节点会继续将交易播报给自己的所有对等节点。这个过程称为 “flooding(洪泛)”,会一直持续到整个网络中的所有节点都收到这笔交易。
这样做的好处是,让所有的节点都知道有新交易出现,而且非常快速,代价就是每个节点都会多次收到同一笔交易。这种冗余不必要地花费了大量带宽。
Erlay 实现之后的交易广播
Erlay 尝试简化节点之间的通信流程:Erlay 公开节点,使用洪泛方式跟许多对等节点快速传播交易;而私人节点,即从其它节点收取信息、但并不广播信息的节点,则不会参与洪泛。
相反,他们会发送成批的交易给对等节点,以了解对等节点所知的交易并协调传输有差异的部分。这种更高效的方法致力于将节点的带宽用量减少 40% 。
这种方法尝试在时延和带宽、节点隐私性之间找出最优的平衡。比特币的点对点设计的一个主要隐私目标是,应该难以确定哪个节点是一笔交易发出的起点。
通过混合洪泛和批处理,并让私人节点只使用批处理,Erlay 希望能加强点对点的隐私性。
Erlay 已经在开发中
Erlay 的起点是 2019 年 9 月 26 日,Pieter Wuille 和 Gleb Naumenko 正式发布 BIP 。但是,花了大概三年时间才让这个提议得到认可和实现。
并非只有面向用户的特性才称得上创新
虽然 Erlay 听起来不像是比特币上最激动人心的升级,但它瞄准的是一个拖住去中心化和世界各地的用户实现自我治理的核心问题,是一种值得敬佩的卫道精神。
虽然我们已经习惯于为更有魅力的特性欢呼(这也是山寨币的营销的结果),但归根到底,如果底层的网络不安全、不健壮,上面的特性和工具再智能都毫无用处。
当山寨币人为门把手的样式而辩论时,比特币人在检查房子的地基并追问我们是否能做得更好?而且,只要能够,他们就会去做。
所以,不要听信别人说比特币人没有创新:比特币只是没有在不重要的事情上创新,它想让上面做的所有特性都变得更有价值。
参考文献
如果你想了解更多,请把这篇文章当成一个跳板,不要把我们说的当成最终的结论。花点时间,自己研究一下这些文献:
- Erlay Whitepaper
- Bitcoin Ops – Erlay
- Erlay: An awesome performance improvement to the Bitcoin network(中文译本)
- GitHub
(完)