介紹
如果我們的智慧型手機上彈出應用程式更新窗口,我們會毫不猶豫地啟動它。手機甚至可以在不通知用戶的情況下進行更新。畢竟,更新是必要的 - 如果不安裝最新的軟體,您就有可能中斷裝置上的服務。
開源加密貨幣的情況有所不同。要使用比特幣,您不需要詳細研究程式碼行,但這應該仍然是可能的。由於沒有一個管理機構可以自行進行更新和更改,因此向區塊鏈添加新功能可能相當困難。
在本文中,我們將研究如何在沒有中央管理機構參與的情況下實現加密貨幣網路的現代化。這就是使用硬分叉和軟分叉的原因。
誰在區塊鏈網路上做出決策
要了解分叉的工作原理,您需要了解誰在網路中做出決策(或行使控制權)。
比特幣網路中存在三類參與者:開發者、礦工和全節點用戶,他們對網路做出了主要貢獻。輕節點(即手機、筆記型電腦等上的錢包)被廣泛使用,但不是網路的「參與者」。
開發商
開發人員創建和更新程式碼。任何擁有硬幣的用戶都可以對其進行更改,因為程式碼是公開可用的,並且可以向開發人員發送任何建議。
礦工
礦工保護網。他們運行加密貨幣代碼並提供向區塊鏈添加區塊的資源。例如,比特幣網路使用工作量證明演算法來實現這些目的。礦工透過他們的工作獲得區塊獎勵。
全節點用戶
全節點是加密貨幣網路的支柱。它們驗證、發送和接收區塊和交易,並儲存區塊鏈的副本。
所列出的參與者類別通常可能是一致的。例如,開發者可以同時是全節點,或者全節點可以同時是礦工。任何人都可以扮演這三個人,也可以都不扮演其中任何一個。事實上,加密貨幣用戶通常指的是那些不履行任何這些角色的人。相反,他們使用輕量級節點或集中式服務。
考慮到上述情況,我們可以同意網路上的決定應該由開發者和礦工做出。開發人員創建程式碼:沒有他們,就不會有軟體,也沒有人來修復錯誤或添加新功能。礦工保護網路:如果沒有良性的挖礦競爭,攻擊者就會奪取鏈的控制權。
然而,如果礦工和開發者試圖將他們的願望強加給其他網路參與者,那麼什麼都行不通。很多人認為真正的控制權屬於全節點。然而,這一切都與無縫網路更新功能有關,使用者可以選擇他們想要使用的軟體。
開發人員不會用槍口強迫用戶下載比特幣核心二進位文件,礦工也無法發出最後通牒並進行更改。
這些參與者並不是全能的管理者──他們只是支持服務的運作。如果用戶對網路失去興趣,代幣的價值就會下降,這將直接影響礦工的收入(他們的美元獎勵將會減少)。至於開發者,使用者可以直接忽略。
關鍵在於軟體不是任何人的財產。使用者可以進行任何更改並與使用修改後的軟體的使用者互動。這是透過分叉軟體並創建新網路來完成的。
什麼是叉子
分叉是創建軟體副本並對其進行修改。同時,原來的專案繼續運行,但分叉卻按照自己的方向單獨發展。假設某個加密貨幣網站的團隊內部就進一步開發產生了嚴重的分歧。然後,團隊的一部分可以在不同的網域上重新建立網站,並在其中託管不同的內容。
這兩個項目都建立在相同的基礎上,有著共同的歷史,就像一條路分成兩個不同的方向。
請注意,分叉只能發生在開源專案中,而且這種情況早在比特幣或以太坊出現之前就發生了。然而,硬分叉和軟分叉只能在區塊鏈網路上進行。讓我們仔細看看它們。
➟ 正在考慮從哪裡開始使用加密貨幣?在幣安購買比特幣!
硬分叉和軟分叉
儘管名稱和任務相似,但硬分叉和軟分叉還是有顯著不同的。讓我們更詳細地看看它們中的每一個。
什麼是硬分叉
硬分叉是與先前版本不相容的軟體更新。當節點新增與舊節點的現有規則衝突的變更時,通常會發生這種情況。新節點只能與運行新版本的節點通訊。結果,區塊鏈被分成兩個獨立的網路:一個使用舊規則,另一個使用新規則。

