區(qū)塊鏈中的分叉:了解成功升級的軟分叉和硬分叉
介紹
區(qū)塊鏈的去中心化特性允許不同的參與者(節(jié)點)安全透明地驗證和驗證網(wǎng)絡(luò)上的交易。但是,此設(shè)置可能會導(dǎo)致參與者之間就應(yīng)遵循哪些規(guī)則以就網(wǎng)絡(luò)狀態(tài)達成共識產(chǎn)生分歧。
一些參與者可以選擇創(chuàng)建一個新版本的區(qū)塊鏈,使用他們同意的規(guī)則。這就是所謂的分叉。
在本文中,您將了解什么是分叉、不同類型及其對網(wǎng)絡(luò)狀態(tài)的重要性。
什么是節(jié)點?
節(jié)點是連接到區(qū)塊鏈網(wǎng)絡(luò)的計算機或設(shè)備,負(fù)責(zé)驗證、確認(rèn)交易并將其廣播給其他節(jié)點。節(jié)點具有特殊軟件,其中包含用于驗證區(qū)塊鏈網(wǎng)絡(luò)上交易的規(guī)則。最常見的節(jié)點類型是全節(jié)點。此類型包含區(qū)塊鏈分類帳的完整副本,用于跟蹤交易是如何從 2009 年的第一筆交易開始立即發(fā)生的。
塊是如何創(chuàng)建的?
網(wǎng)絡(luò)上的所有節(jié)點總是在競相尋找下一個要添加到鏈中的有效塊。當(dāng)一個節(jié)點找到一個有效的塊時,它會將其廣播到整個網(wǎng)絡(luò)以供其他節(jié)點驗證。當(dāng)競爭中的其他節(jié)點收到這個有效塊時,他們確認(rèn)它確實有效,停止他們一直在做的事情,并立即開始使用收到的塊作為鏈上的參考來尋找下一個有效塊。
所以整個過程是這樣的:節(jié)點收到最新的區(qū)塊,并根據(jù)規(guī)則進行測試。如果該塊有效,則節(jié)點在引用最新塊的同時開始創(chuàng)建新塊的過程。
網(wǎng)絡(luò)中的所有節(jié)點都具有相同的規(guī)則集,用于就哪個塊有效或無效達成共識。當(dāng)需要改進網(wǎng)絡(luò)上已知的當(dāng)前規(guī)則集以解決某些錯誤或甚至在網(wǎng)絡(luò)上引入新功能時,就會出現(xiàn)這種情況。
節(jié)點現(xiàn)在必須更新他們用來達成共識的規(guī)則集。這個過程不是自動的。每個同意新規(guī)則的節(jié)點都必須手動下載并安裝此更新。不同意新規(guī)則的節(jié)點不會下載和更新其軟件。
一些節(jié)點更新他們的軟件而其他節(jié)點選擇不更新他們的軟件的整個情況導(dǎo)致在使用哪組規(guī)則來達成共識方面存在分歧。運行舊軟件的節(jié)點只能創(chuàng)建一個有效塊,但它會被運行更新軟件的節(jié)點拒絕
一些運行舊軟件的節(jié)點可以確認(rèn)一個有效的塊,如果新軟件包含使它無效的規(guī)則,則只能由運行更新軟件的節(jié)點使其無效。這會導(dǎo)致網(wǎng)絡(luò)分叉。
分叉的類型。
軟分叉:這是一種旨在添加新功能或提高網(wǎng)絡(luò)安全性的分叉,并且它是向后兼容的。節(jié)點可以選擇是否升級到新規(guī)則。未升級到新規(guī)則的節(jié)點仍然可以與已升級的節(jié)點通信,反之亦然。然而,隨著時間的推移,所有節(jié)點都必須升級到新規(guī)則,因為使用舊規(guī)則創(chuàng)建的塊將被拒絕。
硬分叉:這種類型的分叉旨在向網(wǎng)絡(luò)引入新規(guī)則并且不向后兼容。升級到新規(guī)則的節(jié)點無法與具有舊規(guī)則的節(jié)點進行通信。因此創(chuàng)建了兩個區(qū)塊鏈,一個網(wǎng)絡(luò)由同意遵守舊規(guī)則的節(jié)點組成,另一個網(wǎng)絡(luò)具有已升級到新規(guī)則的節(jié)點。
硬分叉的一個典型例子是 2017 年比特幣 SegWit 硬分叉,它導(dǎo)致創(chuàng)建了一個名為比特幣現(xiàn)金的新區(qū)塊鏈。在這里[1]閱讀更多相關(guān)信息。
使用哪種類型的分叉?
根據(jù)情況,一種分叉優(yōu)于另一種分叉。2015 年,比特幣實施了 BIP66,該提案將引入更嚴(yán)格的交易驗證規(guī)則,軟分叉優(yōu)于硬分叉,因為比特幣核心程序沒有重大變化。
此外,以太坊網(wǎng)絡(luò)在 2016 年實施了硬分叉,以幫助扭轉(zhuǎn)對去中心化自治組織 (DAO) 的攻擊,攻擊者在該組織中損失了數(shù)百萬美元。有了這次分叉,數(shù)百萬美元免于被盜。
結(jié)論
分叉是區(qū)塊鏈和網(wǎng)絡(luò)技術(shù)的重要組成部分,它允許對協(xié)議進行創(chuàng)新、改進和網(wǎng)絡(luò)協(xié)議的演進,以滿足用戶不斷變化的需求。如果執(zhí)行得當(dāng),它可以顯著提高網(wǎng)絡(luò)性能。但是,另一方面,如果沒有達成共識,也會導(dǎo)致社區(qū)的分裂和碎片化。
原文:https://samthetutor.hashnode.dev/forking-in-blockchains-understanding-soft-and-hard-forks-for-successful-upgrades