請問 Merkle root hash 需要偶數個訊息嗎?

Sorry, I’m a rookie. 我想問兩個問題:

Merkle root hash是兩兩訊息組合而成, 所以礦工再挑選訊息的時候, 會刻意累積至偶數個訊息, 以利製作Merkle root hash吧?
礦池的難度為何要調整? 如果是為了評估礦工們的算力, 是否應該直接評估礦工丟出的nonce比較接近真實狀況?
如果此兩個問題不適合在這裡請教, 還請大大指點正確的發問處, 謝謝

首先對名詞做個定義。

full binary tree 是指二元樹中,每個結點都有兩個子結點。

complete binary tree 是指二元樹中,除了最下層的結點,每層都是滿的,所以最Complete Tree 的最下層可能是雙數結點,也可能是單數結點。

回到您的問題:Merkle root hash是兩兩訊息組合而成, 所以礦工會刻意累積至偶數個訊息嗎?

其實不必刻意是偶數。如果碰到奇數,如下圖中的C點,它可以會被覆製,自己(C)和自己(C)兩兩組合的hash計算,如下圖中 H(C|C) 所示:

只要是 Complete Tree 就可以(底層奇、偶都OK,而且數高最多只差一層),不必要是一定是有偶數結點的 Full Tree。


參考:



1個讚

1 個帖子被分離到了新主題:礦池的難度(pool-specific difficulty)為何要調整?