更新後,節點變為藍色。舊的黃色節點拒絕它們,藍色節點相互連接。
所以現在兩個網路是並行運行的。他們都將繼續使用區塊和交易,但不在同一個區塊鏈上。在創建分叉之前,所有節點都在同一個區塊鏈上運行(該分叉將具有與原始區塊鏈相同的歷史記錄),但將來它們的區塊和交易將會不同。

由於網路具有共同的歷史,因此如果用戶在分叉之前擁有代幣,則他們的資金會在新網路中重複。假設在分叉時,您在區塊 600,000 上有 5 BTC,即使您在舊鏈上的區塊 600,001 上花費了這 5 BTC,它們也將保留在新區塊鏈上的區塊 600,001 中。如果分叉使用原始貨幣,您的私鑰也將包含來自原始分叉的資金。
硬分叉的一個例子是 2017 年的分叉,它導致比特幣分成兩條鏈——原始的比特幣 (BTC) 和新的比特幣現金 (BCH)。分叉的出現是關於最佳擴容方法的大量爭論的結果。比特幣現金支持者希望增加區塊大小,而比特幣支持者則反對這項改變。
區塊大小只能透過改變規則來增加。這發生在 SegWit 軟分叉之前(稍後會詳細介紹),因此節點只接受小於 1 MB 的區塊。即使滿足所有其他要求的 2 MB 區塊仍然會被拒絕。
在分叉中,只有擁有新軟體的節點才能批准大於 1 MB 的區塊。當然,這意味著與原始版本完全不相容,因此只有具有相同修改的節點才能互動。
什麼是軟分叉
軟分叉是向後相容的更新,這意味著更新的節點可以與舊節點通訊。通常,當新增與舊規則不矛盾的新規則時,就會發生軟分叉。
例如,使用軟分叉可以減小塊大小。讓我們以比特幣為例來說明這一點:雖然有允許的最大區塊大小,但沒有最小區塊大小。也就是說,要批准小於特定大小的區塊,您只需拒絕較大的區塊即可。
這不會自動斷開您的網路連線。軟分叉節點仍然能夠與原始區塊鏈中的節點互動——它們只會過濾接收到的資訊。
軟分叉的一個很好的例子是前面提到的隔離見證(SegWit)分叉,它發生在比特幣/比特幣現金分裂後不久。 SegWit 更新經過深思熟慮,改變了區塊和交易的格式。舊節點仍然可以驗證區塊和交易(格式更改並不違反規則),但它們根本不理解它們。要讀取某些欄位並分析其他數據,需要切換到新軟體。

即使在 SegWit 啟動兩年後,也並非所有節點都已更新。升級有其好處,但只要更改不會對網路產生破壞性影響,就沒有緊迫性。
硬分叉與軟分叉 - 哪個更好?
本質上,每種類型的叉子都有自己的用途。因分歧而產生的硬分叉可能會分裂社區,但計劃中的分叉允許在雙方同意的情況下自由修改軟體。
軟叉是比較溫和的選擇。它意味著帶有某些不違背舊規則的限制的變化。無論如何,如果更新能夠保持相容,那麼就無需擔心網路碎片。
概括
硬分叉和軟分叉對於區塊鏈網路的長期成功至關重要。儘管缺乏單一的管理機構,但它們允許對去中心化系統進行更改和更新。
分叉是區塊鏈和加密貨幣在開發時整合新功能的機會。由於這些機制,對具有垂直管理的集中式系統的需求消失了。沒有它們,區塊鏈的發展也會受到同樣規則的阻礙。


