Blockchain-Fork

臨時分叉多久發生一次,持續多長時間?

  • July 26, 2020

我想知道,臨時分叉多久發生一次?當基於相同的前一個區塊(父區塊)開采了兩個不同的區塊時,它們就會出現,但是這樣的機會有多大?如果出現分叉,它會持續多長時間(平均)?當側分支被網路丟棄時,鏈中的哪個時刻,或者節點何時確定他繼續探勘的分支確實是最長的分支(遵循最長鏈規則)?

謝謝你們!!

當在同一高度發現兩個區塊時,就會出現區塊鏈分叉。兩個鏈尖中只有一個可以成為最佳鏈的一部分。每個完整節點將認為它看到的第一個塊是該高度的最佳塊,直到另一個鏈提示累積更大的總難度證明並非如此(即添加另一個塊)。當另一個鏈尖向前拉時,節點將重組為最佳鏈。節點將其目前鏈提示恢復到最後一個共享塊,然後應用最佳鏈中的塊。每當找到下一個高度的塊時,通常會解決區塊鏈分叉。“最佳鏈提示”始終是機率確定,但隨著更多區塊的添加,信心迅速上升(因此白皮書中建議等待六次確認)。沒有什麼能阻止礦工在陳舊的鏈尖上繼續挖礦。但是,如果區塊沒有成為最佳鏈的一部分,則礦工無法花費區塊獎勵,因此在大多數情況下,在陳舊的鏈尖上進行挖礦是不合理的。自私挖礦攻擊。

在比特幣歷史的早期,有大約兩打案例,其中區塊鏈分叉由多個區塊組成,然後才出現最佳鏈。您可以在迄今為止孤立的最長的區塊鏈分叉是什麼?. 據我所知,我們已經多年沒有多區塊鏈叉了。

如果你有權訪問一個已經執行了很長時間的比特幣核心實例,你可以通過呼叫getchaintipsrpc 來獲取它註冊的所有陳舊塊。顯然,您的節點可能沒有看到所有已發生的陳舊塊。以後同步的任何節點,只會下載最好的鏈,不會獲取這些陳舊的鏈提示。

陳舊的區塊在 2013-2015 年相當普遍。IIRC,通常每天會有一個或多個。比特幣核心 0.10.0 引入的標頭優先同步顯著減少了這種情況。2016年快速網際網路比特幣中繼引擎(光纖) 取代了之前的努力(“比特幣中繼網路”),以提供一個補充中繼網路,尤其是連接直接將新區塊推送給其他參與者的挖礦實體。在 segwit 被啟動時,陳舊塊的比率進一步下降。當時有人猜測,一些礦工一直在執行舊版本的比特幣核心,當隔離見證啟動迫使他們更新到與隔離見證兼容的客戶端時,他們超越了多年來添加的一些區塊中繼改進。另一個謠言是,一些採礦網點(在採礦硬體上花費數百萬美元!)使用微型電腦作為他們的採礦控制器,這將需要一段時間來驗證新區塊,從而延遲他們切換到最新的鏈提示。

如今,網路執行數周而沒有任何陳舊塊的情況很常見。BitMEX Research 執行一個forkmonitor,它提供一個 RSS 提要,以在發生陳舊區塊(和其他區塊相關事件)時提醒使用者。不幸的是,在我看來,RSS 提要項目列表已重置,我無法找到他們的分叉警報歷史列表。取而代之的是,讓我注意到BitMEX Research 在 2020 年 1 月 26 日發推文說,他們在 614,732 高度看到了一個陳舊區塊,這是他們自 2019 年 10 月 16 日以來註冊的第一個陳舊區塊。在BitMEX Research 的推文中搜尋“stale”,自 2020 年 1 月 26 日起,他們還在 2020 年 7 月 10 日、2020 年 6 月 9 日、2020 年 3 月 3 日、2020 年 2 月 27 日和 2020- 02-22。假設 BitMEX 研究發布了關於每個的推文,他們自 2019 年 10 月 16 日以來記錄了七個陳舊的區塊。

請注意,blockchain.com 提供的“孤塊圖”似乎已損壞。

引用自:https://bitcoin.stackexchange.com/questions/97192