科普 | 带宽和区块链:开发者如何最小化开销
区块链将全世界都记录在了同一个账本上。每挖出一个新的区块,这个账本就会生成一个新的状态来代替之前的状态。 共识 机制旨在确保这个状态得到了社区中大多数人的认可。在巧妙设计的系统中,激励机制可以确保不可变性。只要等待足够长的时间,已成历史的状态就无法被篡改。区块链为我们带来了可编程货币,并且俘获了许多人的想象力。
比特币和以太坊是区块链世界的两大领头羊。事实证明,这两种账本技术流行程度高,而且发展势头强劲,但是人们普遍不看好它们的可扩展性。为什么会出现这种情况呢?又如果改善这种状况呢?
背景
区块链本身也叫作 Layer 1 。区块链充当的是网络中所有数字资产归属权的全局信任来源。网络中的全节点会追踪账本的当前状态。要想保持这种去中心化或无权力中心的状态,就必须让小矿工也能够参与验证并为区块链做贡献。小矿工手中的系统资源和带宽远比不上大矿工。
为实现免信任性和抗审查性,区块链不能由某个实体或小团体控制。开发人员认为要让掌握不同资源的人都能够参与进来,从而避免权力集中和单点控制的问题。因此,比特币的 区块大小上限 得不到提高。这一上限会抑制整个系统在资源要求上的膨胀,让更多人能够参与进来。
要注意的是,参与方之间也可以通过局部协议进行转账,无需进行全局更新。这就是我们通常所说的 二层方案或链下交易 ,对于扩大交易的规模具有深远影响(虽然不一定能扩大用户基础)。其思路是,各方之间的交易在上链之前可以聚合起来。在某些设计中,这种局部协议从开启到将状态上链可以历时几个月或者更久。
工程师都很看好二层解决方案,认为它能够大幅提升区块链的可扩展性,对于密码学货币能否满足大用户群的需求具有决定性作用。然而,尽管二层解决方案具有很大的影响力,但它能做的只是提升底层区块链的吞吐量,而非带来无限的可扩展性。因此,重点还是要对网络进行优化,最小化每个交易所需使用的资源。
问题
去中心化的比特币区块链是全球共享的广播媒介——很有可能是人类设计过最低效的通信方式。
—— Greg Maxwell
一层区块链的基本问题是全网的副本必须与总账同步更新。每一个全节点都会存储一个区块链的副本,每个副本都是完全相同的,并经过了每一个全节点的独立验证。
新挖出的每一个区块必须广播给其他节点。延迟对挖矿节点来说尤为关键,因为它们需要紧接着最新挖出的区块继续挖,否则就会白费力气。为了验证最新挖出的区块,矿工需要知道区块中包含哪些交易,并且掌握所有交易的副本。
目前来说,比特币软件采用的是一种幼稚的方法来广播交易和区块。节点接收到交易之后会将它们广播给其他节点。创建的区块会被广泛传播出去,不管接收者是否已经掌握其中的部分数据段。对于需要实时跟进出块情况的矿工来说,这么低效的流程简直不能忍。
补救措施
比特币的低效问题是众所周知的。多年来,提高网络效率的努力都在减少带宽成本和加快传播速度上。前比特币维护者 Gavin Andresen 在 2014 年发布了一个 O(1) 区块传播 路线图。后来,这个路线图经过了大幅修改,不过基本思路没怎么变。
-FIBRE 网络示意图(来源: bitcoinfibre.org )-
中继网络
矿工已经在积极实现 FIBRE 和 Falcon 之类的区块中继网络了。这些中继网络采用的是低延迟 + 高带宽的连接方式,不过存在一些缺陷,例如中心化程度高,为实现延迟最小化消耗了大量带宽等等。这些网络不会减少运行非挖矿节点所需的带宽总量,这在工程师扩大系统规模之前是必需实现的。
压缩区块
如果在传输区块的时候,区块中包含的交易是接收者已有的,就不是最优方案。密码学家 Greg Maxwell 曾指出,新挖出的区块中有大部分交易都是接收者已知的。说明白点,新挖出的区块中有很多交易很可能是接收者的内存池(已接收到但未经确认的交易集合)中已有的。Greg Maxwell 研究了这一问题,并在 2015 年 12 月草拟了一个 提议 。
核心开发者 Matt Corallo 在 Greg 研究的基础上改进了这个提议,并于 2016 年初正式提出了 BIP152 ,阐明了压缩区块的概念。 压缩区块 协议指的是发送者向接收者发送的不再是完整的区块数据,而是接收者肯定没有的区块头、交易 ID 缩写和交易集。这一改动旨在节省带宽,不过也有降低延迟的效果。
Erlay
比特币采用的是 “大水漫灌” 型的区块广播方式,显然不是在网络中传播交易的最佳方式。一个节点可能会接收到同一个交易的多个副本,而且必须将这些副本广播给所有与之相连的节点。由此一来,消耗了大量带宽,造成了不必要的开支。此外,这会打击节点与更多节点建立连接的积极性,因为多连接一个节点,每传播一个交易所需的带宽就会相应递增。
连接的节点越少,消耗的带宽就越低。 然而,这可能会带来一定的危险,使用户更容易遭受日蚀攻击(eclipse attack)。 TumbleBit 的创建者 Ethan Heilman 在 2015 年发布了一篇关于日蚀攻击的 研究论文 。这篇论文的基本思路与女巫攻击有关。攻击者伪装成多个不同的实体来迷惑受害者。攻击者会垄断被攻击节点的所有外部连接。作为被攻击节点仅有的信息来源,攻击者会通过创建特殊的区块来伪造当前状态。这种攻击的成本很高,但是如果攻击者可以让被攻击者相信自己收到了一大笔比特币,实际上却将这笔资金转移到了其他地方,被攻击者可能就会被骗过,以为自己已经收到了钱并且愿意出货。
Erlay 可以实现一个连接更好且更强大的网络。如果是在每个节点都连接到其它 32 个节点的网络种,Erlay 的研究人员发现,优化过后,节点使用的带宽会比当前软件下使用的带宽减少 75% 。
下一步怎么走?
一方面让挖矿节点使用中继网络,另一方面让普通节点用户使用压缩区块协议,区块广播就能得到极大的优化。研究人员仍在努力减少系统的开支,并尽可能精简流程。只有当开发人员认为当前吞吐量下带宽消耗量足够低之时,谈论提高吞吐量的问题才会提上日程。
拓展资料
- Greg Maxwell 在 2017 关于改进区块广播方式的演讲
本文由作者授权 EthFans 翻译及再出版。
(本文来源于以太坊爱好者 EthFans,未经作者许可严禁转载,违者法律必究)