Soft-Fork

是否應該在軟分叉啟動機制中使用區塊高度或 MTP 或兩者的混合物?

  • April 13, 2021

塊高度或 MTP(BIP 113中定義的中位時間過去)或兩者的混合用於定義狀態轉換時間的啟動機制(如 BIP 8 或 BIP 9) ?

兩者的優點和缺點是什麼,它們如何比較?

是否應該在 BIP 8 或 BIP 9 等啟動機制中使用塊高度或 MTP(過去 […] 的中位時間)或兩者的混合來定義狀態轉換的時間?兩者的優點和缺點是什麼,它們如何比較?

MTP 的主要優點是它通常大致對應於掛壁時間,因此很容易傳達數字對人類的意義。例如,BIP141 說:“BIP9 開始時間將是 2016 年 11 月 15 日午夜 UTC […],BIP9 超時將是 2017 年 11 月 15 日午夜 UTC”。當在實際網路上達到這兩個 MTP 值時,它們都在實際 UTC 的三個小時內。

MTP的主要缺點是它可以被礦工操縱。MTP 是目前區塊頭的 nTime 欄位中記錄的值與前 10 個區塊的中值。礦工可以將他們的 nTime 值設置為大於目前 MTP 且未來小於兩個小時的任何值。這使得大多數礦工可以長時間工作以將 MTP 保持在舊值(比如 3 個月前),然後在單個區塊的空間內移動到更晚的時間(比如 1 個月)前)。這可以讓他們跳過基於 MTP 的強制信令周期,例如 BIP148 中指定的。

區塊高度的主要優點是無法跳過基於高度的門檻值,因此它們對於標誌日啟動、強制信號要求以及我們希望確保發生的其他轉換(例如從 BIP9 LOCKED_IN 到 ACTIVE,這使用 2,016 個塊的相對高度門檻值發生)。

塊高度的主要缺點是它們不是特別一致。在平均一年中,我們預計會有 52,596 個區塊,但有 58,440 個區塊並不算特別——將預期的 12 個月部署減少到 10.8 個月。

混合 MTP 時間和高度並沒有什麼害處,如果您可以同時利用這兩種優勢,而不會因為它們的弱點而損失太多,那麼就會有很大的優勢。

使用區塊高度作為開始和超時參數的好處是可以為礦工提供已知數量的信號周期。雜湊算力的損失不會減少可用於啟動的重定向周期數。特別是對於較短時間範圍內的啟動機制(例如 Speedy Trial提案),確保礦工擁有最大數量的信號周期可能很重要。區塊高度也可以說更容易溝通和推理,因為區塊鏈開發人員習慣於使用它們。

使用 MTP(過去的中位時間)的優點是能夠在一天中的特定時間安排啟動,以避免在世界某些地區的半夜發生啟動。通過選擇中間信號周期 MTP,可以減輕對影響信號周期數量的雜湊率降低或增加的擔憂。像Speedy Trial這樣的短期提案對改變週期數的雜湊率漂移不太敏感(需要大幅降低雜湊率來減少信號周期數)。

MTP 的一個問題是,礦工聯盟可以將他們在 nTime 挖出的區塊縮小到 MTP + 1,以防止在預期的現實世界時間達到 MTP 開始時間。這種擔憂似乎並不重要,因為它可能會影響難度調整,並且需要礦工的廣泛參與來限制 MTP。

對於使替代競爭(兼容或不兼容)啟動機制(例如 UASF 版本)的實施和發布更加困難或為行銷目的避免頭皮。

AJ Towns在這裡解釋了使用 MTP 作為滅活點的一個缺點。如果啟動時間接近困難重定位塊啟動可能會在第二天或兩週內發生。這帶來了一些溝通挑戰。

此外:

從 LOCKED_IN 過渡到 ACTIVE 的高度必須在從 STARTED 過渡到 LOCKED_IN 後立即完全確定。這樣,如果您想竊取受 nLocktime 和新規則保護的資金,則必須重新組織整個 LOCKED_IN 週期。

總之,似乎有共識認為區塊高度應該專門用於未來軟分叉的啟動機制,但是否有共識將它們專門用於提議的 Taproot 啟動機制 Speedy Trial 尚不清楚。

有關 MTP 時間扭曲攻擊的更多詳細資訊,請參閱Mark Friedenbach 和Andrew Chow 的這篇文章。

該答案取自GitHub 上的評論以及 Andrew Chow、AJ Towns、Jeremy Rubin、Sjors Provoost、Antoine Riard 和 David Harding的郵件列表

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