Bitcoin-Core

交易是否包含在一個塊中,或者只是一個塊中包含的 Merkle-root 雜湊

  • July 11, 2022

在將區塊廣播到比特幣區塊鏈之前,區塊交易是包含在區塊中還是僅它們的雜湊包含在區塊中。當我在網上沖浪時,我遇到了兩張非常模糊的圖像,因為在圖 1 中的交易超出了區塊,而在圖 2 中,交易包含在了區塊中,圖像如下所示:

圖片1: 1

圖-2

2

圖 1 中的交易不在塊中,圖 2 中的交易包含在塊中

在您的圖片 1 中,交易未顯示為塊外。它們顯示在*“塊頭”之外*

您的圖片 1 的標題為“簡化的比特幣區塊鏈”。您應該注意不要將簡化圖解釋為完全準確。第二張圖也是簡化的,並不是塊中數據的完整規範。

這兩個圖表都具有誤導性元素。例如第一張圖中的箭頭方向。在第二張圖中包含“工作證明”,就好像它是儲存在塊結構中的數據項一樣。它不是。


交易是否包含在一個塊中,或者只是一個塊中包含的 Merkle-root 雜湊

造成這種混亂的原因是

  • 區塊雜湊僅包括區塊頭†。
  • 區塊數據包括區塊頭和所有交易數據。

†區塊的雜湊不直接包含交易數據。交易數據是間接包含的。

塊頭中的一項是 Merkle 根。Merkle 根是由交易數據的重複成對散列產生的散列。這樣做的結果是,改變任何交易都會導致不同的區塊雜湊。


Merkle 樹根存在並儲存在Block header中。

交易本身就是默克爾樹的葉子。

merkle 樹用於將交易附加到塊頭

因此,在比特幣中,BlockBlock headerTransactions

引用自:https://bitcoin.stackexchange.com/questions/114423