Blockchain-Fork
軟分叉會導致兩個不同的區塊鏈版本嗎?
我已閱讀以下內容:
兩個分叉都會產生分裂,但硬分叉會產生兩個區塊鏈,而軟分叉會產生一個。
讓我們考慮兩種情況:
- 塊大小最大限制為 1mb,比特幣推出了一個新版本,將塊大小限制增加了 1,所以現在是 2mb。現在,這被稱為硬分叉,因為新版本與舊版本不兼容,因為當新版本解決一個塊(比如說 1.5mb)時,舊版本不會接受它。**(注意:如果舊的將塊發送給新的(因為舊的只會解決小於 1 的塊,所以新的總是會接受它));**所以新的不能和舊的交流,但舊的可以和新的交流。
- 塊大小是 1mb,現在我們減少了 0.5,所以現在是 0.5mb。現在,新版本與舊版本兼容,因為新版本總是會解決 0.5mb 或更低的塊,當他們將它發送給舊版本時,他們會接受它。**(注意:當舊的發送塊給新的(因為舊的可能會用 0.8mb 解決塊,新的不會接受它));**所以,新的可以和舊的交流,但舊的不能和新的交流。
你同意上面的說法嗎?如果是這樣,為什麼在我的第一句話中,它說:那個
a soft work is meant to result in one
?它不會產生一個,因為當舊的解決大於 0.5mb 的塊時,新的不會接受它,所以我們仍然會有不同版本的區塊鏈。任何想法?更新: @Murch,您在第二個中說,由於舊節點可以接受小塊(來自新節點),大塊節點將重組為小塊鏈。
如果 5% 的少數(在舊的大區塊鏈上工作)解決了一個區塊,那麼只有這 5% 的節點會將其添加到他們的鏈中。95% 不會,因為它們對塊大小的限制較小。現在,5% 少數節點的最後一個塊與 95% 多數節點的最後一個塊不同。(兩條鏈的長度相同 - 這可能是因為在拆分鏈後,5% 以與 95% 相同的種子解決了它在他們各自的鏈上)。如果現在 95% 的多數人產生了一個新塊,並將其分享給 5%,他們仍然不會添加它,因為這個新共享的塊的 prev 雜湊與他們最後一個塊的雜湊不匹配。所以在這種情況下,95% 的多數人會更快地產生一個更新的區塊(至少現在,長度不一樣),所以現在,多數人將與少數人共享 2-3 個區塊,因為他們擁有最長的鏈,這就是為什麼少數人會適應多數” s鏈到底。我的解釋和理解正確嗎?
您的觀察是正確的,除了預計分叉將由網路中的絕大多數節點和礦工啟動。最新的軟分叉在 1,000 個塊的特定部分中的啟動門檻值為 950 個塊,表明新規則準備就緒(95% 的雜湊率)。
所以,假設只有 5% 的算力不遵守新規則:
- 增加區塊大小:95% 的挖礦算力現在允許更大的區塊,5% 繼續執行較小的限制。一旦找到具有新規則的區塊,不允許更大區塊的舊節點拒絕主鏈並啟動自己的鏈尖。少數鏈的移動速度要慢得多,因此大多數礦工和節點都會忽略它。假設分裂的比例保持穩定,則兩條鏈仍然不可調和。為了修補網路分裂,一方必須承認並採用另一方的規則。
- 減小塊大小:大約 20 個區塊中的 1 個將超過大多數人強制執行的限制。只有仍然使用舊規則的節點會接受更大的塊,所有其他節點都會忽略它。大多數雜湊率將迅速超過大塊少數。由於舊節點可以接受小塊,因此一旦該鏈提示具有更多的總工作量證明,大塊節點將重組為小塊鏈。由於鏈尖之間的難度只會隨著難度調整而不同,這通常發生在小區塊鏈向前拉高一個區塊的時候。隨著大區塊現在成為陳舊鏈提示的一部分,創作大區塊的礦工將失去他們的區塊獎勵。結果,每當出現帶有大塊的短鏈叉時,網路最終都會收斂到較小的鏈上。