Blockchain
為什麼只有區塊頭 SHA256-hashed 而不是整個區塊?
我在很多地方讀到探勘涉及找到
nonce
符合SHA256(SHA256 (blockheader_including_nonce))
特定標準(0位……)的東西。為什麼這種散列只在塊頭的 < 100 字節上進行?如果只在區塊頭上做,這是否意味著我們可以修改區塊中的交易並保持相同的區塊頭和雜湊?
這怎麼不是弱點?
事實上,它是在整個區塊上完成的,但是是間接的。
塊頭中的成員之一是交易雜湊的 Merkle 根雜湊。實際上,這是所有交易的雜湊。
因為該欄位包含在塊頭中,所以塊頭的雜湊實際上也是所有交易的雜湊。如果交易發生變化,它的雜湊值會發生變化,Merkle 根會發生變化,區塊頭會發生變化,最后區塊雜湊也會發生變化。
那為什麼要這樣做呢?確切的構造有幾個原因,但最重要的一個可能是它使挖礦速度與交易數量無關。