潜在的以太坊升级“danksharding”的可扩展性属性
原文标题:Forecasting the sustainability of blockchain scaling
原文作者:Chris Buckland,Infura 高级软件工程师
原文来源:hackmd.io
编译:隔夜的粥,DeFi之道
感谢 Ed Felten、Frederico Lacs 和 Patrick McCorry 对本文的评论和反馈。
区块链未能满足吞吐量的强烈需求。自 2016 年底的比特币以及 2017 年底的以太坊以来,满区块(full block)的频率表明市场对区块空间的需求超过了供应,而交易费用的上涨,迫使负担不起的用户和应用离开了区块链。
最简单的反应是增加供应(扩大区块),但这对协议的安全性和去中心化属性产生了负面影响。更大的区块意味着网络中的节点需要更好的硬件来验证区块。节点运营商将需要支付更高的成本来购买硬件,这意味着愿意这样做的人会变得更少。但是为了保证安全,区块链需要各种各样的用户能够验证区块。
因此,我们需要寻找不会增加普通用户硬件成本的扩容方案。然而,一些增加吞吐量的方法属于一次性改进,例如用于存储状态数据的更有效的数据结构,或者验证用户签名更便宜的方案。在这些情况下,扩容收益是不会持续的,增加的区块需求最终会消耗掉一次性的供应增加。届时,我们就需要找到另一种改进方案以再次提供更多的供应。
在古希腊神话中的西西弗斯,必须要把一块沉重的巨石运到山顶,然后让它滚下来,并永远重复这个任务。
这种持续的创新确实存在于其他计算资源中,从而导致性能呈指数级提高,这就是摩尔定律。然而,关于区块链吞吐量的摩尔定律尚未出现,或者如果它出现了,它仍然会被需求所超过,正如不断攀升的交易费用所证明的那样。
相反,如果可以找到一种可以在未来可持续扩展,而无需持续协议创新的方法,那将是更加理想的。为了分析协议在未来是否可持续扩展,我们需要对不断增长的区块需求、协议对计算硬件的要求以及硬件成本的下降进行建模。
在本文中,我们将:
Danksharding 是一项引入一种新型区块链资源的提案,以提高以太坊作为数据可用性提供层的吞吐量。在这篇文章中,我们将尝试分析 danksharding 是否是可持续扩展的,或者说巨石是否最终会滚下山坡,因此可能需要另一种更好的数据可用性方案。
Danksharding 定义了在新事务类型中提供的非结构化数据 blobs。然后对这些数据 blobs 进行纠删码处理,并在节点组(分片)之间进行划分,然后这些节点组可以将其部分数据播种到其他节点。如果有足够多的节点证明它们已看到了足够多的数据,那么一个区块就被认为是有效的,并且 blobs 中的数据被认为是可用的。
虽然 danksharding 会影响许多底层硬件资源,例如存储、计算以及内存,但在本文当中,我们将仅关注其对网络带宽成本的长期影响。
我们将采用以下方法进行分析:
为了提供可持续的扩容,区块链吞吐量需要跟上需求。区块链协议提供了全新且独特的资源。它们的抗审查性、透明度以及不变性使新的平台和应用类别成为可能。
英国的宽带数据使用量似乎呈指数级增长,数据来源:https://www.ofcom.org.uk/__data/assets/pdf_file/0015/222324/affordability-of-communications-services-summary.PDF
如果交易成本保持不变(即吞吐量能够跟上需求),那么我们预计对区块链资源的需求,将以与其他基本数字资源类似的方式增长(呈指数级增长)。因此,对于这个模型,我们假设“可扩展”的区块链可以提供指数级增长的吞吐量。
随着技术和基础设施的突破,硬件会变得更加强大。对于网络带宽,这些改进的速度由尼尔森定律表征,尼尔森定律预测高端用户的网络带宽将以每年 50% 的速度增长。在很多情况下,这意味着每单位硬件资源的成本呈指数级下降,因为用户花费相同但获得了更好的技术。虽然我还没有找到关于每 GB 网络带宽随时间变化的成本的良好数据,但我发现显示每月网络带宽支出的数据大致保持恒定。
英国的平均宽带支出似乎大致保持不变,数据来自:https://www.ofcom.org.uk/__data/assets/pdf_file/0015/222324/affordability-of-communications-services-summary.PDF
将此与尼尔森定律相结合,我们可以直观地看出每 GB 带宽的成本呈指数衰减。
Danksharding 描述了很多不同类型的节点,每种节点在区块链系统中扮演着不同的角色。在这篇文章中,我们将分析区块构建器、质押者、全节点以及存档节点类型。为了确定运行这些节点类型的网络带宽要求,我们需要尽可能准确地描述这些节点在网络中所扮演的角色,这与带宽消耗的关系,以及这些节点具有哪些成本约束。
在 PBS 模型中,区块构建器节点负责从用户那收集交易并打包到区块中。这一角色的去中心化是否必要值得怀疑。如果实施 cr-lists,则即使是中心化的区块构建器网络也无法进行审查。这需要进一步调查和研究,但出于本文的目的,我们将假设中心化的区块构建器系统是可以接受的,因此我们对构建器可持续性的唯一限制是,构建器节点仍然可以盈利:
其中 K (t) 是运行成本,R (t) 是在时间 t 运行区块构建器的收入。
区块构建器无法直接从协议中获利,而是通过收集和排序交易来获利,也就是 MEV。我们在这里假设 MEV 的收入与分片 blob 吞吐量成正比(尽管这种关系实际上可能是超线性的)。
区块构建器创建满区块(full block),然后通过网络传输它们,因此它们的网络使用量与区块大小/吞吐量成比例增加。因此,我们可以将运行节点的成本描述为吞吐量和网络带宽成本的函数:
其中 β 表示吞吐量和网络使用率之间的比例。
将其与我们对吞吐量和网络硬件成本的假设进行替换,并与我们的收入进行比较,我们得到:
该函数有两种基本形式,取决于常数。一个是第一项最初大于第二项,在第二项开始主导更高 t 之前产生正结果,另一个是第二项从一开始就主导。
这意味着,根据常数的值,danksharding 最初对于区块构建器来说可能是不可持续的,它们的成本将超过收入。然而,不管常数如何,区块构建最终会变得可持续,因为利润仍然与吞吐量成正比,而它们的成本会通过降低硬件成本而降低。
这些节点参与权益证明共识协议。它们都提出了从区块构建器那里收到的区块,并证明了其他质押器提出的区块有效性。去中心化对于这个角色是非常重要的,以保持审查阻力并防止恶意重组。我们可以通过确保运行一个质押器节点的成本永远不会超过某个特定的限制来保持这个角色的去中心化,从而使不同的参与者可以参与其中。
其中 Qs 是我们期望质押器能够在网络硬件上花费的最大成本。
质押器不会从区块构建器那里收到完整的数据。构建器将数据编成一个正方形,在水平和垂直方向上对其进行纠删码处理,然后将其拆分为行和列。每一行和每一列都被播种到它自己的子 p2p 网络层中。然后质押器订阅固定数量的列 p2p 网络和固定数量的行 p2p 网络。由于数据以正方形排列,但质押器仅对行和列进行采样,因此它们收到的数据与完整数据大小的平方根成正比。
仅对完整数据的固定数量的行和列进行采样,这意味着它们的网络使用量与完整数据大小的平方根成正比增长。图片取自 https://www.YouTube.com/watch?v=e9 oudTr5 BE4
因此,它们的网络使用量应该与吞吐量的平方根成正比。然后,我们将运行质押器的成本描述为:
其中 γ 是分片 blob 数据吞吐量和网络使用率之间的比例常数。
代入我们关于吞吐量和网络硬件成本的假设,并与我们对去中心化的约束进行比较,我们有:
根据常数 c2 和 d2 的比较值,我们得到了关于在 danksharding 方案中运行质押器的可持续性的不同结果。如果吞吐量增长率超过了成本衰减率的两倍,那么运行质押器的成本将随着时间呈指数增长,最终肯定会超过运行质押器 Qs 的固定限制。
然而,如果吞吐量以硬件成本下降速度的两倍增加,那么运行节点的成本应该会随着时间的推移而降低。
全节点负责验证新区块的有效性,但不参与区块的创建。为了网络的安全,普通用户可以运行一个全节点。在这种情况下,运行一个全节点的成本应该超过一个指定的限制,并且这个限制可能应该比质押所需的更低:
其中 Qf 是我们期望质押者能够在网络硬件上花费的最大成本。
数据的纠删码意味着全节点可以通过请求数据点的随机样本来获得完整数据存在的概率保证。为了实现这种概率保证,全节点只需要发出对数网络请求(每个请求的大小都是恒定的)。
其中 δ 是分片 blob 数据吞吐量和网络使用率之间的比例常数。
将其与吞吐量和硬件成本的假设相结合,并将其与去中心化成本约束进行比较,我们得到:
由此我们看到,虽然最初的时间增加会导致成本增加,但最终硬件成本的降低会占主导地位,从而确保从长远来看,运行一个全节点将是可持续的。然而,在短期内,其峰值可能会高于该限制值。
请注意,全节点也可以决定传播更多的数据,而不仅仅是它们的对数样本。在这种情况下,他们可以传播固定数量的行和列,从而使它们具有与质押器(staker)相同的网络成本。
存档节点会创建额外的索引和补充数据结构。它们对于网络的安全来说并不是必不可少的,但它们确实会影响网络的可用性。一个中心化存档节点网络只有有限的权力,它们可以审查用户访问存档状态,但只要用户能够找到一个愿意提供对存档状态访问的存档节点运营商,那么用户就能够获得他们需要处理的数据。因此,我们在这里假设,在存档节点这个角色中,高度的中心化是可以接受的,并且只要成本不超过收入,运行存档节点就是可持续的。
存档节点运营商的收入模式会更加多样化,他们倾向于对 API 的使用收费并与不同的项目进行定制交易。我们在这里假设,就像区块构建器一样,存档节点的收入与链的吞吐量成正比。然而,这可能不是一个有效的假设,还需要进行更多的调查。
存档节点需要所有数据才能运行,因此其网络带宽使用率与吞吐量成正比。
我们分析了不同类型的节点为服务 blob 数据而产生的网络带宽成本。然而,这还不是全貌。节点还会消耗其他硬件资源,例如存储、内存以及计算。
它们还向用户提供不同类型的资源。用户可以在链的状态或历史中存储数据,或执行任意程序。事实上,任何可以被用户公开操纵的可观察资源都是一种潜在的资源——想想 EVM 中的所有操作码。这些操作可以通过影响硬件的方式组合在一起,我们将这些操作分组称为区块链资源。
每个区块链资源可以通过一个描述协议的函数映射到它消耗的硬件数量,我们将该函数称为 Impact 影响函数。Impact 函数描述了每单位区块链资源消耗的硬件资源单位数。
然后可以使用 Impact 函数计算为特定区块链资源提供服务的全部成本,将消耗的区块链资源单元(吞吐量)的数量映射到消耗的硬件资源数量,并将其乘以硬件资源单元的成本。这是我们在上面针对 blob 分片数据区块链资源和网络硬件资源对完成的练习。
运行一个节点的总成本,将是每个硬件和区块链资源的运行成本之和。应针对协议中涉及的每个不同节点类型评估该成本。
其中:
1、i 是节点类型:例如 i∈{BU,S,F,A},其中 BU 是区块构建器,S 是质押器,F 是全节点,A 是存档节点;
2、K (t) 是在某个时间 t 运行一个节点的成本;
3、j 是区块链资源:例如 j∈{H,SW,SR,C,M,B}, 其中 H 是历史,SW 是存储写入,SR 是存储读取,C 是计算,M 是内存,B 是分片 blobs;
4、Dj (t) 是区块链资源 j 在时间 t 的吞吐量;
5、k 是硬件资源:例如 k∈{N,SS,SIO,P,M},其中 N 是网络带宽,SS 是存储大小,SIO 是存储 io,P 是处理能力/计算,而 M 是内存;
6、Ck (t) 是时间 t 时每单位硬件资源 k 的成本;
7、Ij,k 是区块链硬件资源对 j-k 的 Impact 函数;
一旦确定了运行节点的成本,我们就需要检查由于节点在网络中所扮演的角色,该节点可能具有的任何成本约束。然后,我们可以将这些成本约束与运行节点的预测成本进行比较:
其中:
1、Ki (t)是节点类型 i 在时间 t 时运行节点的成本;
2、Ri (t)是节点类型 i 在时间 t 时的任何成本约束;
3、Si 是节点类型 i 的可持续性指标;
预测区块链协议可持续性的方法如下:
让我们总结一下 danksharding 将可持续性预测模型应用于 blob 分片数据 - 网络带宽对的结果。
我们假设对 blob 数据的需求(因此吞吐量)将呈指数增长,单价网络带宽将呈指数衰减,区块构建器和存档节点的收入将与数据 blobs 的吞吐量成比例。
考虑到这些假设,从长远来看,我们可以预期区块构建器和存档节点以及全节点具有可持续的网络带宽成本(尽管可能存在一些短期内不可持续的情况)。
然而,质押器节点的不同之处在于,如果吞吐量的增长速度低于网络带宽成本衰减速度的两倍,那我们只能期望它是长期可持续的。
责编:Lynn