已簽署的比特幣交易,晚幾天再廣播還有效嗎?

已簽署的比特幣交易,晚幾天再廣播還有效嗎?的文章封面插畫

離線錢包可以用私鑰完成交易簽署,再把資料交給另一台連網裝置廣播。若當下沒有可靠網路,或多人簽署流程晚了幾天才完成,人們很自然會擔心:這份交易會不會像過期票券一樣,到了某個時點便無法使用?

不過,簽章只證明指定的交易內容獲得相應授權。它不會通知比特幣網路,也不會替引用的 UTXO 預留位置;收款地址、金額與手續費即使已經寫進資料,公開帳本仍可能完全不知道它存在。

因此,普通比特幣交易沒有「簽好後幾天自動失效」的通用期限。幾天後廣播仍可能成功,但前提是交易引用的資產仍可花、必要的時間條件已滿足,而且當時的全節點與礦工願意接受及處理。簽署、廣播、網路接受與交易確認,是四個要分開判斷的階段。

簽章固定的是一份特定承諾

建立交易時,錢包會選定輸入,列出收款與找零輸出,再依輸入總額和輸出總額留下費用。常見簽章方式會把輸入來源、輸出條件與金額等內容納入承諾;任何人日後改掉收款對象或金額,原簽章通常就無法通過驗證。

一份完整簽好的原始交易因此可以被複製與保存。拿到副本的人通常能替持有人廣播同一份資料,卻不能在保留原簽章的同時把款項改送給自己。某些進階協議會刻意採用不同的簽章範圍,不能把這項概括套到所有自製交易。

還要分清楚「已完整簽署」和「有人簽過一部分」。部分簽署比特幣交易(Partially Signed Bitcoin Transaction,PSBT)可以在裝置或參與者之間傳遞,但缺少必要簽章時仍不能成為有效付款。檔案能被保存,不等於它已具備廣播資格。

網路收到資料後才開始判斷

交易留在離線裝置期間,其他節點不會替它保留記憶池位置,也不知道有人打算花用那些輸入。錢包介面可能先把資產標成保留或已送出,這只是本機避免重複使用的管理狀態,沒有改變公開帳本。

這也表示,已經算出交易識別碼或看到「簽署完成」,仍不足以證明付款已送達。直到某台連網裝置把完整資料交給全節點,網路才會依當下狀態檢查簽章、輸入與其他規則;交易進入有效區塊後,才開始累積確認。

廣播本身同樣不會鎖住資產。多台節點可能先後看到不同的衝突版本,最後仍以哪一份有效交易進入網路接受的歷史為準。保存在硬碟裡的舊副本,沒有比已確認的支出更高優先權。

延後期間最容易改變的是輸入狀態

簽章會引用特定 UTXO。若同一筆資產在等待期間已由另一筆交易花掉,而且那筆支出進入有效區塊,舊交易就失去可用輸入;即使簽章原本完全正確,之後再廣播也無法通過共識規則。

若簽好的交易依賴一筆尚未確認的上游交易,廣播時還要讓網路取得並接受那位「父交易」。父交易若被另一個版本取代,原先引用的識別碼或輸出可能不再存在,下游交易也會一起失去成立基礎。

時間條件則可能造成相反情況。交易若設定了尚未成熟的時間鎖,太早廣播時可能被拒絕;門檻到達後,它才取得被收錄的資格。時間鎖通常限制最早何時能生效,沒有順便設定最晚使用期限,也不會在到期時自動廣播。

固定費用可能跟不上後來的環境

交易的鏈上手續費由輸入與輸出的差額決定。完整簽署後,若直接修改輸出來增加費用,常會破壞既有簽章;因此,等待期間網路需求上升時,原本合理的費率可能變得缺乏競爭力。

這時交易可能仍符合共識規則,卻因低於節點當下的接收門檻而難以轉送,或長時間沒有礦工願意收錄。相反地,費率很高也不保證立即確認,因為出塊時間、礦工所見資料與自身政策仍有差異。

部分錢包會預先保留以較高費用替換交易的空間,或允許後續交易替整組資料增加誘因。這些方法各有必要條件,也會產生新的簽章、費用或相依關係。單純把同一份舊資料多廣播幾次,不會提高其中已固定的費率。

已簽資料也有自己的保管風險

完整簽署的交易像一封已蓋章但尚未寄出的信。副本外流通常不會讓收件地址被改寫,持有者卻可能在原付款人尚未準備好時先行廣播;交易內容也會讓拿到副本的人提前看見金額、輸入與輸出,形成隱私與協調上的風險。

若交易本來就準備公開,提早送出未必造成資產被改送,但可能打亂多人簽署、時間安排或後續費用處理。若付款方已改變計畫,只刪除自己手上的檔案也不代表所有副本消失;只要引用的輸入仍可花,其他持有者仍可能提交原交易。

所以,已簽署交易晚幾天再廣播,沒有一個只看日曆就能回答的保證期。普通交易不會因放置幾天自行過期,真正要重新核對的是輸入是否仍未花費、上游資料是否成立、時間門檻是否成熟,以及當下政策與費率是否仍能讓它傳播。簽章保存的是授權承諾,網路能否在較晚時點接受這份承諾,仍由那一刻的鏈上狀態與傳播環境決定。