带宽与区块链

转载
1971 天前
16815
蓝狐笔记

文章来源:蓝狐笔记   作者: Jordan Clifford  

前言:由于区块链必须保持全球状态的同步,存在延迟问题,通过中继网络和致密区块,可以减少延迟,不过开发者还在致力于更多的优化。


区块链让整个世界保持在一个状态上。当每个区块挖出,新的分类账本取代之前的状态。共识机制致力于确保该状态被更广泛的社区同意。在设计良好的系统中,激励确保不变性。在经过足够的时间之后,状态无法被篡改。这些区块链给予我们可编程的货币,并且正确地捕捉了很多人的想象力。

比特币和以太坊是区块链两个早期的版本。这些账本被证明是受欢迎和稳健的,但通常也被认为是难以扩展的。为什么会这样?还有什么能改善这种情况?


背景

区块链自身被认为是layer 1。区块链充当网络中所有加密资产的当前位置的全局真相源。网络上的全节点持续跟踪分类账的当前状态。为维持去中心化,它必须能让小矿工验证并为区块链作出贡献。小矿工的系统资源和带宽远不如大玩家。

为了让区块链可信任和抗审查,它们不能被任何单一实体或一个群体所控制。开发人员相信,不同大小的玩家都可参与是很重要的,它可以避免权力的集中和固化,避免出现单点控制。基于这样的原因,突破比特币区块大小的限制就存在阻力。该限制用于限制整个系统,以便让更广泛的人群参与。

应该注意的是,可以在各方之间签订本地协议完成代币的转移,而这无须进行全局的状态更新。这通常被称为layer 2或链下交易,这对交易扩展(不一定是用户)有深远影响。这里的想法是,各方之间的交易在写入区块链前可以先汇总。在一些设计中,将本地状态刷新到全局区块链的窗口可能需要几个月甚至更长时间。

工程师们乐观地认为,layer 2解决方案将为区块链带来巨大的可扩展性,并且它对加密货币能满足主流人群需求至关重要。然而,即使layer 2充当了巨大的杠杆作用,它只能放大基础区块链的规模。Layer 2无法自行提供不受限制的扩展。因此,优化网络以便为每个交易尽可能少地使用资源非常重要。


问题

“去中心化的比特币区块链是全球共享的广播媒体——可能是人类设计的最疯狂低效的通信模式。”——Greg Maxwell

Layer 1的基本问题是分类账的副本必须保持全球的同步。每个全节点存储一份区块链,这些副本必须彼此相同,且由各个节点独立验证。

当找到新块,必须将其广播给所有其他节点。延迟对挖矿节点尤为重要,因为他们需要始终在最新区块上工作,否则他们的工作就白费了。为了验证最新区块,矿工需要知道包含了哪些交易以及所有这些交易的副本。

当前比特币软件使用简单的方法来广播交易和区块。在收到交易时转发给所有对等节点。区块被批量传输,无须考虑接收者可能已有的数据。这些低效对于矿工来说是不可容忍的,因为他们需要确保能访问最新区块。


补救措施

比特币的低效众所周知。为让网络更加有效率,减少带宽负载以及加速广播已经推进了好多年。前比特币维护者Gavin Andresen于2014年发布了O(1) 区块广播的路线图。路线图自那以后发生了重大改变,但想法仍然相关。


(可视化的FIBRE网络,图片来源:bitcoinfibre.org)


中继网络

矿工已经主动采取措施实施区块中继网络,比如FIBRE和Falcon。这些中继网络通过使用低延迟+高带宽连接来工作,但它们具有诸如中心化和使用大量带宽来最小化延迟的缺点。它们不会减少运行非挖矿节点的总体带宽的需求,这是工程师在扩展系统时感到舒适所需的。


致密区块(compact block)

当传输区块时,传输接收者已有的交易是次优选择。密码学家Greg Maxwell认识到,接收者已经知道在新发现的区块中包含的内容。具体来说,接收者的内存池(一组收到但未确认的交易)可能包含新区块内的很多交易。他研究了这个问题,并在2015年12月起草了一份提案。

核心开发者Matt Corallo接受了Greg的工作,并对其进行了改进,它于2016年早期变成了BIP152提案,主要涉及致密区块。致密区块是一种协议,它发送区块头、缩短的交易ID列表、以及一组发送人认为接收者不太可能拥有的交易,而不是发送包含所有数据的区块。这个更改旨在节省带宽,但也有减少延迟的作用。


Erlay

比特币中基于大量广播的方法显然不是在网络中传播交易的最佳方法。节点可以接收每个交易的多个副本,并必须将其转发给它们所连接的对等节点。结果是消耗大量的带宽,导致不必要的开销。它还鼓励节点连接较少的对等节点,因为每个对等节点将需要每个交易的增量带宽。

连接到较少的节点确实有利于减少带宽开销,但它也是危险的,因为它会使用户打开所谓的日蚀攻击(蓝狐笔记注:eclipse attack,日蚀攻击是指对区块链的一种网络攻击,攻击者控制了点对点的网络,并模糊区块链上的节点视图。例如为了对比特币实施日蚀攻击,攻击者通过控制大量的IP地址来垄断连接到受害者节点的连接)。

TumbleBit的创建者Ethan Heilman于2015年发表了关于日蚀攻击的研究论文。其基本思路跟Sybil攻击相关。攻击者试图伪装成很多不同的主体,以使受害者感到困惑。攻击者垄断所有跟受害者节点的传出连接。通过充当受害者节点的唯一信息来源,他们挖掘特殊区块以伪造当前的状态。

这是非常昂贵的攻击。不过如果攻击者可以让受害者相信他们已经收到大量的比特币,而实际上资金已经转移到其他地方,受害者可能会被说服他们已经收到了资金并释放财产。

Erlay可以提供更好的连接和强大的网络。如果一个节点连接到32个对等节点,Erlay研究者发现他们的优化可以导致节点使用的带宽比当前少75%以上。


下一步

通过矿工使用的中继网络和为普通节点用户提供的致密区块,区块广播已经得到大量优化。尽管如此,研究者依然在努力消除系统的开销,使其尽可能简洁。只有当开发者满意当前吞吐量的带宽要求足够低时,才能提高吞吐量。