區塊鏈中merkle樹是如何驗證的,它的具體執行機制是?

時間 2021-06-07 10:31:52

1樓:yang guo

簡單來說就是沒有任何資訊的 spv 節點如何拿到與交易相關的若干hash,然後自己計算,是否與交易所在區塊的 merkle root 相同的乙個過程。

很多帖子都把 spv 節點如何計算並驗證 merkle root 這個過程講的很清楚了,但問題是:

SPV 節點知道交易位址,怎麼知道這筆交易在哪個區塊裡

拿到了交易所在區塊的頭資訊,怎麼拿到的 merkle path,以及 merkle path 上哪些不需要計算 hash 的中間值,比如下圖裡的, 都是哪來的

答案就是都是從全節點那拿的,SPV 本身沒有塊資訊的情況下,自己不可能憑空計算這些 hash 值,但全節點什麼都有,因此這些資訊全節點都能計算出來。

來看看不同型別的節點之間都有些什麼互動:

其中的 getdata 請求中如果指定了 inventory type 為 MSG_MERKLEBLOCK,全節點就會在響應中回覆乙個 MerkleBlock 。

其中的 getdata 請求中如果指定了 inventory type 為 MSG_MERKLEBLOCK,全節點就會在響應中回覆乙個 MerkleBlock。

看看 SPV 解析 MerkleBlock 的過程:

解析響應中的 MerkleBlock

2樓:

談談以太坊的Merkle樹_巴位元_服務於區塊鏈創新者http://

bitcoin.org

上關於merkle tree的介紹:

Merkle Tree - Bitcoin Glossary

3樓:

區塊鏈中不是驗證梅克爾樹,是用梅克爾樹驗證交易。

每乙個區塊中包含乙個梅克爾樹根,這個樹根是很多交易的不斷重複hash計算得到的。假設乙個區塊中包含4比交易,每個交易都可以生成乙個hash值,這4個hash值兩兩結合生成2個hash,然後這兩個hash在進行一次hash計算救得到乙個hash值,這個hash值就是梅克爾樹根。

如果你希望確定一筆交易的狀態,只要要求對方提供乙個梅克爾證明,也就是得到特定的交易,交易的所在的梅克爾樹根就是就是區塊頭,上一次我已經在題主的問題說明了,客戶端會不斷同步最新的交易資料,spv只用同步區塊頭就可以了,區塊頭裡面包含區塊交易的梅克爾樹根。

只要本地能驗證交易所在的區塊頭根雜湊和本地相應的區塊的根雜湊就可以確定。

區塊鏈中的 鏈上測試是什麼意思 是上鏈的意思嗎?

MrRed 鏈上測試顧名思義,就是在鏈上進行真實的測試。上鏈指的是將智慧型合約部署到公鏈上,這時候智慧型合約就開始起作用了。對於乙個智慧型合約來說,一旦部署到鏈上就不能進行修改了。意味著如果智慧型合約出現問題,那麼將會是毀滅性的。為了解決這個問題,公鏈以外還會有一些測試鏈,比如說Ethereum的R...

區塊鏈,明知道是風口,我們如何參與?

愛小神 3344521666.piworker.com這個是國外的pi幣 目前使用者100w,官方提倡共識 現在在出於免費挖,明年三月份多出官方交易所不像國內的資金盤一樣 Hyrik老師 首先,區塊鏈作為這幾年網際網路行業的技術熱點,有很大的發展前景。不管是90後還是85後都能趕上這波下輪風口,而且...

區塊鏈的去中心化是如何實現的?

Bing 首先define下去中心 那麼區塊鏈是如何實現的呢?核心解決身份,通訊可控,以及賬本完整性。解決身份問題 非對稱加密 ecc密碼體系等 的引入,例如簽名演算法ecdsa等,保證身身份可以被無第三方的公開驗證 訊息傳遞完整性 雜湊演算法例如sha2,hmac,keccak等的引入,其高抗碰撞...