Re: [閒聊] 治理 分叉 開發 去中心化 的討論

作者: Ayukawayen (亞布里艾爾發芽>//<)   2022-06-13 22:04:06
想起以前看Vitalik講UASF(使用者驅動軟分叉)和UAHF(使用者驅動硬分叉)的文章的心得
軟分叉和硬分叉的差別在:
軟分叉後新節點產生的區塊,未升級的舊節點也會接受。
硬分叉後新節點產生的區塊,未升級的舊節點不會接受。
(包含非礦工的客戶端,雖然只有礦工節點會產生區塊。其他節點只接收並判斷是否接受)
再考量舊節點產生的區塊新節點是否接受就可以列出以下四種情形:
新節點 接受 舊節點的區塊 新節點不接受舊節點的區塊
舊節點 接受 新節點的區塊 A B
舊節點不接受新節點的區塊 C D
照此定義,AB是軟分叉,CD是硬分叉。
UASF應該是B,目的是舊節點不必要升級,只需要足夠礦工節點升級。
UAHF是D。
(狀況A感覺有點像沒有分叉,只是加了新協定,因為彼此的區塊都可以接來接去)
結果就是
UAHF:
我的鏈比你短的時候,你不接受我的鏈。你的鏈比我短的時候,我不接受你的鏈。
我的鏈比你長的時候,你還是不接受我的鏈。你的鏈比我長的時候,我也還是不接受
你的鏈。
UASF:
我的鏈比你短的時候,你不接受我的鏈。你的鏈比我短的時候,我不接受你的鏈。
我的鏈比你長的時候,你會接受我的鏈。但你的鏈比我長的時候,我不接受你的鏈。
而且如果你的鏈現在比我長,但未來哪一天你的鏈比我短了一個單位(註:鏈的長短是
用難度判斷而不是區塊數),那你的鏈會被替換成我的鏈,相對地不管我的鏈比較短的
狀態持續多久,我都不會換成你的鏈。
※ 引述《azuel (Observer)》之銘言:
: 經典的案例就是ETH hardfork之後,原本的"舊ETH"本應該要死了,但節點和礦工還在
: 運作,因此舊規則的ETH被改名成為ETC。
: 新舊誰好是不一定的事情,ETC是老字號但是打不贏ETH,BSV是新品牌但是打不贏BCH。
: 當然ETC之後,ETH還是經歷過了幾次的hardfork,都沒有再發生一樣的事情,多少也
: 顯示了早期ETC事件留下來的經驗,對於後續hardfork有比較完善的處置。
The DAO fork的背景是:確實沒有共識而且未來也不會有共識,這個分歧比較是哲學性
而不是技術性的分歧。少數派即使知道自己是少數也不打算接受多數派的立場。
所以這次分叉的選項應該是對共識分歧的處理方式,而不是技術升級的處理方式。
和其他升級分叉的狀況有所不同。
最後是硬分叉讓沒有共識的兩個群體分開形成兩條鏈。
(不過The DAO事件大概也不容易用軟分叉解決)
Vitalik的意思大概是這樣:
用軟分叉處理共識分歧,等於強制少數派接受多數派的選擇。
硬分叉後少數派還有一條比較小的鏈可以跑自己的規則,軟分叉的話連小的鏈都沒有了
,一定要留著照多數派的規矩跑(因為新節點產生的區塊舊節點會接受,無法阻止新節點
區塊上鏈)。
事實上這也沒辦法解決共識分歧,像BCH後來自己就硬分叉出新的鏈不跟多數派玩了。
作者: john371911 (醬廖)   2022-06-14 00:50:00
推。好複雜。

Links booklink

Contact Us: admin [ a t ] ucptt.com