Bitcoin.org 是一个社区支持的社区,我们十分感谢任何捐助。这些捐助会用于改进网站。

系统扩展常见问题解答

  1. 路线图包括什么新技术,预期在什么时候可以使用?
  2. 隔离见证软分叉究竟相当于多少的区块大小增加?我听过不同讲法,如4MB、2MB、1.75MB。
  3. 隔离见证好像很复杂,比特币生态各环节准备好没有?
  4. 我还是觉得隔离见证很复杂,为什么不简单地提高区块体积?
  5. 在实行隔离见证前会有硬分叉吗?隔离见证方案会本身又会否包括硬分叉?
  6. 如果最终还是要硬分叉,为何现在不做?
  7. 钱包会如何使用隔离见证?
  8. 如果没有人被逼升级,为何会有人升级?听说P2SH用了差不多两年时间才得到广泛应用。
  9. 听说你们会让零确认不能再用,这是路线图内哪一项技术?
  10. 在路线图上弱区块和IBLT只注明是2016年,你们是否也不知道它们什么时候才可以完成?
  11. 「如果隔离见证不能减少矿工所用的带宽,储存空间,和处理时间,为什么他们要支持?」
  12. 我可以怎样帮忙?

路线图包括什么新技术,预期在什么时候可以使用?

路线图提及到以下的技术,在充分的测试后,预计可以在以下时间完成。

2015年12月   隔离见证测试网
2016年2月 0.12.0 libsecp256k1验证
2016年2月   隔离见证功能完成并作审核
2016年3月* 0.12.x 完成OP_CHECKSEQUENCEVERIFY (BIP68112) + BIP113 并作为首个以 BIP9 versionbits 实施的软分叉
2016年4月* 0.12.x 完成隔离见证
2016年   弱区块, IBLTs, 或者二者都实现

* 有星号的日期是预计完成代码的时间。代码只会在充分审核后才会发表,而软分叉完成也需要时间。(BIP66经历数月时间在2015年7月生效,BIP65则只用了五周时间在2015年12月生效)

隔离见证软分叉究竟相当于多少的区块大小增加?我听过不同讲法,如4MB、2MB、1.75MB。

现在的方案是以软分叉来实现隔离见证,并把每字节的见证内容算为0.25字节,因此最大的区块体积会是稍低于4MB。

然而,区块并不应该只有见证内容,而计算非见证内容的体积时不会有折扣,因此并不可能有4MB的体积。

根据Anthony Towns的计算,如果区块装满了标准的单签名P2PKH交易,体积大概为1.6MB;如果是2-of-2多重签名交易,则大概为2.0MB。

隔离见证好像很复杂,比特币生态各环节准备好没有?

有些想法是容易解释但执行很难,有些却是解释很难但执行容易,隔离见证似乎是后者。

由于隔离见证可以逐步实行而不会破坏兼容性,因此生态内各环节无需特别准备。开发员可以在2015年12月推出的测试网得到实际的使用经验并同时测试他们的软件。

最初,只有希望支持隔离见证的矿工需要升级,让新规则可以在主网实行。现有的应用程序只有需要使用新功能才需要改变。

隔离见证交易收取较低交易费,有更佳的性能,而且支持多重签名智能合约,如双向支付通道,可以作大量交易却无需在区块链作额外纪录。我们强烈建议钱包升级,但即使不升级,现有钱包仍然可以继续正常使用。

我还是觉得隔离见证很复杂,为什么不简单地提高区块体积?

在Bitcoin Core有一句代码指定区块最大是 1,000,000 字节 (1MB)。最简单的方法是用硬分叉改变这句代码,例如变为 2,000,000 字节 (2MB)。

但硬分叉本身绝不简单:

虽然有以上的问题,但只要有充足的准备,硬分叉并不会出现致命问题,而我们也预计将来会有硬分叉。但隔离见证可以用我们更熟悉的软分叉完成,而且带来增加交易量以外更多的好处。

和简单提升区块体积相比,隔离见证需要在不同的软件层面作更多改动。但如果我们真的希望比特币可以扩展,我们无论如何也需要根本性的改动,而隔离见证可以逐渐地鼓励人们升级至更具扩展性的方案,却无需强逼他们这样做。

开发员,矿工,以及社群已对软分叉有充分经验,我们相信实行隔离见证所需时间并不比提升容量的硬分叉为多,而且会更安全。

在实行隔离见证前会有硬分叉吗?隔离见证方案会本身又会否包括硬分叉?

不会,这并非路线图的一部分。

如果最终还是要硬分叉,为何现在不做?

利用有广泛共识的软分叉,我们能够把系统扩展而没有硬分叉的副作用,因此即使预期会有硬分叉,这并不是现在就要做的充分理由。

在路线图提到的改进,除提供额外的交易容量以外,配合其它技术如双向支付通道,可以让用户减少使用区块链,变相提高了比特币系统的容量,却不用增加全节点使用的带宽。例如:

