【译】Hard Forks, Soft Forks, Defaults and Coercion
區塊鏈領域的一個重要論據是硬叉或軟叉是否是首選的協議升級機制。 兩者之間的基本區別在于,軟叉通過嚴格減少有效的交易集來改變協議的規則,所以遵循舊規則的節點仍然會進入新鏈(假設大多數礦工/驗證者實施叉),而硬叉允許以前無效的交易和塊變得有效,所以客戶必須升級他們的客戶才能保持硬叉鏈。 還有兩種分叉形式: 嚴格擴張硬叉,嚴格擴大有效的交易組合,因此舊規則對新規則和雙邊硬叉來說是一個軟分叉,這兩個規則集都是不兼容的。
下面是一個Venn圖來說明叉子類型:
這兩個常見的好處如下。
- 硬叉讓開發人員在協議升級時有更大的靈活性,因為他們不需要注意確保新規則“符合”舊規則
- 軟叉更方便用戶使用,因為用戶不需要升級以保持連鎖
- 軟叉不太可能導致連鎖分裂
- 軟叉只需要真正需要礦工/驗證者的同意(因為即使用戶仍然使用舊規則,如果使鏈條使用新規則的節點,那么只有在新規則下有效的東西才會進入鏈條)。 硬叉需要用戶同意
除此之外,硬性叉子經常遭受的一個主要批評是硬叉子是“強制性的”。 這里所強調的那種強制不是物理的力量, 相反,它是通過網絡效應來強制的 。 也就是說,如果網絡將規則從A更改為B,那么即使您個人喜歡A,但如果大多數其他用戶喜歡B并切換到B,那么盡管您個人不同意為了進行更改而必須切換到B與其他人一樣的網絡。
硬叉的支持者常常被嘲笑為試圖對網絡進行“敵意接管”,并“強迫”用戶與他們一起前進。 此外,連鎖分割的風險通常被用來作為“不安全”的硬叉。
我個人的觀點是,這些批評是錯誤的,而且在很多情況下是完全倒退的。 這個觀點并非特定于以太坊或比特幣或任何其他區塊鏈; 它是由這些系統的一般屬性引起的,并且適用于它們中的任何一個。 此外,下面的論點僅適用于有爭議的變更,至少有一個選區(礦工/驗證人和用戶)的很大一部分不贊同; 如果變更不具爭議性,那么無論叉子的格式如何,通常都可以安全地進行。
首先,讓我們討論強制問題。 硬叉和軟叉都以某些用戶可能不喜歡的方式改變協議; 如果任何協議更改的支持不足100%,則會執行此操作。 此外,在任何情況下,至少有些持不同意見者認為,堅持更大群體的網絡效應比評估自己對協議規則的偏好更重要。 因此,這兩種分叉類型都是強制性的,就網絡效應而言。
然而,硬叉與軟叉之間存在本質區別: 硬叉是選擇性的,而軟叉允許用戶根本不選擇“選擇” 。 為了讓用戶加入硬叉鏈,他們必須親自安裝實現分叉規則的軟件包,并且與規則不一致的用戶組的變化甚至比他們重視網絡效應更強烈,理論上可以簡單地留在舊的連鎖店 - 實際上,這樣的事件已經發生了 。
在嚴格擴大硬質叉和雙側硬質叉的情況下,情況確實如此。 然而, 在軟叉的情況下, 如果分叉成功,則不存在非叉形鏈 。 因此, 軟叉明顯地從體制上贊成強制分離,而硬叉具有相反的偏見 。 我自己的道德觀點促使我贊成分離而非強制,盡管其他人可能會有所不同(最常見的觀點是網絡效應真的非常重要,而且“ 一枚硬幣統治全部 ”是非常重要的,盡管更適度的版本也是如此存在)。
如果我不得不猜測為什么,盡管存在這些論點,軟叉通常被認為是“硬性較差”,但我認為這是因為它感覺像一個硬叉子“迫使”用戶安裝軟件更新,而用軟分叉用戶不會“有”做任何事情。 然而,這種直覺是錯誤的:重要的不是個人用戶是否必須執行點擊“下載”按鈕的簡單官僚步驟,而是用戶是否被強迫接受協議規則的改變 ,他們會寧可不接受。 如上所述,通過這種度量方式,這兩種叉子最終都是強制性的,并且難以出現的叉子在保持用戶自由方面稍微好一些。
現在,讓我們看看極具爭議的分支,特別是礦工/驗證者偏好和用戶偏好沖突的分支。 這里有三種情況:(i)雙側硬叉,(ii)嚴格擴張硬叉,和(iii)所謂的“用戶啟動軟叉”(UASF)。 第四類是礦工在未經用戶同意的情況下啟動軟叉; 我們將在稍后討論。
首先,雙邊硬叉。 在最好的情況下,情況很簡單。 這兩種硬幣在市場上交易,交易者決定兩者的相對價值。 從ETC / ETH的情況來看,我們擁有絕大多數證據表明,無論其意識形態如何,礦工絕大多數情況下都會根據價格比例簡單地將硬幣分配給硬幣,以最大化他們的利潤。
即使一些礦工對一方或另一方表達意識形態偏好,過度傾向于有足夠的礦工愿意套用價格比率和亂率比率之間的任何不匹配,并使兩者保持一致。 如果一個礦工的卡特爾試圖形成不在一個鏈上挖礦的話,那么就會有過度的缺陷誘因。
這里有兩個邊緣案例。 第一種可能性是,由于調整算法的效率低,開采硬幣的價值隨著價格的下降而下降,但難以補償,使得開采非常無利可圖,并且沒有礦工愿意在繼續推進鏈條直到其難度恢復平衡為止。 以太坊的情況并非如此,但比特幣可能就是這種情況 。 因此,少數連鎖店很可能永遠不會脫離地面,因此它將會消亡。 請注意,這是否是一件好事的規范性問題取決于你對強制與分裂的看法; 正如你從我之前寫的內容中可以想象的那樣,我個人認為這種少數連鎖反對的難度調整算法是不好的。
第二個邊緣案例是,如果差距非常大,那么大型連鎖企業可以有51%攻擊較小的連鎖企業。 即使在ETH / ETC以10:1的比例分配的情況下,也沒有發生; 所以它肯定不是一個給定的。 然而,如果主導鏈上的礦工更喜歡強制讓分離和按照這些價值行事,那就永遠是可能的。
接下來,我們來看看嚴格擴展硬叉。 在一個SEHF中,有一個屬性是非分叉鏈在分叉規則下是有效的,所以如果分叉具有比非分叉鏈低的價格,它將具有比非分叉鏈更小的散列能力,并且因此,無叉鏈條最終將被原始客戶和分叉客戶規則視為最長的鏈條 - 因此分叉鏈“ 將被殲滅 ”。
有一種觀點認為,這樣一個分支的成功存在著強烈的內在偏見,因為分叉鏈將被湮沒的可能性將被推銷到價格中,從而推低價格,使鏈條更有可能成為殲滅......對我而言這一論點似乎很強烈,所以這是一個很有理由做出任何有爭議的硬派雙邊而非嚴格擴張。
比特幣無限制開發者建議通過在發生硬手動雙邊交易后手動處理這個問題,但更好的選擇是使內置的雙邊交易成為可能; 例如,在比特幣的情況下,可以添加一條規則來禁止一些未使用的操作碼,然后在非分支鏈上進行包含該操作碼的事務處理,以便在分叉規則下,非分叉鏈將從此被認為永遠無效。 在以太坊案例中,由于有關狀態計算如何工作的各種細節,幾乎所有的硬叉幾乎都是自動雙邊的。 根據其架構,其他鏈可能具有不同的屬性。
上面提到的最后一種叉是用戶激活的軟叉。 在UASF中,用戶可以打開軟分支規則,而無需得到礦工的共識。 預計礦工們只會擺脫經濟利益。 如果許多用戶不遵循UASF,那么將會出現硬幣分裂,這將導致與嚴格擴展的硬叉相同的情況,除了 - 這是概念的真正聰明和迂回的部分 - 相同的“湮滅風險”壓力強烈反對嚴格擴張的硬分叉中的分叉鏈,反而強烈支持UASF中的分叉鏈 。 即使UASF選擇加入,它也會使用經濟不對稱來偏向成功(盡管偏差不是絕對的;如果UASF決定不受歡迎,那么它將不會成功,并且只會導致連鎖分裂)。
但是,UASF是一個危險的游戲。 例如,讓我們假設一個項目的開發人員想要創建一個UASF補丁,該補丁將先前接受所有事務的未使用的操作碼轉換為只接受符合某些很酷的新功能規則的事務的操作碼,盡管政治或技術上有爭議的礦工不喜歡。 礦工們有一種聰明狡猾的反擊方式: 他們可以單方面實施礦工激活的軟叉,使得使用由軟叉創建的特征的所有交易總是失敗 。
現在,我們有三個規則集:
注意(2)是關于(1)的軟叉,并且(3)關于(2)是軟叉。 現在,有利于(3)的經濟壓力很大,因此軟分叉未能實現其目標。
結論是這樣的。 軟叉是一種危險的游戲,如果它們有爭議并且礦工開始反擊,它們會變得更加危險。 嚴格擴展硬叉也是一個危險的游戲。 采礦者激活的軟叉子是強制性的; 用戶激活的軟叉子不那么強制性,雖然由于經濟壓力而仍然非常強制,并且它們也有其危險。 如果你真的想要做出有爭議的改變,并且認為這樣做的高社會成本是值得的,那么只需做一個干凈的雙邊硬盤,花一些時間來增加一些適當的重放保護,并讓市場對它進行整理。
https://vitalik.ca/general/2017/03/14/forks_and_markets.html
總結
以上是生活随笔為你收集整理的【译】Hard Forks, Soft Forks, Defaults and Coercion的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: How to save your Eth
- 下一篇: 【译】10 years Blockcha