為什麼比特幣錢包顯示有餘額,卻不能全部送出?

比特幣錢包明明顯示還有餘額,輸入同樣金額後卻跳出「餘額不足」,或按下「全部送出」時出現一個更小的數字。對習慣銀行帳戶的人來說,畫面上的總額既然屬於自己,理應可以完整轉走。
不過,比特幣底層沒有一個可以直接清空的帳戶欄位。錢包只是把它找到、判斷由自己控制的多筆 UTXO 加總成易讀數字;每筆輸出各有確認狀態、花費條件與資料成本。畫面能列入總額,不代表軟體此刻就願意或能夠把它當成交易輸入。
因此,「看得到多少」與「現在最多能送多少」要分開計算。前者描述錢包辨認到的資產,後者還要排除暫時不可用的輸出、選出可花的組合,並從中留下足夠的手續費。兩個數字不同,通常是這些條件共同作用的結果。
收到付款不等於已經穩定可用
一筆收款剛廣播時,錢包可能先把它顯示在總額或待確認餘額中。這能提醒使用者網路上已出現相關交易,卻不代表它已取得交易確認。原交易仍可能被替換、失去上游輸入,或因費率與節點政策而長時間等待。
技術上,未確認交易建立的輸出有時可以被後續交易花用;然而,後一筆會依賴前一筆先成立。若父交易失效,子交易也會失去基礎。不同錢包會依風險設定、交易來源與相依層數,決定是否把這類輸出算進「可用」餘額,所以兩套軟體看見同一筆資料,也可能顯示不同的可送金額。
挖礦產生的新幣還有更明確的限制。Coinbase 交易建立的輸出必須等待 100 個區塊後才能花用。錢包可以先顯示這筆收入,網路規則仍會拒絕過早支出。這類「尚未成熟」反映輸出目前尚未滿足花費條件,並非介面自行採取的保守估計。
全部送出仍要替交易本身留下費用
即使所有輸出都已確認且可以花用,把全部餘額填成收款金額仍可能失敗。交易需要引用一筆或多筆 UTXO,附上解鎖資料,再建立新的收款輸出;這些資料占用區塊空間,通常要支付費用。若輸入總額剛好等於收款金額,便沒有差額可作為手續費。
錢包的「全部送出」功能通常會先選定輸入、估算交易虛擬大小,再用輸入總額扣掉預估費用,把剩餘值設為收款金額。因此,按鈕顯示的可送數字低於總餘額,是計算結果,不代表另有一筆資產被平台扣留。
差距也不一定固定。若錢包必須動用許多零碎 UTXO,交易資料會更大,費用可能增加;費率估計上升時,同一組輸入可送出的淨額也會下降。某些極小輸出的價值甚至可能接近花用它所增加的成本,軟體便可能暫時不選,避免為了搬動小額資產反而付出更多。
錢包還可能主動保留部分輸出
有些輸出在協議上已可花,仍可能因錢包政策而不列入一般付款。使用者可能透過硬幣控制功能凍結特定 UTXO,避免把不同來源合併;軟體也可能保留陌生粉塵、等待更多確認,或排除正在被另一筆未確認交易使用的輸入。
這些限制屬於本機選幣與風險管理,並沒有把鏈上資產凍結。解除標記、調整設定或改用手動選幣,可能改變可用數字;代價則可能是增加交易關聯、費用或雙重花費風險。若錢包由交易所或託管服務管理,提領門檻、暫停提領與內部帳務又是另一層規則,不能和個人錢包的 UTXO 狀態混為一談。
同步狀態也會造成暫時落差。錢包若尚未取得最新區塊,可能不知道某筆收款已確認,也可能沒看到某個輸出已被花掉。重新整理畫面不會改變鏈上狀態;它只是讓本機資料逐步追上網路。依賴遠端服務的輕量錢包,還要面對後端延遲、漏報或連線中斷的限制。
先辨認差額屬於哪一層
遇到總額與可用額不同時,可以先查看收款是否已確認、是否標示為待確認或尚未成熟,再確認有沒有凍結輸出與正在等待的支出。接著比較錢包顯示的費率、預估交易大小與費用,便能判斷差額主要來自風險等待、選幣政策,還是建立新交易的資料成本。
如果畫面來自託管平台,還需另外查看平台的可提領餘額與服務狀態。鏈上地址收到多少、平台帳戶願意放行多少,以及一筆交易扣除費用後能送出多少,分屬不同層次;只看首頁的大字總額,很容易把它們誤當成同一件事。
所以,錢包顯示的餘額比較像多筆資產狀態的摘要,可送金額則是一筆尚未建立交易的即時計算。確認狀態決定哪些輸出足夠穩定,花費條件決定哪些已經能用,選幣政策決定軟體願意動用哪些,手續費最後決定收款人能拿到多少。把這四層拆開,畫面上的差額就不再像資產無故消失,而是一組可以逐項查明的限制。