官术网_书友最值得收藏!

1.8 區塊鏈的硬分叉

區塊鏈就和傳統的程序一樣,隨著時間的推移,軟件的設計本身也會發生改變,甚至是在軟件中出現嚴重的漏洞,如果在傳統軟件中就會產生升級的操作。而升級后是否向下兼容就會對整個軟件造成完全不同的影響。區塊鏈也是一樣,區塊的數據格式、生成區塊的算法以及對區塊鏈進行打分的算法都可能會升級。如果這種升級向下不兼容,就會出現兩套算法在同時運行的情況。運行舊軟件的計算機節點會繼續用舊的協議來繼續構建區塊,而運行新軟件的節點就會用新的協議去構建新的區塊。通常升級會從某一個固定的區塊開始,所以從這個固定的區塊開始,就會分叉出兩條完全不同的鏈。兩者再也沒有互相融合的可能。這就是區塊鏈的硬分叉。

和傳統軟件升級不一樣的是,硬分叉的代價很大,因為節點是否升級所牽扯的面很廣,其中除了技術的原因,還有很多利益糾葛,比如有的節點的硬件就是專門為舊的協議設計,無法很好地適配新的協議,那么這些節點升級新協議的可能性就很小,甚至這種升級根本就不可能實現。更進一步,不同的人對區塊鏈的想法不一樣,不同的工作組有可能給出完全不同的升級協議,而這些協議都可能被一定數量的節點所接受,結果就是同一個區塊鏈隨著時間的推移,可能會發生很多次硬分叉。例如,比特幣就被分叉過很多次,在交易市場上,很多和比特幣的名字很類似的幣,其實就是硬分叉導致的。以太坊也在某一次DAO黑客事件后進行回滾,有的節點不接受這次回滾,結果就是分叉出以太坊和經典以太坊兩條鏈。

要解決硬分叉問題,在技術上并沒有什么好的辦法。不過隨著時間的推移,不同的鏈在進行公平的競爭,最終總會有一些更好的被留下來,其他一些則被慢慢淘汰。所以,硬分叉到底是不是一個嚴重的問題,更多的就要看觀察角度了。

主站蜘蛛池模板: 金平| 福州市| 乌海市| 汉沽区| 蛟河市| 新河县| 盐源县| 边坝县| 合川市| 兴和县| 什邡市| 临湘市| 定陶县| 乌拉特前旗| 民丰县| 虞城县| 大同市| 横山县| 永春县| 和田县| 佳木斯市| 沾益县| 苏尼特右旗| 临桂县| 香河县| 曲阳县| 当阳市| 崇左市| 民乐县| 莲花县| 重庆市| 永昌县| 滦平县| 浠水县| 东兰县| 天等县| 临武县| 南丰县| 丹寨县| 秀山| 黔江区|