Blockchain

比特幣網路如何通過將同時發生的所有交易添加到一個區塊中來解決雙花問題

  • November 30, 2020

根據我的研究,我理解如果 A 人向 B 人發送 2 個BTC,同時 A 人向自己發送相同的輸入,則輸入被視為已用完。因此,現在在比特幣網路中廣播(節點將檢查交易鏈以驗證先前交易****的所有權歷史)時,每筆交易都會有不同的路線,並且可能首先確認的是錯誤的路線。顯然,第二個會被拒絕,網路會在共識的同時給出矛盾. 因此,根據我的理解,比特幣網路通過將同時發生的所有交易添加到區塊鏈的一個區塊中來解決這個問題。如果我錯了,請告訴我。我會很感激你的指導。謝謝

所以,我的問題是:比特幣網路如何通過將同時發生的所有交易添加到一個區塊中來解決這個問題?

根據我的理解,比特幣網路通過將同時發生的所有交易添加到區塊鏈的一個區塊中來解決這個問題。

這不是真的。

同時

你應該記住,比特幣網路並沒有真正嘗試保持準確的時間。塊並不總是按塊中的時間戳順序排列。只要他們似乎沒有超過大約 2 小時的錯誤,就會被接受。所以“同時發生”的概念是不明確的。

塊的大小是有限制的,因此通常無論如何都是不可能的。

選擇交易

礦工選擇交易以合併到一個區塊中。他們從他們收到的未確認交易池中選擇交易。這個池稱為記憶體池。

礦工選擇哪些交易完全取決於他們。他們可以根據交易將支付給礦工的最高費用進行選擇。他們可能會在操作員認為對他們有意義的任何其他基礎上進行選擇。

可能引起一些混亂的是,如果一個未確認的交易 B 花費了另一個未確認的交易 A 的輸出,我相信礦工會發現有必要將 A 包含在包含 B 的任何塊中。

雙花

礦工不能在一個區塊中包含兩個花費相同輸入的交易。這樣的塊會被其他人拒絕。

如果礦工在一個區塊中包含一個交易,該交易花費了之前區塊中交易已經花費的輸出,那麼後面的區塊將被其他節點拒絕。因此,如果可以避免,礦工就不會這樣做。

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