Bitcoin-Core
當一個新塊被傳播時,節點從創世塊驗證到傳播塊?
例如,我有一個第 n 個塊,當傳播第 n + 1 個塊時,我必須與 n+1 個塊的先前雜湊和第 n 個塊的雜湊進行比較以進行驗證。這是非常微不足道的。
但是我是否必須比較從創世塊到 n + 1 塊的驗證雜湊值?
就像比較 0 和 1、1 和 2、2 和 3 … n 和 n + 1
github https://github.com/dvf/blockchain/blob/master/blockchain.py#L37中最著名的偽區塊鏈程式碼之一 ,從創世區塊驗證區塊。
比特幣使用類似的方式來驗證一個新區塊?
每次收到新塊時,節點都不會驗證來自創世的塊。
在初始同步期間,節點將至少驗證從創世塊到目前鏈頭的標頭 - 這使它們能夠找到最佳鏈(按完成的工作量)。他們通常還驗證 utxo 集。
當收到一個新塊時,只需根據前一個塊雜湊和目前 utxo 集驗證它就足夠了,因為你的前一個塊已經驗證,這意味著之前的所有塊也都經過驗證。
如果您碰巧失去了鏈狀態的本地副本並且只剩下原始塊,那麼您需要從創世重新驗證。