这些技术的实际效果仍然未知,但实行一个具广泛共识的软分叉可让我们立即得益并且测试和评估中期的可能性,以及用这些数据作长期的规划。

钱包会如何使用隔离见证?

现在支持 P2SH 的钱包可以分两阶段转移至完整的隔离见证:

如果没有人被逼升级,为何会有人升级?听说P2SH用了差不多两年时间才得到广泛应用。

在隔离见证交易中,见证部分的每字节只算为0.25字节,也就是说这部分的交易费有75%的折扣,但只限于隔离见证的用户。

David Harding 提供了下表以估计在不同费用和交易类型下可以节省的费用。例如如果一个常见的250字节交易收费是0.01美元,用隔离见证花费一个P2PK-in-P2SH输出就可以节省约0.003美元。

交易 节省字节 $0.01/250B $0.05/250B $0.25/250B $1.00/250B
P2PK-in-P2SH 79/107 $0.003 $0.015 $0.079 $0.316
1-of-1 P2SH 多签 83/112 $0.003 $0.016 $0.083 $0.332
2-of-2 P2SH 多签 163/219 $0.006 $0.032 $0.163 $0.652
2-of-3 P2SH 多签 189/254 $0.007 $0.037 $0.189 $0.756

(费用金额只作参考,我们并不预期交易费会达到上表显示的最高情况。)

收取固定比例费用 (如免费或1%交易额) 的网页钱包和交易所会最早应用隔离见证,因为即使每个交易节省很少,每天数以千计的交易加起来都会非常可观。

听说你们会让零确认不能再用,这是路线图内哪一项技术?

这并不是路线图的一部分。作为现在 Bitcoin Core 版本的默认设置,在收到一个未确认交易后,就不会再接受其它有相同输入的交易。有些人认为这表示他们首个见到的交易就是安全的,但其实不是;如果真的是这样,我们根本不需要区块链。

在现时的默认设置下,人们并不能更新他们未确认的交易。在最初的 Bitcoin 版本,其实是有方法让使用者表明他希望交易可被更新,但为了防止拒绝服务攻击,中本聪在2010年关闭了这功能。

最近 Bitcoin Core 的开发员发现只要要求更新交易的同时要求使用者要付出更多的交易费,就可以防止上述的拒绝服务攻击,因此他们重开了中本聪那个允许交易被替换的机制。这功能会在预计2016年1至2月在 Bitcoin Core 0.12.0 推出,但和中本聪原本的设计一样,只有希望可以替换交易的使用者才需要选择使用支持该功能的钱包。

现在并没有钱包提供这功能,但将来这类钱包可以把多个未确认交易合并以减少所需要的区块链空间,也可以让用户提高未确认交易的费用,不会因为之前付费不足让交易「阻塞」在钱包内。

在路线图上弱区块和IBLT只注明是2016年,你们是否也不知道它们什么时候才可以完成?

弱区块和IBLT是两种仍在研究的技术,需要选择适当的参数,但因为参与的开发员有限,我们难以估计在什么时候才能推出。

弱区块和IBLT都只涉及网络改善而不是软分叉或硬分叉,因此只需要较短的测试时间就可以推出让节点升级,我们希望可以在2016年内完成。

在推出弱区块和IBLT后,我们可以利用一个简单而无争议的软分叉来规范交易次序让它们更有效率,这软分叉可以透过BIP9 versionBits 推出。

「如果隔离见证不能减少矿工所用的带宽,储存空间,和处理时间,为什么他们要支持?」

其实大部分以前的软分叉都没有为矿工带来这些好处,例如:

BIP16 (P2SH) 新交易种类
BIP30 (重覆交易ID) 要求检查重覆交易ID
BIP34 (Coinbase 内记录区块高度) 让矿工可用的coinbase空间减少 4 字节
BIP65 (OP_CLTV) 新脚本命令

在2015年7月正式执行的 BIP66 (严格 DER 签名) 软分叉让我们可以转用libsecp256k1作交易验证,让验证时间大减,让矿工得益。

而隔离见证可以为其使用者带来以下好处:

这永久地解决第三方延展性,让多阶段智能合约得以实现;减低交易费;让比特币脚本升级更容易,钱包更容易得到新功能。

通过以前的软分叉和沟通,例如在香港比特币扩展性会议内的矿工座谈会,矿工一再表达了即使他们未必有直接得益,他们也希望比特币成为一个最有用的系统。隔离见证和路线图上其它改进可以显着地提升比特币的可用性。

另外,隔离见证允许矿工在区块内加入更多交易,因此也可提升在每个区块内得到的收入。

我可以怎样帮忙?

首先阅读在 Bitcoin.org 上的 Bitcoin Core贡献者网页。 其中代码审阅是实行软分叉极重要的一部分。

如果你想得到更多有关如何贡献的建议,请加入#bitcoin-dev IRC 频道讨论。