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