孤兒區塊 Orphan Block
孤兒區塊,是指因缺少父區塊 Parent Block,而暫時無法連接至主鏈的區塊。 比特幣中的每個區塊都必須透過前一區塊雜湊與父區塊相連。若節點先收到某個區塊,但尚未收到其所引用的父區塊,便無法立即驗證該區塊是否位於有效的區塊鏈上

孤兒區塊 Orphan Block,是指因缺少父區塊 Parent Block,而暫時無法連接至主鏈的區塊。
比特幣中的每個區塊都必須透過前一區塊雜湊 Previous Block Hash 與父區塊相連。若節點先收到某個區塊,但尚未收到其所引用的父區塊,便無法立即驗證該區塊是否位於有效的區塊鏈上,因此會暫時將其視為孤兒區塊,等待父區塊到達後再重新驗證。
孤兒區塊通常只是區塊同步順序造成的暫時現象,並不代表該區塊本身無效。 自 Bitcoin Core 0.10 版本,2015年引入區塊頭優先下載機制後,比特幣網路在理論上幾乎不會再產生孤兒區塊了。
孤兒區塊 形成原因
-
父區塊尚未同步 節點可能先收到子區塊,而對應的父區塊仍在傳播途中,因此暫時無法建立完整的區塊鏈連結。
-
網路傳播延遲 由於不同節點之間的網路延遲與封包傳輸順序不同,區塊可能以不同順序抵達各個節點,造成短暫的孤兒區塊。
-
區塊同步過程 新加入網路或重新同步區塊鏈的節點,在下載區塊資料時,也可能因接收順序不同而暫時產生孤兒區塊。
孤兒區塊 處理方式
-
暫時保存 節點會先暫時保存孤兒區塊,而不會立即將其加入本地區塊鏈。
-
等待父區塊 當缺失的父區塊到達後,節點會再次驗證孤兒區塊是否符合所有共識規則。
-
建立區塊鏈連結 若驗證成功,孤兒區塊便會正式連接至區塊鏈,不再屬於孤兒區塊。
-
移除過期資料 若父區塊長時間未出現,或超出節點的暫存限制,孤兒區塊可能被自動移除,以避免占用過多記憶體資源。
孤兒區塊 資訊
-
區塊哈希 Block Hash 具有符合工作量證明要求的區塊雜湊。
-
前一區塊雜湊 Previous Block Hash 引用尚未存在於本地節點的父區塊,因此無法完成區塊鏈連結。
-
區塊資料 Block Data 包含完整的區塊資料,例如 Coinbase Transaction、一般交易、Merkle Root、時間戳、Nonce 等資訊。

更多文章