比特币内的确认时间是很快的。人们混淆了确认和结算。尚未在区块内结算的交易是足够安全的。这个体系不需要固若金汤,它只要足够好就够了。
其结果是这个系统在任何规模上都比 Visa 或万事达卡安全数千倍,并且交易可以在一秒钟内尘埃落定。随着网络规模和网络容量的上升,检测双花的延迟将会降低,网络将变得更加安全。比特币有趣的二分法在于,使用越多、规模越大,它就越安全,系统中商户的风险也将变得越低。
比特币中的交易的确认时间可以比任何当前部署的电子系统更短。现在已经是绰绰有余了,规模越大,体验越好。
许多人经常想知道为什么比特币使用了 10 分钟的间隔。比特币被设计为调整为平均 10 分钟的出区块间隔。但是,您会注意到实际网络上区块的平均时间约为 560 秒或 9.3 分钟。与预期的 10 分钟有所不同的原因与网络的增长有关。对于可以想象的未来,我们可以预期比特币将遵循摩尔定律中的预测率,以接近指数的路径增长。因此,我们将看到出区块时间略少于 10 分钟。
比特币的实际上不是泊松或指数分布,而是一个 SEIR 过程。这是一个生物学上的概念,当科学家对流行病进行建模时,他们会使用与以下术语相关的组合模型:
- 易感 Susceptible
- 暴露 Exposed
- 传染 Infectious
- 康复 Recovered
在诸如比特币之类的系统中,或者对于任何分布式的节点系统,我们可以这样描述:网络易受影响的状态是已经选择了区块并且正在寻找新的区块的状态。这时候,区块 (记为 B0) 在整个网络中是已知的,并且所有务实的矿工都在其上进行挖掘。接下来,我们进入暴露状态。在暴露状态下,矿工发现了一个新的区块。一个或多个矿工接受这个区块,并在上面开采新的区块。这需要从找到符合的哈希值的矿工传播到其它所有矿工。暴露状态下的时间标记与其他矿工接收该区块之间有一段确定的时间。
下一个状态可以在流行病学研究中以传染状态建模。这里,矿工已经验证并接受所接收的区块作为满足区块散列的解决方案并开始将其传播给其他矿工。在验证阶段之后,每个矿工开始在 B0 之后开始寻找下一个区块 B1 的解决方案。
在所有节点知道交易之前 的预期时间是:
请访问 https://papers.ssrn.com/sol3/papers.cfm?abstract\_id=3151940 查看模型
结果不是上面的限制,而是渐近等价。预期时间随 N 增加的事实与我们不用 N 来扩展 I0 这一事实有关。从这里我们看到当少数连接不良的节点持有一个交易,并且当几乎所有节点都有一个副本时在区块或交易中,节点传播到 Gossip 网络中的其余节点的速度非常慢。
验证节点接收的每个区块并检查其准确性。当几乎同时开采两个区块时,包括要由节点接收的第一个区块并进行验证。下一个区块将被放入 “孤立池” 中,并在最初接收到的区块之后进行验证。如果添加了另一个区块,则将此孤立区块添加到节点的主链中,使其成为更长的链。
每个节点在将区块传播到连接的对等节点之前验证区块。以这种方式,仅传播有效区块,并且快速隔离任何无效区块。比特币核心客户端列出了以下功能中的所有验证要求:
CheckBlock CheckBlockHeader
在验证区块时,节点将确保:
- 区块的数据结构格式正确。
- 区块头哈希小于或等于两周时间段的设定目标难度。
- 该区块的时间戳不到 120 分钟。这允许挖掘节点上的一些时间漂移。
- 区块大小小于或等于 MAX_BLOCK_SIZE 参数中设置的值。
- 初始交易是 coinbase 生成交易。这是该区块的交易零,并支付获胜的矿工。
- 该区块中没有其他的 coinbase 交易。
- 区块中的每个交易都是有效的。必须单独检查和验证每个交易及其哈希值。
接下来,验证区块以确保:
- 交易指数的有效性是正确的。
- 交易哈希是正确的。
- 花费 txouts 已经花费在主链上。
- 所有优先次序都标记为已用完。
- 花费的 txouts 由消耗它们的有效交易花费。
由于 UTXO 缓存可以保存收到的交易,因此如果已经收到,缓存并保存在池中,则每个交易的验证应该很快。交易不在 UTXO 缓存中的情况会降低进程的速度。节点从网络请求交易的副本,验证它,并将其添加到哈希检查。
当接收到具有交易的区块时,矿工丢失,挖掘节点需要下载丢失的交易的副本,然后才能完成对接收的区块的验证。在下面显示的分布中,我们看到比特币网络上记录的区块时间。虽然这与 10 分钟的区块时间大致呈指数关系,但我们可以看到,当我们查看一分钟时间时它会形成幂律分布。
*** 与 10 分钟相比,*** 验证和传播时间很短。结果是我们可以近似泊松方法,这比计算与真实 SEIR 模型或更简单的幂律近似相关的微分方程更简单。
比特币需要在金融世界中运作,而不是认为金融世界可以建模在比特币中运作。货币交易不遵循平等分配。早在 2006 年和 2007 年,我参与了 为会计和审计目的创建自动欺诈系统的货币交易建模。我对全球系统中货币交易的时间分布非常熟悉。
密码社区中经常被忽视的一点是交易的时间分配。在任何时期我们都可以看到这种分布本质上是指数的。区块间隔越大,分布越接近指数函数。在大型商业系统中,在超过五分钟但仍然不到一小时的时间段内,我们通常预计交易将在指数情节下落入 95%的置信区间内。
或者,当我们降低间隔时,数据似乎越来越随机,噪声对系统的影响使得预测变得更加困难。
无法建模时间间隔的影响是区块大小的更广泛分布。在一分钟内,即使在较低的 10%alpha,我们预计会有许多与标准可预测分布的偏差。结果是区块大小的标准偏差大得多。
虽然区块的分布是不对称的,但是更大的区块时间允许小型矿工的范围增加。随着时间的减少,更少的矿工能够参与竞争。部分原因是交易的不对称分布。在一分钟时,孤儿率约为 10 分钟阻滞间隔的 2.5 至 3 倍。下图将此图显示为在第 10 分钟区块中的孤立率与时间的关系。
我可以花更多的时间来做指数并播放图表,然而,解释为什么钱不应该被改变的整个过程就是问题所在。
改变定居点(封锁时间)以减少分配并最终有利于大型矿工而不是小型矿工。它扭曲了盈利能力。
** 这就是为什么 10 分钟。**
然而更重要的是,10 分钟不是最佳,没有。为了使比特币正常工作,它需要在 5 分钟到 20 分之间。确切的理想最佳时间是不可计算的,因为它随时间,季节,使用,电价和许多其他非标准因素而变化。
这有助于商人的论点充其量是虚假的。货币稳定时效果最佳。这是比特币的全部目的。为了赚钱稳定,但这是每个人都试图改变的一件事,那就是让比特币成为典型的硅谷 * 螺丝,并希望它能够实验 *。就是这样,比特币永远不会以这种方式运作。
当缩放以包含更大的区块大小时,对于 10 分钟的区块,这是 1 GB,对于一分钟的区块间隔,这是相应的 100 MB。
虽然表面上看,上面显示的区块的两个幂律分布看起来相似,但它们根本不同,因为区块处理时间和分布时间不均匀分布。
此外,通过较小的区块时间,保留矿工自己进一步扭曲分布的一些交易变得更加简单。每隔 10 分钟,第一个四分位数是平均值的 30%。在一分钟的时间里,第一个四分位数是平均值的 40.5%。
鉴于快速发现的区块存在于第三个四分位数及以上的大小,而非分发时间,我们最终得出的情况是,一分钟的区块最终包含足够的交易以减缓分发。不幸的是,大多数所谓的缩放测试使用均匀分布的过程而不是幂律区块大小。我们在第三个四分之一大小的一分钟区块最终被缓慢传播给除了最大的矿工之外的所有人。在目前的环境中,采矿池和独立采矿者的哈希率为 15%或更高。小矿工会缓慢地接收到这个区块,以至于在发现新区块之前 27%的时间他们无法验证区块。
哈希率的增加主要影响矿工的总哈希率低于 10%。
一分钟区块率的吹捧好处是提高了商家的采用率。即使在一分钟的时间段内,大约 20%的区块在超过两分钟的时间内被发现。为了对商业场景中的商家有用,需要在不到 3 秒的间隔内发现并传播区块而不进行孤立。这在极好的时候极少发生。这个论点是对 0-conf 的好处的错误论据。实际情况是,在改变区块时间方面没有可实现的收益。
有许多负面因素。
主要的负面影响是比特币是一种基于现金的支付系统。商家开发软件和应用程序,每次进行更改时,他们都需要重新部署这些软件和应用程序。这是比特币所展现的最大弱点。与法定相比,比特币每分钟都在变化。
如果我们要将比特币作为全球货币,我们需要复制现金的特征。首先,这归结为创建一个稳定的平台。每次更改协议时,商家机会都会丢失。最初的比特币协议具有足够的弹性。永远不会有完美的状态。
比特币中的 10 分钟时间间隔是猜测。这是一个足够好的。也许五分钟会更好或者可能是 15 分钟,但事实并非如此重要,因为它永远不会少于两分钟并成功扩展。需要做的最重要的方面是稳定和锁定协议,以便商家可以在全球范围内构建和使用硬币。
** 更大的区块时间导致更少的不确定性 **
我们在下图中看到了区块的分布。一小部分(1 分钟的阻塞时间)只能使用幂律或指数分布建模。较大的区块时间接近正态或高斯分布。
与许多事情一样,比特币的阻止时间是一种权衡。没有完美的时间,当您降低或增加时间时,您可以改变激励并改变系统。
这首先是比特币无法做到的。比特币的设计是稳定的,并且是一成不变的。