2015 年 7 月分叉和 SPV 挖礦:為什麼 F2Pool 和 AntPool 挖了這麼久未驗證的鏈?
我一直試圖了解 2015 年 7 月到底發生了什麼。具體來說,我無法弄清楚為什麼 F2Pool 和 AntPool 在未經驗證的鏈上開采了這麼長時間(約 1 小時)?
根據 blockchain.info,第一個孤立塊是在凌晨 2:09 [ 1 ] 生成的,而第 6 個塊是在凌晨 3:05 [ 2 ] 生成的。這表明 F2Pool 進行了一個多小時的“SPV 挖礦”,考慮到他們沒有關於他們在其上建構第一個(無效)塊(即 [ 1 ] 中的塊)的前一個塊的有效性的資訊,這似乎非常冒險。我意識到塊頭時間戳可能會稍微偏離一點,但時間應該仍然接近一個小時,對吧?
*這是我的理解:*我想我看到了“SPV 探勘”如何通過在驗證其前身之前在空塊上開始探勘來降低孤兒率。從 [ 3 ] 和 [ 4 ] 中,我了解到 SPV 礦工會在未經驗證的區塊頭 A(或雜湊,如 2015 年 7 月)之上探勘區塊 B,假設它很快會收到 A 的區塊內容並驗證它們. 這樣,礦工將確定其 SPV 開采的空塊 B 也是有效的。我也明白,如果區塊 A 無效,那麼比特幣 P2P 網路(以及比特幣礦工使用的其他八卦渠道,例如 BRN)將不會轉發無效區塊的內容以節省頻寬,這意味著 SPV 礦工現在必須依賴timeout 來判斷 A 是否有效。
我不明白的是,F2Pool 怎麼在 2015 年 7 月沒有超時?他們沒有實現那個邏輯嗎?從賺錢的角度來看,這似乎很愚蠢。
我在網上找不到太多關於這個的資訊。
PS:我已經在這裡閱讀了答案,但它並沒有解釋為什麼 F2Pool 繼續使用 SPV 礦這麼久。
似乎 F2Pool 實施了他們的 SPV 挖礦版本,並沒有充分考慮到它會產生的影響。證據就在區塊鏈中:他們沒有實施超時。
這是一個在經濟上代價高昂的錯誤,但礦工們非常願意減少延遲,因此不實施 SPV 挖礦也會讓他們付出金錢。