作者:kyle
发布时间:2017年7月5日
网络来源:巴比特
如果你问币圈的任何人比特币的最大挑战是什么,那么你最可能听到的答案就是“扩展性”。
在向你解释Schnorr签名是什么以及它们如何帮助解决扩展性之前,我们简单概括一下比特币为什么需要解决扩展性以及目前的进展。
概括
在过去几年,有关比特币网络如何扩展从而让数百万(最终数十亿)人口能够以一种无摩擦的方式立即使用比特币的问题存在着大量争论。
目前,比特币网络还无法承担这个用户数量级。比特币区块能够容纳的交易数量有限。这种限制是由比特币的设计决定的,是为了确保我们能够保持那些使比特币成为令人兴奋的创新(抗审查、去中心化、不可更改性和开放的访问)的特性。
所有的比特币人都希望比特币网络扩容,但我们在做这件事时有不同的优先顺序:
- 有些人主要想让比特币网络承受尽可能多的用户,并且完好无损地保持比特币的特性。他们希望尽量减少我们需要对他人的信任,并且确保如果我们进行了扩容,那么我们要以保守的方式进行。
- 其他人主要是希望获得尽可能多的用户(无论比特币网络能否承受这么多用户),并且保持交易手续费最低,以及在他们看来可接受的安全性。
鉴于比特币不是某一个人或机构的所有物,所有的利用相关者(开发者,用户,矿工和企业)需要在比特币如何发展达成一致,你可以想象一下这种难度。大多数的利益相关者都同意制定一些比特币扩容所需要的步骤。这场扩容争论主要是关于这些步骤的时间和顺序,这严重影响了网络的健康。
在所有的争论中,一种叫做隔离见证(SegWit)的技术解决方案被提了出来。SegWit最初并不是作为一种扩容解决方案被提出来的(不过这种技术确实能够为交易添加更多的空间),而是作为迈向更多扩展性创新的一个垫脚石。SegWit将解决比特币网络的长期存在的bug,这阻碍了这些扩展性创新的到来。
经过一年多的测试,SegWit现在已经获得了广泛的利益相关者的支持(开发者,用户,矿工和企业)并且将很快被实施。这将为其中一种创新打开大门:Schnorr签名,这种技术可以进一步提高扩展性。
问题一:扩展性
要想成功进行比特币交易,那么就需要对交易进行签名。
不幸的是,这些签名不可避免地需要占用比特币区块链中区块的空间。
当你想要从多个地址向一个地址发送交易时,这就有问题了,因为这些交易都需要它们自己的签名。
所有的这些签名数据增加了交易的大小,因此也就意味着需要向矿工支付更高的手续费。你想要为自己的交易索要区块空间,那么你就需要付款。
归根到底,如果从多个来源发送这个交易的人只有一个,那么应该有办法只使用一个签名来进行,对吧?而这正是Schnorr签名要做的事情。
据估计,Schnorr签名升级将减少至少25%的存储和带宽。显而易见:这是一个巨大的效率收益。
不过还有更多好处。
Schnorr签名的另一个主要的好处就是提高隐私性。
一些用户故意使用多个签名来发送交易,从而以这种方式提高安全性。例如,你可以要求多个人或设备来发送一笔交易,这也就是常见的多重签名(MultiSig)。这只是一种可编程货币的好处之一。
当然,你不希望外人看到你这么做,而Schnorr签名将会是你的签名看起来与其他的一样。
问题二:垃圾交易攻击
在过去6个月里,比特币网络遭受了数不尽的垃圾交易攻击。
我之所以称之为垃圾交易攻击是因为这种攻击为了推动一种政治议程。一些人拼命地想要推动他们的扩容理念。当一种扩容解决方案在5月底的闭门会议中达成协议之后,这种攻击突然停止了。
下图你可以看到一张关于比特币内存池的图表,包括某个时间点的所有等待添加到区块中的未确认交易。
尽管一些人对未确认交易数量屡创新高感到困惑,不过进一步的分析清楚表明这就是垃圾交易攻击。
为了让更多人同意增加区块大小,攻击者通过尽可能多地占用交易空间使比特币交易变得昂贵。
他们的手段之一就是通过频繁地从多个来源发送交易使这个交易中包括数十个签名,可通过下图看出:
经进一步分析,很清楚这笔交易的每一个来源都是在几天前才出现的。这只是我发现的几十个交易中的一个,都是遵循相同的模式和方法。你可以查看区块高度470824作为众多例子中的一个。
幸运地的是,Schnorr签名能够帮助打击这类攻击。如果我们每一笔交易只有一个签名,那么区块就能容纳更多交易,垃圾交易制造者要想制造攻击就必须发送更多交易,与更多人进行竞争,因此攻击成本就会相对更高。签名所占空间通常是一笔交易最大的一部分,所以攻击者将不具优势。
如果攻击者不选择使用Schnorr签名并继续使用旧的签名,那么其他使用Schnorr签名的用户发送的交易会更小,支付的手续费也就更少。这就会使攻击成本比以往更高。
尽管垃圾交易攻击的价格估计达到数百万美元,但是这对于任何想要蓄意破坏比特币网络的土豪,政府或大型机构不过是小钱而已。
尽管一些公共行为者显然更加了解这些攻击的来源,我在这里就将这个问题留给读者自己推测吧。
归根到底,比特币需要抵抗这些攻击,无论这些攻击是圈内人或圈外人做的。
但有趣的是,在以下两种情况下,这样的攻击都会适得其反:
- 如果这是一种旨在推动扩容进程的内部攻击,这将导致人们不会认真对待这个进程,因为攻击非常明显(正如图片所示)。
- 如果这是一种蓄意破坏比特币的外部攻击,这只会增加对比特币的宣传力度,证实比特币对所有中心化货币的威胁。
在这两种情况下,用户肯定会感到不适。不过最终会找到解决办法,或许攻击者会把钱用完而无法继续攻击。
对我来说,非常兴奋地看到Schnorr签名能够在SegWit激活之后被实施。像SegWit一样,Schnorr签名无论是作为一种比特币的自我升级还是作为未来创新的一种垫脚石,都是非常有用的。