007 硬分叉和軟分叉到底怎麼區分?

2021-08-21 22:18:30 字數 2310 閱讀 8480

馬克周 關注

我是馬克周,乙個對數字加密貨幣和區塊鏈深感興趣的撰稿人;熱衷程式設計學習和幣價技術分析。

你可以在這裡找到我

每次提到數字加密貨幣,有兩個詞不得不提:硬分叉和軟分叉。尤其是最近幾個月,位元幣世界裡面裡充斥著「劈腿」的聲音,接下來的11月可能又要出現一次,甚至兩次硬分叉。

雖然這些詞天天被人們談論著,可到底什麼是硬分叉?什麼又是軟分叉呢?最簡單的解釋是:如果你遇到乙個硬分叉,它意味著某種數字貨幣——比如位元幣——的新版本軟體和舊版本無法相容,彼此看不順眼,必須各走各路。而軟分叉則不同,新版本要求更為嚴苛,不同意舊版本的一些規則;但舊版本比較憨厚,還能接受新版本軟體。所以對於軟分叉而言,新舊版本並非你死我活。

這麼說仍然比較抽象,我們可以用乙個具體的例子打比方。

對於軟分叉,執行舊版本軟體就好比出門坐地鐵,而執行新版本就像是坐飛機。在地鐵站安檢的時候 (舊版本),拿著打火機,可以進站,可以上車,按照日常規程,基本沒人攔你。而在機場安檢時 (新版本),你的打火機只能貢獻給倒賣打火機的大爺大媽了。換句話說,有些在地鐵上能做的事情,在飛機上就不能做 (舊版本支援的事情,新版本不支援)。反過來看,因為坐飛機的安檢更為嚴格,所以如果你滿足了坐飛機的要求,坐地鐵自然沒有任何問題 (新版本支援的事情,舊版本也支援)。

對於硬分叉,我們也可以用 「地鐵和飛機」 形象化。硬分叉中的舊版本軟體就好比開地鐵,而新版本則是開飛機。顯然,能開地鐵,不代表你能開飛機 (舊版本支援,新版本則不支援);反過來,即使你有飛機駕駛證,也不能拿著它直接坐進地鐵駕駛室裡把車開走 (新版本沒問題,舊版本卻不支援)。

如果非要用一句話來總結,數字加密貨幣的硬分叉意味著新舊版本軟體互不相容,必須分道揚鑣,分成兩條不同的區塊鏈;軟分叉則相對柔和,舊版本相容新版本,只是新版本不相容舊版本而已,因此雖然會有輕微分叉,但仍可共存在同一條區塊鏈下。

最近在位元幣網路中,最引人關注的軟分叉和硬分叉當數8月份成功啟動的 segwit,和可能會在11月啟動的 segwit2x。二者的目的相似,都是為位元幣的區塊擴容。我們可以套用上面對於軟硬分叉的解釋,來理解這兩個擴容方案的區別。

之所以說 segwit 是軟分叉,是因為在這一方案中,首先,舊版位元幣軟體 「區塊不能大於 1mb」 的硬性要求,被新版突破了——區塊大小最高可達 2mb。啟用了 segwit 的位元幣軟體中,每筆交易都會啟用 segwit 指令。正是因為這一指令存在而且會被啟用,這些交易形成的區塊才可以突破 1mb 的上限,達到 2mb。

其次,新版本軟體產生的交易,仍然可以被舊版本接受、確認——即舊版本仍然支援新版本。這正是 segwit 的巧妙之處:新版本軟體產生的交易,在舊版本上不會觸發 segwit 指令——舊版本軟體並沒有接到 「你需要把區塊大小改為 2mb哦」 的要求。所以,在舊版本看來,這仍然是一筆跟以往一樣的交易。我可以確認它。

換句話說,在 segwit 模式下,區塊可以小於 1mb,跟往常一樣,也可以處在 1 - 2mb之間。這就是 segwit 屬於軟分叉的根本原因,求同存異嘛,大家一起過。

廣為詬病的 segwit2x 則不同。這個方案屬於硬分叉,因為它要求 「新產生的區塊至少達到 2mb,最多可達 8mb」。顯然,這是乙個 「你死我活」 的方案;這樣一來,新舊版本均無法跟對方相容。舊版要求區塊不超過 1mb;即使是加入了 segwit 的中間版本,區塊也不能超過 2mb。在這樣的條件下,segwit2x 「不低於 2mb」 的要求跟任何乙個舊版本都沒有交集。

在位元幣網路中,由於分散共識機制,基於開源公有鏈的本質,硬分叉的存在不可避免。而且由於位元幣軟體去中心化的執行模式,任何乙個礦工、使用者或者網路節點,以及那些擁有網路節點和算力的交易所、礦池,都可以根據自己的需求選擇支援分叉的任意一方。因此,避免過於激進的硬分叉,在分叉前充分做好預防網路攻擊的準備,充分考慮各方的需要,就變成了必須要完成的功課。

- [ the end ] -

你可以在這裡找到我

硬分叉和軟分叉

每次提到數字加密貨幣,有兩個詞不得不提 硬分叉和軟分叉。尤其是最近幾個月,位元幣世界裡面裡充斥著 劈腿 的聲音,接下來的11月可能又要出現一次,甚至兩次硬分叉。雖然這些詞天天被人們談論著,可到底什麼是硬分叉?什麼又是軟分叉呢?最簡單的解釋是 如果你遇到乙個硬分叉,它意味著某種數字貨幣 比如位元幣 的...

區塊鏈 軟分叉和硬分叉

最近學到的東西,記個筆記。區塊鏈中因為各種原因,使得節點之間不完全統一,產生分叉的現象。雙花其實就是一種軟分叉,軟分叉中雖然區塊之間的鏈存在差異,但節點與節點之間仍然可以相容,通過不同的協議,仍然可以保持乙個整體,如同btc 位元幣 選擇的孤塊策略和eth 以太坊 選擇的uncle 策略。硬分叉比較...

攻擊位元幣 軟分叉 硬分叉

篡改交易 由hash保證不可能的 拒絕服務攻擊 我拒絕,別人不一定拒絕啊 雙花交易攻擊 一筆錢,花兩次 如果2筆交易,同乙個礦工收到。第一次驗證ok,收入交易池 第二次驗證 沒餘額,不要。如果2筆交易,被兩個礦工收到,礦工1把他上鏈了,成為正式的交易。礦工2看到鏈上,會排除交易。否則pow半天,辛苦...