SegWit交易容量增长 – 第一部分

摘要:SegWit以新的较复杂的400万单位区块容量取代了原来的1MB的区块大小限制 。在钱包升级成SegWit 的交易格式后,这将令到网络交易量提升两倍 。本文章主要分析在随着用户逐渐更新并使用 SegWit交易的情况下,如何提升网络交易量。

 

容量增加概述

隔离见证Segregated Witness简称SegWit是比特币制式的升级,该可能会增加整体网络交易量。用户需要先升级到新的交易格式,才能受益于高交易量的提升。这可能会使整体交易量以一个缓慢而逐渐的方式提升。尽管那些升级的人可以立马得到交易费用减少的好处。

更高的交易量是透过以新的区块容量替换旧的区块大小限制来实现的。旧的1MB区块大小限制(如下所示)已从代码中删除

MAX_BLOCK_BASE_SIZE = 1000000;

新的,更复杂的容量限制由以下公式代替:

4 * non witness data (in bytes) + witness data (in bytes) < 4 million units

一旦用户和企业升级到新的交易格式,新的容量限制将使网络的交易量增加约两倍。矿工为了最大限度地提高交易费收入将会尽可能把最多的交易添加到区块内,而新区块容量便是该上限。

 

见证数据(Witness Data)是什么?

见证数据是数字签名,授权费用的支付。下图试图说明SegWit应用之前和之后的交易结构。在一个典型的交易中,见证数据占整个数据大约54%的容量,见下面的第二个图表中的蓝色矩形。

下图显示了两笔交易,其中交易2支付其在交易1中所收到的款项。

SegWit – 交易构的明(百分比数据占用)

 

SegWit– 交易构的明(百分比数据占用)

修复第三方交易的延伸性

我们经常听到到,SegWit是将见证和非见证数据“分开”并“放置”到两个不同的地方。真实情况并不是如此,见证和非见证数据仍然一起存在着。如上图绿色箭头所示,SegWit应用后的主要区别在于计算交易ID(TXID)时不再需要见证数据,而是在下一次交易支付中才需要用到。

这得以解决第三方交易的延伸性问题。如果签名从一个有效的签名更改到另一个有效的签名,交易ID将保持不变。因此,在区块确认交易1之前,创建并广播交易2到网络上得做法是合理及安全的。这样做可以改善用户体验,因为现在用户需要等待确认的时间较少,等待确认有时候是很慢的。

 

升级SegWit交易量增加对个体用户的好处

假设见证数据占交易空间的54%,当用户升级SegWit时,与旧交易格式相比,交易容量占比应减少约41%,如下面的公式所示:

因此,假设市场收费情况不变(即交易费用水平与SegWit应用之前相同),通过升级到SegWit,用户可以减少交易费用约41%。在其他用户升级到SegWit之前便会得到该好处。

不升级到SegWit的用户的交易费用应该与之前维持相同水平。但是,由于其他用户使用SegWit而释放了部分的固有容量,理论上他们可能会感受到“附属效益”。该效益可能会改善市场收费情况并降低交易费用,即使对于尚未升级到SegWit的用户。估计这个所谓的“附属效益”的规模几乎是不可能的,因为这取决于整体市场收费的情况 。

 

升级SegWit交易量增加对整个网络的好处
下面我们分析如果用户和企业决定选择采用SegWit交易,市场拥有高SegWit采用程度的网络交易量动态情况。

下面的图表显示出在见证数据于区块中增加时,区块大小及容量的变化。图表的左侧显示了SegWit采用率较低水平(目前情况),而随着向右移动,我们假设采用率一步步提高。

如果我们实现高采用率,则区块大小可能在2MB左右,包括1.3MB的见证数据和0.7MB的非见证数据。区块容量将达到400万单位。这意味着网络的交易量将增加约100%。

 

假设“正常”SegWit采用率的区块容量动态


理论区块容量问题

SegWit的质疑者经常提到一些问题。一个常见的看法是:

SegWit可以容下4MB的区块,但只有其中1MB是交易数据

 

也许提出这种说法的人的看法是根据下图作为依据。该图与上图类似,除了假设“正常”交易模式采用率,下图假设区块容量一直保持在400万单位,而见证数据增长到4MB。

在右侧的图表显示,理论上一个区块的大小(在只包含见证数据的情况下)可以达到 4MB,垃圾区块制造者可能产生与生成1MB区块(只包含非见证数据)相同的费用。由于两个区块都拥有400万个单位。

 

当区块容量一直保持400万动态情况

 

确实,垃圾区块制造者可能会产生这样的4MB区块,使得费用与1MB的区块相同。这的确是一个潜在的问题。

然而,对整体系统来说这没有对其安全属性做出改变,因为4MB的区块不比1MB的区块便宜,只是双方的成本相同。无论SegWit被采用与否,垃圾区块制造者总是能够占合法用户的便宜。
事实上,攻击者可以简单地产生1MB的非见证数据,与“合法”的用户进行竞争,而这个攻击的成本并不比以前便宜。SegWit不会也不能改变系统的安全动态,如果攻击者想要透过产生垃圾数据来占用户的便宜,他们仍可以做得到。

这里还有一个潜在的问题。现在有一个4MB的“最差情况”区块,尽管预期的容量增加只能略高于旧的容量1MB限制的2倍,而不是4倍。

这个对SegWit的批评是有一些道理的。然而,由于见证数据的容量缩放特性,情况可能不会像人们想象的那样糟糕。在某些方面,见证数据具有比非见证数据更好的可扩展性。

 

们将讨论以下些特性:

  1. 签名认证:通过更改交易哈希中签名的计算,使得每笔交易的每个字节只需要最多运算两次,SegWit减轻了二次运算的签名哈希操作问题。因此,包含大量见证数据的区块将包含大量有线性特征的数据,减少了潜在的签名验证时间并提高了可扩展性。
  2. 数据库对未使用的交易输出(UTXO)的影响:见证数据涉及交易输入的签名。如果只想创建新的交易输出数据,则将不会被包含在见证数据中。因此,理论上4MB区块不包含新的输出数据。因此,大区块对UTXO集的大小具有中立或甚至正面的影响。
  3. 长期存储成本:最糟糕的情况是4MB块可能对长期存储成本产生负面影响。然而,当采用隔离认证时,计算交易ID(TXID)的过程便不再需要认证数据。这意味着可以在计算TXID,梅克尔树根哈希和区块哈希时,不再需要见证数据。所需要的只是见证承诺以及可以在没有见证数据的情况下计算出来的区块哈希。因此,钱包可以在不需要见证数据的同时,获得“工作量证明(PoW)”的保证 。然而,如果想要在节点重新启动时验证所有的见证数据,就必须存储见证数据了。
  4. 区块传播/速率:在最差的情况下,理论上这些的4MB区块具有较差的传播特性。然而,像紧凑区块等技术却减轻了一些这种风险。然而,最近中国市场的震动可能显示出这是一个严重潜在问题。
  5. 宽带:比起1MB的非见证数据区块,4M的区块可能会增加节点/钱包的宽带负担。因此,这是大区块的潜在缺点。虽然也许一些轻型钱包只能下载他们自己交易的见证数据,他们永远不需要下载其他的见证数据,但是他们仍然可以将区块哈希与交易数据相联,从而获得“工作量证明(PoW)”的保证。

 

欢迎转载,请注明文章来自

BitMEX (www.bitmex.com)