Skip to content

Commit cde8715

Browse files
committed
增加Merkle Tree一文中关于 Proof 数量的说明.
1 parent 029ed51 commit cde8715

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

content/zh/post/2024/区块链的完整性校验方案_Merkle_Tree.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
+++
22
title = "区块链的完整性校验方案: Merkle Tree"
33
date = 2024-10-12T18:22:00-07:00
4-
lastmod = 2024-10-12T23:11:56-07:00
4+
lastmod = 2024-10-14T18:55:16-07:00
55
tags = ["blockchain"]
66
categories = ["blockchain"]
77
draft = false
@@ -71,7 +71,7 @@ toc = true
7171

7272
假设现在我们有 `tx2` 的交易数据,我们只需要 Merkle Proof 提供3个hash 值(图中的绿色部分),然后我们只计算4次(橙色部分),就会算出 Merkle Root Tree 的值,用来和区块头部的 Merkle root 值进行比对。 <br/>
7373

74-
通过 Merkle Proof 提供的数据集,我们就可以把下载8笔交易,计算15次hash,优化成只需3个 hash 值,以及计算4次hash,时间复杂度从O(N)降低成O(logN). <br/>
74+
通过 Merkle Proof 提供的数据集,我们就可以把下载8笔交易,计算15次hash,优化成只需3个 hash 值,以及计算4次hash,需要的 Merkle Proof 数量等于Merkle Tree的高度,而Merkle Tree就是一棵完美的平衡二叉树, 树的高度就是 `log₂(N)`, 所以时间复杂度从O(N)降低成O(logN). <br/>
7575

7676
这个比对似乎不明显,但是以1亿交易为例的话,log(1_000_000_000) ~= 27, 也就是只需要 Merkle Proof 提供27个 hash 值即可, 巨大的性能提升. <br/>
7777

0 commit comments

Comments
 (0)