28

带宽与区块链:开发人员如何最小化负担

 5 years ago
source link: https://www.tuicool.com/articles/y6RVriI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文由币信原创编译,原文链接: https://medium.com/scalar-capital/bandwidth-and-the-blockchain-2ad35c57dbdf

本文版权归原作者所有,仅代表作者本人观点,不代表币信的观点或立场。

本文 约2500字 ,阅读全文需 约6分钟

区块链使整个世界保持在同一页面上。当每个区块被铸造时,新的账本状态就将取代先前的状态。共识机制致力于确保更广泛的社区同意该状态。在一个设计良好的系统中,激励措施可确保不变性。经过足够的时间之后,状态就不会被篡改。这些区块链为我们提供了可编程的货币,并顺理成章地引起了许多人的兴趣。

比特币和以太坊是最早的两种区块链。事实证明,这些账本受人欢迎且健壮,但通常被诟病难以扩展。为什么会这样?我们还可以做什么来改善这种情况?

背景

区块链本身被称为 第1层 (layer 1)。对全网所有加密资产的当前位置,区块链扮演了一种全球性的真实来源。网络上的全节点跟踪帐本的当前状态。 为了保持去中心化或不出现权力中心,小矿工必须能够验证区块链并为其做贡献。而小矿工的系统资源和带宽可能远低于大玩家。

为了让区块链去信任和抗审查,它们不能被任何单个实体或小团体控制。 开发者们认为这一点非常重要:保持各种规模的玩家都能参与,以避免出现权力集中和单一控制点。 正因为如此,提高比特币的区块大小限制才会遇到阻力。该限制用于限制整个系统,保持其可以被广泛访问。

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

工程师们乐观地认为,第2层解决方案将为区块链带来巨大的可扩展性,并且在加密货币能够满足大规模用户群体的需求之前,这将是至关重要的。然而,即使第2层充当了巨大的杠杆作用,它也只能放大基础区块链的容量。第2层无法自行提供无限制的容量。因此, 优化网络以便让每笔交易使用尽可能少的资源非常重要。  

问题

去中心化的比特币区块链是全球共享的广播媒介——可能是人类设计的最疯狂低效的交流方式。

——格雷格·麦克斯韦尔

第1层的基本问题是 账本的副本必须在全球范围内保持同步。 每个完整节点都存储区块链的副本,这些副本必须彼此相同并由每个节点独立验证。

当矿工找到一个新区块时,必须将其传递给所有其他节点。 延迟对于挖矿节点尤其重要,因为它们需要始终在最近的区块上工作,否则它们的努力就会浪费掉。 为了验证最近的区块,矿工需要知道包含哪些交易以及拥有所有这些交易的副本。

目前,比特币软件使用一种不成熟的(naive)方法来传播交易和区块。节点在收到交易时会把它们转发给所有节点。 区块被批量传输而不考虑接收者可能已经有的数据。 对于需要确保他们能够访问最新区块的矿工来说,这些低效率是不可容忍的。  

补救措施

比特币中的这些低效率是众所周知的。多年来,人们一直在努力使网络在减少带宽开销和加速传播上更加高效。在2014年,前比特币维护者加文·安德森(Gavin Andresen)发布了一份 O(1)区块传播路线图 。此后路线图发生了重大变化,但这些想法仍然具有现实意义。

eMfeA3y.jpg!web

FIBER网络图示。来源: bitcoinfibre.org

中继网络

矿工们已经主动采取措施实施区块中继网络,如FIBER和Falcon。这些中继网络通过使用 低延迟 + 高带宽 连接来工作,但它们具有诸如中心化和使用大量带宽来尽量最小化延迟的缺点。 它们并不会降低运行一个非挖矿节点的总体带宽需求,但只有满足了这一点之后,工程师们才会在扩容系统时感到轻松自在。

紧凑区块

在传输一个区块时,传输那些接收者已经拥有的交易是不到最佳标准的。密码学家格雷格·麦克斯韦尔认识到,接收者已经知道了许多新发现的区块中所包含的内容。具体地说, 接收者的内存池 (mempool,一组已接收但未确认的交易) 可能包含新区块内的许多交易 。他研究了这个问题并在2015年12月起草了一份提案。  

核心开发者马特·克拉洛(Matt Corallo)接下了格里格的工作并对其进行了改进,在2016年初,将其形成了为名为“ 紧凑区块 ”的比特币改进提案(BIP)152。紧凑区块是一种协议,它发送 区块头、缩短的交易ID列表和发送者认为接收者不太可能拥有的一组交易 ,而不是发送一个包含所有数据的区块。这一改变旨在 节省带宽 ,但也具有 减少延迟 的良好副作用。

Erlay

比特币中基于洪水广播的方法显然不是在网络内传播交易的最佳方法。节点会接收到每笔交易的多个副本,并且必须将它们转发给所连接的每个节点。这导致消耗了大量的带宽,造成不必要的开销。它还鼓励节点连接到较少的其他节点,因为每个其他节点都会增加每笔交易的带宽。  

连接到较少的其他节点确实限制了带宽消耗,但它可能是危险的,因为它会让用户暴露在所谓的 日食攻击 (eclipse attack)之下。TumbleBit的创造者伊森·赫尔曼(Ethan Heilman)发表了一篇关于2015年日食攻击的研究论文。基本思想与女巫攻击(Sybil attack)有关。攻击者伪装成许多不同的实体,以此来迷惑受害者。攻击者独占所有与受害者节点相连的传出连接。 通过充当受害者唯一的信息来源,他们挖出特殊区块来伪造当前状态。 这是代价高昂的,但如果攻击者可以让受害者相信自己已经收到了大量的比特币,而实际上资金已被转移到其他地方,受害者可能会被说服他们已经收到资金并释放财产。  

Erlay可以提供更好的连接和健壮的网络。如果一个节点连接到32个其他节点,Erlay研究人员发现,他们的优化将导致节点使用的带宽比当前软件少75%。  

下一步是什么?

通过矿工使用的中继网络和普通节点用户的紧凑区块,人们对区块传播进行了大量优化。尽管如此,研究人员仍在努力消除系统的开销,使其尽可能简化。只有当开发者满意于当前吞吐量的带宽要求已经尽可能低时,他们才能提高吞吐量。

- END-


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK