Skip to content

默克尔树和比特币

该网站中文内容是英文原作的译文,大多依赖 AI 翻译,尚未认真校对。请访问英文网站获取原作准确内容。在中文页面的网址 zh.zemgao.com/... 中去掉 zh. 其它部分保持不变,刷新页面, 即可到相对应的英文页面。

Twitter上的一个帖子 总结了Merkle树的工作原理,但也引起了一些争论。

公平地说,原帖在解释Merkle树方面做得不错,尽管相当基础,不如Craig S. Wright博士在Merkle树和SPV中解释得深,以及在简化支付验证中解释得更深

但正如两位BSVers在Twitter回复中指出的那样,由于BTC的区块大小有限,根本不需要Merkle树。

人们往往没有意识到,在比特币的背景下,Merkle树是简化支付验证(SPV)的固有部分。

为了像BSV那样扩大比特币的规模,它会达到一个点,SPV是必要的,因此需要Merkle树哈希值。

但每个区块最多有5000个交易,BTC根本不值得用Merkle树。

所以BTC不做SPV,但它却在谈论Merkle树。为什么呢?

这就像一个玩纸折飞机的孩子,却把空气动力学的术语扔来扔去,让人印象深刻。

但对于BTC来说,事实比这更令人尴尬。

他们认为他们摆脱了中本聪和SPV,所以他们可以专注于数字黄金的Ponzinomics。 但他们继续背诵白皮书中的概念,以制造合法化的表象。

然而,通过这样做,他们不仅没有承认BTC与白皮书相矛盾,而且也没有意识到他们自己也有矛盾。

默克尔树与BTC相矛盾

因为BTC的中心论点是它的小区块导致小数据集,如果BTC只是使用整个列表的索引,而不是使用梅克尔树,它的效率更高,甚至更安全。 Merkle树是基于哈希值的,所以至少在理论上,在哈希值树中找到哈希值碰撞比在简单列表中找到碰撞更容易。

Merkle树的效率随着数据集的大小呈指数级增长。 例如,以BTC区块为例,每个区块的交易量不到5000个。 在Merkle树的散列方案下,每两个数据条目合并为一个散列,然后每两个散列合并为另一个散列,以此类推,5000个交易将需要12级散列。 相比之下,一个有10亿个交易的区块只需要30级的散列。 虽然交易总数增加了20万倍,但散列级别增加了不到3倍(30对12)。

除了Merkle树的基本结构外,同一UTXO追溯到出现在同一区块的多个交易的几率也可能对整体效率产生影响。 考虑到可能存在的大量比特币地址,BTC每个区块不到5000笔交易意味着如果你通过UTXO追踪交易,每个区块基本上是一个平面结构。 很少有UTXO线程在同一区块内超越单一交易的情况。 有多稀少?比特币地址总数的理论上限是2.1万亿个(假设一个坐席对应一个地址的极端情况)。 即使我们把理论基数减少100万倍,在任何时候我们仍然有21亿个可能的比特币地址。 将其与每个BTC区块中的5000个交易相比较,估计出几率。

但无论如何,Merkle树属于非常大的数据集,其中包括大量的交易,这是BSV的一个特点。

BSV使用Merkle树来实现SPV,并利用SPV使轻型客户节点成为现实,并实现即时支付验证,这在现实商业中是非常需要的。

BSV具有无限制的可扩展性和真正的点对点,这部分归功于Merkle树。

但是,仅仅谈论Merkle树并不能创造任何这些特性。

BTC支持者谈论Merkle树的另一个原因可能是他们错误地认为Merkle树是使比特币安全的部分原因。

这将是另一个误解,但我只是猜测他们为什么这样做,试图让人明白。他们可能有其他原因。

无论如何,BTC的支持者们似乎并没有意识到,在比特币的背景下,Merkle树与安全无关,而与可扩展性有关。

但是,如果他们真的在可扩展性方面谈论Merkle树,那就更不合时宜了,因为那就像在谈论高速高速公路的功能时,他们的整个领地是固定大小的院子,甚至永远不允许扩大。

Share