Activation-Mechanism

比特幣中的各種 MTP 有什麼區別?

  • April 19, 2021

我認為比特幣中有 3 種不同的 MTP(過去的中位時間)(儘管這可能不正確)。David Harding 在 IRC 上表示,比特幣 v0.1(Satoshi 的第一個版本)中有一個 MTP。還有在 BIP 9 中使用的 MTP,然後是在BIP 113中定義的 MTP 。

如果比特幣中確實有 3 種不同的 MTP,為什麼?動機是什麼?

比特幣中只有一個中位時間過去 (MTP) 的概念,即同一區塊鏈上一個區塊的中位時間和它之前的 10 個區塊。MTP 一直在比特幣中用作規則的一部分,節點用於確定一個塊是否在其標頭中具有有效的 nTime 欄位。這些規則是:

  1. 塊的 nTime 必須大於其父塊的 MTP。例如,如果一個塊的 MTP 是1618782748(我寫這篇文章時最近一個塊的實際 MTP),那麼下一個塊的 nTime 必須是1618782748 + 1
  2. 根據本地節點電腦上的UTC時鐘,UTC中一個塊的nTime不得超過未來兩個小時。

這兩個規則允許無法直接確定時間的比特幣協議限制允許的時間範圍。這很重要,因為區塊頭中提供的時間用於計算難度調整,試圖將平均區塊產量保持在大約每十分鐘一個區塊。自比特幣 0.1 以來,MTP 的這種使用就已經存在。(到目前為止,僅這些規則已被證明足夠好,但至少需要一個額外的規則來防止礦工顯著操縱難度;有關該問題的詳細資訊,請參閱時間扭曲攻擊,以及建議的 Consensus Cleanup 軟分叉解決方案。 )

MTP 具有單調遞增的有用特性——它只會上升,永遠不會下降(假設沒有區塊鏈重組)。BIP9 利用這個屬性來避免處理時間倒退的情況。

MTP 還具有一個有用的屬性,即它不受創建單個區塊的礦工的控制(他們最多可以在兩個可能的選項之間進行選擇,其精確值由以前的礦工設置)。BIP113 利用這一特性來消除與時間鎖定交易相關的激勵問題,在這種情況下,礦工總是被鼓勵在未來近兩個小時內開採區塊。這不會是一個大問題,但允許礦工繼續根據他們自己的時鐘報告他們的區塊的準確時間是很好的。

總之,比特幣沒有三種不同的 MTP——它只有一個單調時鐘,用於三種不同的上下文。

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