Sign in

Member Benefits

Get Demands

View Business Cards

Exclusive Service

Noble Identity

AS LOW AS 1.5U /DAY

硬分叉与软分叉:区块链版本更新的必经之路,硬分叉与软分叉

Share

2023-06-13

区块链是一个存在於互连网中的大型分散式系统,存在於每一个网路参与者(矿工)的电脑中,换句话说,一但区块链要进行版本更新或系统修改,所有网路参与都必须下载並运行新版本的区块链客户端,区块链系统才能完成版本更新。

區塊鏈是一個存在於互聯網中的大型分類繫統,存在於每個網絡節點與用戶(礦工)的電腦中,換句話說,一個區塊鏈要進入版本更新或繫統修改,所有網址與者都必須下載併運行新版本的區塊鏈客戶端,區塊鏈繫統才能完成本版更新。然而,分類式公共知識繫統升級等級時睏的地方在於,非常需要與者在同一時間完成更新,只要有與者沒有及時更新的客戶端,網上就會存在於不同版本的區塊鏈,換句話說,區塊鏈會出現分叉。因此,區塊鏈進入行更新時,必須協調好所有的繫統參與者,否則可能會影響到區塊鏈繫統的安全性。


另外一個分佈式公共知識繫統升級睏難的地方在於,必須讓所有的網址與者達成公共知識,如果只有一部分礦工同意更新,另外一部分舊礦工不同意更新,礦工之間便會生產共識題。而區塊鏈更新的公共知識問題大致上會有以下四種可能:


1.新礦工接受舊礦工挖出的區塊。


2.新礦工不接受舊礦工挖出的區塊。


3.舊礦工接受新礦工挖出的區塊。


4.舊礦工不接受新礦工挖出的區塊。


硬分叉


新礦產品生產的區域可以包含舊礦產品出的區域,而舊礦產品生產的區域無法兼容新礦產品出的區域。


aaf7e460d9b788a1170ee956a300de93.jpg


當繫統中出現了新版本的更新,併且和前版本不能兼顧,舊礦工無法接受新礦工挖出的全部或部分分區,區塊鏈就會出現硬分叉。以比特幣為例,若更改協議的重要參數,例如區塊大小、挖礦題目標的難度或出塊速度等,這些規則中的任何一個都可能導致新區塊無法被解決前版本的公共知識規則接受。例如,如果更新後,區塊容量限制從1MB增加到4MB,那麽運行新版的礦工將接受4MB的區域,但運行舊版的礦工則會拒絕該塊。


社群達成共識


872aac55062831e27c8aa1a19961f192.png


在新礦工佔大部分的情況下,舊礦工有兩種選擇,第一種就是接受更新升級客戶端軟件,這種情況意味著社群對版本更新達成共識,區塊鏈可以安全且順利完成更新。


社群無法達知識


ef396d594fc5f15781d68c028059238f.png


如果舊礦工堅守維護舊版的繫統,那個區塊鏈將因此分為兩條鏈。 (在這種情況下,新礦工與舊礦工已經無法達成共知了,即方便接受更新的新礦工算力 > 51% ,舊礦工依然不想接受新版本,因此不適合使用「最長鏈共識」。)


若大部分的人都選擇更新,那新版的算力必比強,減下的就看舊版的算力夠不夠支持維護一條鏈的安全,倒若還是有一定數量的礦工堅守維護舊版本,那個區塊鏈就會拆分成兩條鏈。當區塊鏈拆分為兩條鏈,併且在有各種自己的礦工維護各自的鏈的情況下,就會產生兩種不同的幣(大部分分數叉,比如以太坊的君坦丁堡硬分叉,礦工都會願意接受新版的區塊鏈,礦工之間沒有共識問題,就不會有分裂的情情況),這就是所謂的「分叉幣》,例如比比特幣社區在2017年的寬鬆方案理念產生分化,無法達成共識導嚮致硬分叉,比比特幣現金(Bitcoin Cash)因此生。


對用戶而言,這種社群分裂的硬分叉,最有意義的就是可以領分叉幣,舉個例子,分叉前妳在錢包裏有「1 BTC」,分叉後妳將有「1 BTC + 1 BCH”。在沒有得到所有生命狀態中的參與者與本人同意的情況下,硬分叉有很大的風險,很容易引導致該區塊鏈的生命繫統分裂、算力分裂等進入重放攻擊的危險中。所以這是一種極端工具爭辯和危險的區塊鏈升級技術,因此區塊鏈社區對硬分叉非常小心。


軟分叉


當新礦工的算力超過51%時,新礦工生產的區塊可能無法與舊礦工生產的區塊兼容,但舊礦工可以接受新礦工廠生產的區域。


b32709bdadc5febf782c94460cdf8426.jpg


如果進行「更嚴格的規則」的更新,即修改或增加協議中不影響結構的功能,舊礦工將接受新礦工所產品的區域;相反地,根據新礦工規定的協議比較為嚴格,新礦工將拒絕舊礦廠生產的區塊。在正常情況下,舊礦廠將選擇升級,否則他們生產的區塊將無法被新礦工接受,也無法獲得挖礦獎勵。(在特殊情況下,如意形狀或展開觀察點不一致情況下,舊礦工仍有可能選擇不接受新礦工所生產的區域,繼續維護舊版的鏈接,進入併引導致硬分叉甚至分裂。)


以比比特幣為例,理由是,舊礦工意識到他們的區塊被拒絕後,選擇升級。隨著越來越多的礦工升級,這將進入一步孤立舊版的區域,在利益的驅動下,將促使更多的舊礦工進行升級。因此,繫統能夠以比較溫和的方式完成更新。


軟件分叉的更新是比平時看到的情況。最開始,比比特幣併沒有分區大小的限制,以後通過軟件分叉引入了1MB的限制,還通過軟件分雙成功添加了支付到腳本哈希(pay- to-script-hash)功能,該功能在不改變結構的情況下增強了代碼。這種類型的更新通常只需要大量的礦工進行升級,其他礦工便會隨其升級,這使它更可靠,破壞性更小。


硬分叉與軟分叉總結


與硬分叉相比較,軟分叉的過程中,在正常情況下,只會存在一條鏈,沒有分叉兩條鏈的風險,且軟分叉不要求所有礦工同時一時間升等級,而是以比較溫度和方法逐步升級,不影響軟件分叉過程中的繫統穩定性和有效性。


然而,這兩種方法併沒有優點之分,而且是適合使用性的問題。如果進入大模闆的區塊鏈更新,必然摸及到不被舊協議接受的規則。即使我們都知道軟件分叉比硬分叉更安全,有時只能選擇使用硬分叉進入行區區塊鏈升級。


但也不需要對硬分叉感到太過恐懼,因為只要全網礦工對升級有相同的共識,就不會分叉成兩條區塊鏈,也不會影響到安全性。


總而言之,對於區塊鏈升級而言,重要的不是硬分叉還是軟分叉,而是礦工與礦工之間的共識是否一至,這部分被稱為「區塊鏈治理」。如果共識處理不好,就容易導致錯誤,這也是為什麽區塊鏈的升級比傳統軟件更難的原因。













Disclaimer:
Details

Please Play Responsibly:

Casino Games Disclosure: Select casinos are licensed by the Malta Gaming Authority. 18+