Blockchain-Fork

如果發生分叉,舊交易會怎樣?

  • June 7, 2018

我對分叉感到困惑。在分叉的情況下,區塊鏈的“舊”版本和相關交易/數據會發生什麼。它們仍然可以被刪除,還是新分支仍然依賴它們來確保連續性?

在分叉的情況下,區塊鏈的“舊”版本和相關交易/數據會發生什麼。他們還能被刪除嗎

在軟分叉的情況下,必須保留歷史數據。在硬分叉的情況下,保留歷史數據並不是絕對必要的,但它幾乎總是被保留。

更詳細一點:軟分叉以向後兼容的方式改變了每個人都遵循的規則,只是使規則更加嚴格。例如,礦工可以訪問一個名為“coinbase”的欄位,他們過去可以在其中放入任意 2 到 100 個字節的序列;後來添加了一條規則,在 BIP34 軟分叉中指定該欄位的前幾個字節必須是目前塊的高度(與第一個塊的距離)。這是更嚴格的,所以每個遵循新規則的人也自動遵循舊規則。這是向後兼容的,因為任何遵循舊規則且尚未違反新規則的人都可以繼續正常使用他們的軟體。

然而,為了實現向後兼容性,區塊鏈中可用的數據不僅必須保持可用,而且必須保持基本相同的格式。有時您可以使用它來做一些技巧,就像 segwit 通過將簽名移動到交易中的新欄位所做的那樣,但是您可以合理進行的更改範圍是有限的。

對於硬分叉,規則以向後不兼容的方式更改,因此每個人都需要升級。這為您提供了一張白紙,您可以在上面對您想要的系統進行任何更改。關於舊的區塊鏈歷史,你可以做的是承諾系統的目前狀態,並丟棄所有用於到達該狀態的歷史。

例如,假設 Alice 挖了一個比特幣,然後將該比特幣支付給 Bob。區塊鏈會同時包含挖礦交易和支付交易,但如果大家反正都在升級,簡單的說一句“Bob 以 1 個比特幣開始”,然後扔掉 Alice 的挖礦交易。

如果您在比特幣硬分叉後丟棄歷史數據並僅保留目前狀態,您可以將目前區塊鏈大小減少約 98%,降至幾 GB。

但是,我不知道有任何比特幣硬分叉或山寨幣曾經拋出歷史數據並簡單地致力於目前狀態。我不知道為什麼會這樣。

“如果發生分叉,舊交易會怎樣?” 沒有。“舊”交易仍然可用。否則它不是叉子。直到分叉的那一刻,分叉的兩個分支都將具有相同的歷史記錄。

“它們仍然可以被刪除,還是新分支仍然依賴它們來確保連續性?” 今天的狀態是交易一般不會被刪除。舊交易需要確保完整性,因為您需要它們來跟踪比特幣的歷史並重新驗證所有塊的雜湊值。

引用自:https://bitcoin.stackexchange.com/questions/75986