首頁>科技>

正如我們之前所看到的那樣,交易形成一條鏈,這條鏈的形式是一筆交易消耗了先前的交易(父交易)的輸出,併為隨後的交易(子交易)創造了輸出。有的時候組成整個鏈條的所有交易依賴於他們自己——比如父交易、子交易和孫交易——而他們又被同時創造出來,來滿足複雜交易的工作流程。這需要在一個交易的父交易被簽名之前,有一個合法的子交易被簽名。舉個例子,這是CoinJoin交易使用的一項技術,這項技術可以讓多方同時加入交易,從而保護他們的隱私。

當一條交易鏈被整個網路傳送時,他們並不能總是按照相同的順序到達目的地。有時,子交易在父交易之前到達。在這種情況下,節點會首先收到一個子交易,而不能找到他參考的父交易。節點不會立即拋棄這個子交易,而是放到一個臨時池中,並等著接收它的父交易,與此同時廣播這個子交易給其他節點。沒有父交易的交易池被稱作孤立交易池。一旦接收到了父交易,所有與這個父交易建立的UTXO有關的孤塊會從池中釋放出來,遞迴地重新驗證,然後整條交易鏈就會被交易池包括進去,並等待著被區塊所挖走。交易鏈可以是任意長度並且可以被任意數量的批次同時傳走。在孤立池中保留孤塊的機制保證了其他合法的交易不會只是因為父交易被耽誤了而被拋棄,並且無論接收順序,最終整個鏈會以正確的順序重新構造出來。

記憶體中儲存的孤立交易數量是有限制的,這是為了防止針對比特幣節點的拒絕服務攻擊(DoS)。這個限制被定義在比特幣涉及到的客戶端的原始碼中的MAX_ORPHAN_TRANSACTIONS。如果池中的孤立交易數量達到了MAX_ORPHAN_TRANSACTIONS,一個或多個的、被隨機選出的孤立交易會被池拋棄,直到池的大小回到限制以內。

#歐易OKEx##比特幣[超話]##數字貨幣#

14
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 比特幣的交易結構