最近引起我注意的是,缩短比特币现金出块时间仍然是东方社区的热门话题。我们似乎也缺乏对围绕此事的各种争论的了解,所以在这篇文章中,我希望把事情弄清楚一点。
为什么缩短出块时间?
缩短出块时间有几个优点,不应该很快否定这个想法。
如果出块速度越来越快,挖矿所需的工作量将减少。例如,如果我们将出块时间缩短到到1分钟,那么每个块挖矿难度会降低10倍。因此,在较长的时间范围内,交易的安全性是相同的,10个难度为100的区块与100个难度为10的区块相同。但是在短时间内并非如此,1个难度为100的区块的安全性远不及10个难度为10的区块的安全性。其背后的数学逻辑解释起来可能有点复杂,直观上可以理解为攻击者有10分钟的时间来进行攻击而不是1分钟,攻击更容易成功。
在较短的时间范围内具有更高的安全性将允许如付款处理器和交易所之类的服务更快地处理交易,从而在BCH上提升更多采用率。但扩容角度来看,缩短出块时间实际上不可能显着提升交易吞吐能力,因此,这并不是解决即时支付的方案,但是对于降低商户因价格波动引起的风险非常有用。
缩短出块时间的另一个重要好处是为难度调整算法提供了更多信息。难度调整算法使用过去的区块来估算网络算力,并相应地调整难度。但是,各个区块的时间存在很大的差异,因此有必要使用多个块进行调整难度的决策。使用的区块越多,决策越好,但是做出该决策所花费的时间也越长。通过缩短出块时间向难度调整机制提供更多块,允许更快、更精确地进行调整。
考虑到以上所有因素,如果我要从头开始发行一个新币,我可能会选择低于10分钟的出块时间。也许是2.5分钟,甚至1分钟,但不会更低,原因我会解释。但是,当涉及到比特币现金时,必须明白现有系统存在的弊端,因此我们希望从这种出块时间调整中获得的收益要远高于一套新系统的收益。
为什么缩短出块会阻碍扩容?
任何比特币网络都要求出块时间要比整个网络处理区块所需的时间长。如果不是这样,那么就会损害网络达成协议的能力。假设生产区块的速度快于网络处理它们的速度时,最极端的情况发生了,这实际上是将每个矿工发送到自己的链上(各个区块无法同步,网络崩溃)。即使在网络达到这种完全崩溃的状态之前,由于孤块率的增加,矿业质量也会下降。
如果人们期望我们缩短出块时间,那么每个块都会更小,因此传播也更快。在某种程度上是对的,但是这忽略了传播区块相关的固定成本的事实。这些成本不取决于块的大小。为了理解这一点,我们假设ABC以类似于网络上节点的方式彼此传播一个块。
A:嘿,B,我刚得到一个新块,它的散列是00012345af,你想要吗?
B:嘿,A,这个block我不知道,请发给我
A:好了B。所以block中的第一个事务是…
B给C:嘿,C,我刚得到一个新块,它的散列是00012345af,你要吗?
C:嗨,B。这个block我不知道,请发给我
B:好的C。所以block中的第一个事务是…
这与发现新区块时节点之间网络上发生的情况非常相似。正如我们所看到的,除了块本身的传输之外,各方之间还有相当多的信息和数据。这是必需的交互操作,因为如果没有这个操作,那么所有节点将立即开始向所有节点发送区块信息,导致在发现新块传输数据时导致整个网络崩溃。虽然有各种各样的技术可以用来改善这种情况——例如Bitcoin ABC节点使用的紧凑块技术——但问题仍然存在,即存在不受区块大小影响的固定传输成本。
如果将出块时间从10分钟更改为1分钟,那么这些固定传输成本也将乘10,这将限制我们能够安全地扩容网络的程度。
更快的确认时间呢?
虽然更快的区块可以缩短确认时间,但是它终究无法缩短到一个真正支持许多用例的时间内(无法缩短到可以完成即时交易的程度)。对于任何面对面的支付,确认时间需要降低到3s或更短,才可以达到理想水平,而仅通过缩短出块时间是无法做到这一点的。但Avalanche协议(Avalanche协议)是可以实现的,能够在不到2秒的时间内确认交易。
虽然某些用例可能会从中受益,但更多的是它与比特币现金的核心价值不够一致,无法证明改变区块时间这样重要的东西是合理的。
难度调整呢?
更快的区块可以帮助设计更好的难度调整机制,因为它们提供了可供难度调整机制使用的更多数据。明显的缺点是要处理的数据更多,这将导致SPV系统上的负载增加,并严重限制了诸如智能卡之类的非常轻量级的系统所能做的事情。
当然,虽然这不是不能处理的数据量,但开发者在围绕比特币现金构建应用时,这些负载就会破坏BCH的生态增长。
为什么在已经部署的系统上更改出块时间更加困难?
我在前文已经说过,如果我要从头开始构建新系统,那么我将选择一个少于10分钟的出块时间。但是,在像比特币现金这样的系统上,已经有许多现有用户,比特币现金也有一个基于时间的脚本系统。
这些功能对于许多智能合约系统至关重要,尤其是支付渠道或诸如Mecenas之类的循环支付解决方案。这些合同没有时间来源,因此将区块链本身用作时钟。因此,更改出块时间将更改所有这些智能合约的时间结构,从而破坏建立在上面的系统。
更有挑战的是,比特币现金支持P2SH,这意味着我们不知道与现有比特币相关的所有脚本。要解析区块链并设计一个适用于现有智能合约的系统是不可能的,因此我们被迫设计一个适用于所有可以编写智能合约的系统。目前还不能肯定这一点能否在不造成严重不利影响的情况下实现,但可以肯定的是,没有人有足够的时间或资源来进行诚实的尝试。
如果没有解决这些问题的方法,我们就无法用非常具体的方案来讨论缩短出块。
结论
缩短出块时间有很多挑战,其中一些目前尚未解决。考虑到弊端和**收益,以及存在更好的选择方案,投资时间和精力去解决这些问题似乎不是正确的方法。
根据目前的路线图,我们估计可以在2年内交付Avalanche协议。当然,如果资源允许,我们希望尽快交付。毕竟,Avalanche协议确实有很高的可行性,因此没有理由让Avalanche协议永远存在18个月(暗指永远需要18个月开发的闪电网络)。
原文由BCH开发团队Bitcoin ABC首席开发者Amaury Sechet发布于Read.cash
文章链接:https://www.btchangqing.cn/115096.html
更新时间:2020年10月06日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。