关于比特币和#39; Slockchain的增长争论了多年来的争论。有些人希望通过增加块大小(缩放)来提高事务吞吐量。其他人希望专注于改善(减少)在运行网络的资源的技术(提高可扩展性)所需的技术。它有助于它有助于在比特币和#39;瓶颈的位置有很多误解。
在本文档中,我将首先分析限制当前(2019)比特币软件的安全吞吐量容量的主要吞吐量瓶颈。这些瓶颈都是由压力放在最差情况对抗的情况下构成比特币网络的压力。在查看当前软件的瓶颈后,我将讨论这些限制的潜在解决方案,并估计我们将来可能期望的吞吐量。
我会表明,由于今天的局限性,它是SPV节点的限制,它是为了运行SPV节点的大多数用户而不是安全。我将展示为什么欺诈证明对于使比特币适应危险,即使是大部分用户使用SPV节点而不是全节点,也是至关重要的。我还将表明,虽然比特币目前可能不是安全的状态,但是未来的软件优化可以让比特币安全地处理今天超过100项的一次交易/秒,' S硬件。
如果你' d喜欢我花更多的时间做这样的事情,这里我的捐款地址:3a6ofuv4awbc2wrnqg4mjs5aaqlbrmhqym :)
Lukejr分析了同步时间并提供了他分析的结果,降低块的最大块为300kb将允许我们保持当前的同步时间,并且可以同步时间在多年上缓慢降低。但他的脚本只计算一个瓶颈(同步时或技术上只是链大小)。
Bitfury' 2015年块尺寸增加的纸张量化了块化的效果,基于将从网络中排除有多少节点。它包含了很多良好的信息,但它们对被排除的节点的估计并不完全合理,并且尝试估计或将被排除在外的电流或未来节点。
A.用户需要在其硬盘驱动器上存储更多数据。这包括存储历史区块链的两个节点以及需要存储UTXO集的修剪节点,因为较大的块大小可能意味着utxo集的更多增长(因为此刻,平均事务会产生更多的输出消耗)。
B.用户需要使用更多的带宽来下载和上传来自对等体的更多数据。
C.用户需要使用更多的计算机和#39; S CPU时间和内存以验证事务。
D.可以' t做一个,b或c(或觉得它不值得)的用户将无法运行完整节点,而是将使用具有较轻要求的节点,如SPV节点。
E.块将需要更长时间才能通过网络传播,这导致矿工额外的压力合并或集中。
为了评估比特币和#39;我们需要了解需要避免的各种相关的失效模式,以便为比特币网络安全运行。
需要有足够的节点服务数据以向需要该数据的节点提供数据。如果有足够的公共连接或带宽的节点,那么并非所有用户都可以使用该网络。
每个节点都需要有足够的计算资源来执行它成为网络的一部分所需的工作。如果节点的资源太少,则将留下。完整节点需要多于光节点做更多的工作,但灯节点仍然需要做一些工作。
Sybil攻击是攻击者将许多明显不相关的节点(实际上控制)连接到网络的情况。 Sybil攻击Don' t直接造成伤害,而是将攻击者提供他们可以作为另一个攻击的一部分使用的工具。 Sybil攻击可以允许攻击者对以下内容:
通过占用可由合法节点使用的连接和故意将其链接速度减速到最低点的连接来排除网络资源(连接,带宽等),而不会断开连接到最低点。在最糟糕的情况下,这可用于拒绝对其他节点的服务,例如通过垄断公共节点资源。
通过让一半的网络通过快速地获得块,而是通过快速地获取块,但是通过使用上述技术的另一半的速度来减慢网络的速度来策略性地减慢块传播。这可以由矿工使用,以不公平地挖掘更多的块,而不是他们的哈希波尔的份额将能够。
通过将节点与交易链接到它发送的事务,通过查找发送事务消息的第一个节点来通过查找发出的第一个节点来执行Nejiny' Sybil可以执行该节点。使用定时攻击,即使使用代理(如TOR)的节点也可以完成这一点。
使其更轻松地为各个目标进行蚀,因为具有Sybil网络的攻击者可能已经与目标连接。
Eclipse攻击就像一个Sybil攻击,但在一个或多个节点上是针对的。这是攻击者控制所有连接的位置,节点或节点组的其余部分都有。这允许攻击者:
这两种形式的审查是以多种方式选择性地或战略性地完成,使得节点可能不知道其被黯淡。这也可用于阻止黯然失色矿工'块或在略微更容易的情况下块或在日食节点上进行双重支出(取决于散列机的减少,节点将容忍多少)。大规模的Sybil攻击,攻击者拥有网络中的大部分节点都基本上是Sybil和Eclipse攻击同时,因为大部分网络节点可以纯粹偶然地被黯然失色。
防止Sybil和Eclipse攻击的一种批判方法是增加每个节点对网络的连接数量。但每个连接节点都增加了额外的负载。另一种方式通过这些类型的攻击保护比特币软件保护是通过确保一个出站连接连接到给定/ 16掩蔽子网中的任何节点,这使得非僵尸网络Eclipse节点更难,因为通常是IP地址从相同的子网块分配以及从不同子网获得地址的能力几乎从不可用。对公共节点的传入连接采取一些其他措施,但是当节点最大化其传入连接时,这些措施只会影响。
由于比特币节点如何存储已知的地址,之前已连接到网络的私有节点将达到这一点,并且在攻击开始之前,它将需要长时间运行的Sybil攻击到网络上的Eclipse节点。这将需要多长时间是一个问题我不知道答案。我也没有知道有多少新节点进入网络(这将是可能的黯淡的)。
由于此问题周围,I' LL假设攻击者将采用长期运行的Sybil,这将通过扩散到几乎所有节点的记录中来避免上述问题。我还假设我们' d的最大预算将来自状态级攻击者。
在一种类型的攻击中,如果Sybil攻击旨在减慢块传播,以便给予他们的挖掘操作的优势,攻击者将尝试最大化用于连接到攻击者节点的诚实公共节点的连接百分比。为此,攻击者需要创建尽可能多的节点,以便最大化发出传出连接的公共节点将连接到它(而不是诚实节点)。它还希望根据它可以创建与公共节点的许多外向连接。这些节点将在大部分时间内操作以看起来像正常诚实节点,但是当他们的挖掘操作挖掘一个块时,一旦块通过网络中途即可,攻击者节点就会停止传播该块,延迟时间网络的下半部分可以在它的顶部开始挖掘。
到Sybil或Eclipse节点,使用僵尸网络可能是最便宜的。这些可以花费超过700美元的节点7 / hr [53]。从本撰写中,大约有9000个公共节点[54],这意味着运行90%的Sybil攻击将为所需的81,000秒每月(500万美元/年)花费约410,000美元。在90%的Sybil攻击中,.9 ^ 8 = 43%的新私人节点将是完全黯然失色和1-.1 ^ 8> 99.99%的公共节点将至少有一个与Sybil攻击者节点的连接。愿意将每年10亿美元的国家级攻击者进入Sybil攻击,可以运行1600万节节点。
对州立一级攻击者,每年预算为10亿美元,目前的比特币根本没有机会忍耐这样的攻击。该预算的攻击者目前可以持续95.8%的Sybil攻击。唯一两个与吞吐量相关的攻击的杠杆是增加公共节点的数量或增加连接数。但是,即使公共节点的数量乘以100次(至90万个公共节点),攻击者也可以控制95%的连接,允许攻击者轻松耗尽网络资源并操纵块传播速度。同样,如果传出连接乘以100(到800个连接),则只有1个节点中的1个与诚实网络至少有4个连接(参见数学)。当我们获得大约900,000个节点时,我们只能达到合理的范围,其中包含80个传出连接,其中66%的节点将至少有4个连接。
对于未来的比特币,具有一定的改进和全世界的用户,如果1%的节点是公共(8000万节节点),则只能运行17%的Sybil,如果是公共(8000万节),则只能运行17%的Sybil,如果有67%的Sybil 0.1%的节点是公共(800万节)。然而,A> 95%的Sybil将需要大大影响延迟,这将花费约80亿美元/年才能运行0.1%的公共节点。
如果我们希望确保状态级攻击者可以' t显着地操纵块传播,需要大约500万个公共节点。
在另一种类型的攻击中,如果Sybil攻击旨在慢慢或拒绝对比特币用户的服务,攻击者将尝试使用诚实公共节点的所有连接,并最大化连接到它的私有节点的数量。然后,攻击者将省略其发送到这些私有节点或发送信息后或慢速的信息。这种类型的攻击将由带宽而不是节点数门控,因为即使是几百个节点可能会使用足够的带宽,从而可能会使用公共节点的传入连接。
Sybil攻击者可以租用僵尸网络每小时约50美分,或每年4380美元。 [53]如果每个公共节点容忍共同共有50 Mbps的连接,则这种类型的攻击可以为当前9000个公共节点的所有连接进行每月约160,000美元或200万美元/年。具有10亿美元/年预算的国家级攻击者可以吃5 Tbps的带宽(足够450万Mbps公共节点)。
如果我们希望确保状态级攻击者可以' T DOS网络,我们需要确保全节点具有超过230个Tbps的总带宽容量,这将达到450多万50-Mbps节点。
从上面的结论是,唯一能够承受国家级攻击者的水平的唯一方法,我们需要大大增加公共节点的数量和公共全节点的总带宽容量,这可能只是需要大规模增加通过。数字在这里真的很重要,而不是比率。目前大约10%的节点是公开的,并且远远低于1%的用户全部运行全节点。最后的比率可能会随着更复杂的用户加入网络而减少。
可能需要超过500万来防止这些攻击中的任何一种。这使得我们鼓励公共全节点数量的增长至关重要。这可以通过使它们更可访问(或维护他们目前的方式)或通过吸引更多人来运行它们来完成。
当一个或多个矿工释放从主链中叉时堵塞的链条发生了链条,并且不再在主链中的块顶部。比特币全节点将遵循最长的有效链,但如果最长的链ISN' t有效?全节点赢得' t认识到它,但即使它在大多数情况下,光节点目前也将遵循最长的链条。 SPV节点Don' T目前有任何方法可以了解大多数类型的共识规则变更。
想象一下,大部分比特币用户使用SPV节点来' t判断最长链是否包含无效的交易。如果大多数矿工决定更改规则并将无效的事务添加到其块中,则所有这些用户都将开始使用该链条。这些人不会故意切换规则,但会意外地遵循这种新链条,因为他们无法知道链条无效。它可能会听到足够的人和#39;足够的人们了解这条规则的变化,以便吃任何损失,他们' ve所采取的任何损失(他们在错误的链条上的一天或两天)并决定切换回来。但是,人们似乎只不过是什么,无论是因为他们认为他们都没有控制,他们都没有理解'去过的东西,他们忙着&#39。思考它是一个好主意,或任何其他原因。
在这样的场景中,当他们认为这是旧硬币时,那个时候支付的所有SPV用户都会收到新的硬币。如果新的大多数叉子以不安全的方式改变了规则,那么新的硬币就可以随着灾难发生的方式迅速失去价值,或者人们意识到它有安全问题并将其销售为旧硬币。这可能代表在新硬币中支付的所有用户的总损失。对于任何想要支付留在旧链条的人(例如全节点)的人来说,这也将拒绝拒绝服务 - 将予以支付但从未收到过。这将在人们的时间,金钱和理智方面具有很高的成本。
这就是为什么它的命令是用户强大的超级性能运行客户端可以自动发现最长链是否有效的客户端。至少,我认为每个人都可以同意构建SPV客户端,以便他们在这种情况下作为一个完整节点做出与完整节点的行为,这是一个坏事。幸运的是,它看起来像是欺诈证明或欺诈暗示所需的aren' t难以补充,甚至可能甚至不需要共识更改(见"潜在的解决方案"部分)。
比特币挖掘是一个对阻止传播延迟敏感的过程。块到达其他矿工的速度越长,越来越多;头部开始"刚刚开采的矿工(和与那些矿工密切相关的矿工)得到了。矿井越大的矿工更常见的是,更频繁地开始,这使得这些更大的矿工与他们的总哈希波尔的份额相比,较大的矿工是不成比例的优势。这种不成比例的优势是将挖掘和巩固到单个紧密连接的实体的压力。
如果比特币挖掘被整合到有一组控制器的实体中,它将放置比特币,因为它将是一个失败的点,并且可能导致51%的攻击。因此,比特币网络以一种限制延迟低于较大矿工的水平的传播延迟的方式运行。
要了解比特币网络可以做什么,我们需要了解比特币网络中的计算机的资源是否具有或将具有。 I' LL讨论当前机器资源状态以及随着时间的推移,这些资源如何增长(或成本正在缩小)。
然后,LL然后选择当前比特币用户的值范围。第90百分位数和第10百分位数的用户将被用作代表下限。范围将表示这些值的不确定性,因为我没有确切的数字。范围更宽,较少的确定性。但是,真正的价值有望在该范围内,具有相当高的信心。
I' LL也选择未来比特币用户的价值范围,但我会选择代表该资源目前拥有的资源的数字,这意味着如果我们将比特币扩展到所有世界,而且是什么机器资源是否有任何可以使用比特币的人。由于您需要访问计算机使用比特币,我赢了' t' t' t' t' t有计算机,但我会考虑人们仍在使用的潜在旧电脑。对于未来的比特币用户,我们' LL为第90个百分位数和第10百分位数选择不同的数字,以及我们' ll也为第一个百分位数选择的数字,因为当对SPV节点的进步时,它会使它能够安全绝大多数用户运行SPV客户端而不是完整节点。
世界' S平均互联网速度范围在380 kbps和85 Mbps之间,然而,大国较低的范围更像是2.5-7.5 Mbps(中国)和富裕国家之间的较低范围是平均值9.2-17.3 Mbps(意大利)(由于来自不同来源的数据,范围)[5] [6]。前10%的国家的低端平均速度为15-30 mbps(再次取决于来源)。底层10%的国家的上端平均速度为1-2 mbps。令人惊讶的是,数据似乎表明移动连接速度不与固定电话速度不同,所以我' ll忽略了本文的差异。
一般共识是,大多数比特币用户更加精致,更富裕的人,所以对于当前的比特币用户,我' LL假设90%的用户具有超过9-17 Mbps的带宽,最高10%用户在平均身上的互联网上至少为50-150 Mbps。
在未来,我们希望比特币能够到达最贫穷的人。因此,对于分析未来比特币的部分,I' LL假设90%的人低于平均水平(电流)带宽超过0.5-1 Mbps,前10%的速度为15-30 Mbps,顶部1%具有至少1000 Mbps的商业级纤维速度。
世界上互联网速度幅度增加约25%/年(2015年23%[7],2016年26%[8],2017年30%[9],也见一些增长图表)。请注意,在发展中国家,这些速度可能比发达国家在发达国家的速度越来越大,而且还有增加速度下降。
许多ISPS在他们的客户可以在一个月内下载/上传的数据量。达到数据盖后,带宽缩小或收取额外费用。全球约有35亿互联网用户[57],其中约20亿只只通过手机访问互联网。 [60] I' LL承担其他15亿宽宽带互联网。大约10亿人有大量的数据,他们可以在一个月内下载多少数据[58]。我假设其他25亿人不要有数据帽。根据该数据,宽带互联网用户的第90个百分位数数据概率约为10GB,只有27%的互联网用户都有数据帽。
我没有能够找到手机数据的大量,但它看起来像移动数据帽一般在1.5 - 20 GB的范围内,除非你住在哥本哈根,都柏林或首尔等异常国家。 [59] [61]我没有' t有良好的数据分布
......