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

1.8 區塊鏈的硬分叉

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

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

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

主站蜘蛛池模板: 汕尾市| 讷河市| 富蕴县| 乐清市| 民和| 崇左市| 镇原县| 汝阳县| 秀山| 绥化市| 文登市| 泽普县| 河南省| 合作市| 无棣县| 南安市| 福贡县| 麟游县| 扎赉特旗| 蓝田县| 南郑县| 吴忠市| 乌鲁木齐市| 台湾省| 平塘县| 水城县| 云南省| 开封市| 蛟河市| 河北省| 西充县| 宁阳县| 龙井市| 句容市| 舟山市| 阳信县| 静安区| 若尔盖县| 双鸭山市| 蕉岭县| 页游|