1. 程式人生 > >區塊鏈中的軟分叉與硬分叉詳解

區塊鏈中的軟分叉與硬分叉詳解

分叉

區塊鏈兄弟社區,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者聚集地

作者:吳壽鶴

來源:區塊鏈兄弟

原文鏈接:http://www.blockchainbrother.com/article/29

著權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。


說到分叉,我們首先了解一下在軟件開發中的分叉是什麽?

軟件項目中的分叉

軟件開發中的分叉指的是:在開源項目中如果有人Fork了一個項目(一個項目分叉為兩個項目),然後開發者沿著這個Fork向另外一個不同的方向獨立發展這個項目。例如Litecoin就是bitcoin的一個分叉,litecoin的基礎代碼就是bitcoin的,不過litecoin後來慢慢的發展成了一個另外一個獨立的項目。但是依然和bitcoin有著非常緊密的相關性。但litecoin和bitcoin是兩種不同的加密貨幣。


Bitcoin術語中的軟分叉與硬分叉

比特幣中的軟分叉和硬分叉主要指因比特幣協議的突發改變而導致的兼容性的問題。比特幣協議發生改變,會有兩個不同版本的比特幣協議在同時使,他們對其他區塊的接受規則不同會導致區塊鏈長期分叉,這兩個不同的鏈都會被不同的網絡認為是有效的。鏈分叉也導致網絡分叉。


軟分叉是向前兼容的


技術分享圖片

如上圖軟分叉的新的規則是以前舊規則的子集,所有被新版本認為是合法的區塊也會被以前舊版本認為是合法的。舊版本會接受新版本創建的區塊。新版本和舊版本是兼容的。

如果有至少51%的礦工的算力轉向的新版本,那麽網絡自動完成軟分叉:一開始舊版本創建的區塊在新協議下被認為是不合法的,這時會出現一個短暫的分叉,但最終新版本的分叉會趕超舊版本的分叉成為最長鏈。因為在舊版本上的算力是小於新版本的。

但是如果小於51%的礦工算力轉向新版本,那麽軟分叉將不會出現,因為舊版本比新版本有更多的算力支持,同時舊版本不兼容新版本。


硬分叉不向前兼容:


技術分享圖片

舊版本不會接受新版本創建的合法區塊,認為新版本的合法區塊是不合法的。所以很明顯硬分叉是不向前兼容。要實現硬分叉所有的用戶(礦工,交易所,普通用戶)都要切換的新的協議版本上。


總結:

軟分叉向前兼容,舊的版本會接受新版本創建的區塊,在軟分叉中只需要礦工升級到新版本即可,用戶可以繼續使用舊版本的協議,他們仍然會接受新版本協議創建的區塊。


硬分叉不向前兼容,舊版本不會接受新版本創建的區塊。要實現硬分叉所有用戶都需要切換到新版本協議上。


為什麽硬分叉不需要51%以上的算力,因為即便舊鏈的長度大於新鏈也沒用,新版本是不會接受舊鏈上的區塊,如果所有用戶都更新到新的版本那麽客戶的錢包會認為舊鏈上的資產是非法的,舊鏈上的貨幣無法使用。


THE DAO 為什麽要進行硬分叉而不是軟分叉:如果進行軟分叉,由於新版本是和舊版本兼容的,所以舊版本上的資產同樣也是可以在新版本上消費的,那麽就不能達到回滾黑客資產的目的。


文章發布只為分享區塊鏈技術內容,版權歸原作者所有,觀點僅代表作者本人,絕不代表區塊鏈兄弟贊同其觀點或證實其描述

區塊鏈中的軟分叉與硬分叉詳解