Protocol

如何更改比特幣協議?這曾經發生過嗎?

  • January 30, 2022

我不斷在這個站點和 wiki 上遇到問題的答案,說將來可能需要更改協議以創建更多的可擴展性/安全性。

在我看來,由於涉及到如此多不同的人並且對目前協議進行瞭如此多的投資,因此很難更新協議。

比特幣協議如何更新?迄今為止有過這種情況嗎?

簡單。在原始碼中添加條件。例如,如果需要在塊 200,000 之後更改所有驗證的協議,那麼虛擬碼是:

If block <= 200,000: # 用老方法做。Else: # 用新的方式來做。

問題不是技術問題,而是政治問題。如果這種變化讓我感到痛苦(例如,以更高的速度使貨幣膨脹),那麼我不會想要接受任何我不想看到的程式碼版本。

因此,任何改變都需要得到開發商、礦工和……最重要的是,那些將在新規則下接受比特幣以換取有價值的東西的人的認可(共識)。

如果在沒有被廣泛接受的情況下推動了不需要的更改,則會發生區塊鏈分叉,而失敗的一方(通常是具有新規則的分叉)基本上會被忽略,就好像它甚至不被網路的其餘部分存在一樣。

協議發生了一些變化,客戶端的實現也發生了變化。有些是提前計劃好的(例如,BIP 16),有些是為了解決問題(例如,2010 年 8 月的價值溢出)。

  • <https://en.bitcoin.it/wiki/Incidents>

它在過去已經改變。例如,版本消息已更新。它的執行基本上是說:“好吧,在這個和這個日期,協議將被更改”,並為非標準客戶端提供足夠的時間進行更新。然後,在預定義的時間,所有客戶端都在內部更新了他們的協議版本,並開始以正常方式進行通信。

協議更新的主要問題是,一旦引入它們,大多數客戶端通常需要在更改計劃之前進行更新,否則會出現很多混亂。對於非標準客戶端(這意味著它們的所有者需要及時了解更改)和標準客戶端都是這種情況。

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