Blockchain-Fork

在硬分叉之後,不是每個新交易都會在兩條鏈上進行嗎?

  • March 21, 2017

我不明白為什麼我讀到在硬分叉之後,現有交易將在兩條鏈上,但交易只會在一條或另一條上(導致兩條不同的鏈,因此是山寨幣)。甚至交易最終不會在兩條鏈上結束嗎?

事務不關心塊大小,所以兩個版本都應該接受它們。即使一條鏈已經包含了它,第二條鏈的軟體也不會關心第一條鏈,因此第二條鏈應該仍然有這些交易在它的池中,導致它也被放入第二條鏈中。

我不明白這將如何導致兩條獨立的鏈……似乎兩條鏈總是具有大致相同的確切交易,只是可能以不同的順序並分組到不同的塊中。

我能想到的唯一例外是是否嘗試了雙花。那麼有可能其中一條鏈將接受一個雙花交易,而另一條鏈將接受另一個。

但除此之外,我看不出會有什麼不同。

當他們有一個硬分叉時,這實際上發生在乙太坊上。如果交易在兩條鏈上都有效(在分叉之前花費輸出),並且傳播到兩條鏈,那麼是的,沒有理由不將它添加到兩條鏈上的塊中。

但是,仍然有兩條鏈。當相同的交易被添加到兩條鏈中時,它們被包含在兩個單獨的塊中;來自鏈 A 的一個塊和來自鏈 B 的一個塊。這些交易的輸出只能在其相應的鏈上花費,即使創建它們的交易是相同的。

假設我們有一條在區塊高度 100 處硬分叉的鏈。我們現在有鏈 A 和鏈 B。使用來自高度 90 的塊的 UTXO 創建交易,並在兩個網路上傳播。鏈 A 將其包含在高度 108 的塊中,鏈 B 將其包含在高度 110 的塊中(儘管它也可以是其鏈上的 108)。現在創建了一個新交易,花費了鏈 A 上第一筆交易的 UTXO。如果第二筆交易僅在兩條鏈上的 UTXO 上花費,則只能在鏈 B 上傳播。隨著時間的推移,這變得越來越不可能。

由於一條鏈上的大多數新交易僅對該鏈有效,因此不久之後,兩條鏈幾乎沒有任何共同交易。

同樣重要的是要注意比特幣客戶端將斷開與從另一條鏈傳播塊的客戶端的連接。這將有助於隔離網路,並防止交易在兩條鏈上傳播,即使它們在兩條鏈上都有效。可能存在惡意實體“橋接”兩個網路,尋找在兩個網路上都有效的交易,但這種不當行為並沒有任何真正的動機。

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