比特幣手續費為什麼不看轉帳金額?

銀行轉帳的手續費可能是固定金額,也可能依匯款金額分級。這種經驗很容易讓人推想:轉出的比特幣愈多,費用大概也愈高。因此,初次使用比特幣錢包時,畫面上偶爾出現「小額付款費用較高、大額轉帳反而較低」的結果,看起來就像系統算錯了。
不過,比特幣網路接收的是一筆需要驗證、傳播並寫進區塊的資料。資料內代表多少價值,與它占用多少空間,是兩個不同問題。一筆移動較大金額、結構簡單的交易,可能比一筆拼湊許多零碎資產的小額付款更精簡。這正是金額直覺失效的地方。
費用藏在輸入與輸出的差額裡
比特幣交易會引用一個或多個 UTXO 作為輸入,再建立收款與找零等新輸出。協議沒有在交易中另設一格「服務費」交給某家公司;所有輸入的總額減去所有輸出的總額,留下的差額就是這筆交易願意支付的費用。
假設要支付的金額剛好能由一個 UTXO 負擔,交易可能只需一個輸入與少量輸出。若同樣的付款必須動用許多零碎 UTXO,則每一個輸入都要帶上來源與解鎖證明,整筆資料自然變大。輸出數量、使用的腳本類型,以及簽章資料的形式,也都會改變最後的大小。
所以,兩筆金額相同的付款可以有不同費用;一筆大額轉帳若只用少數輸入,也可能比小額付款便宜。金額仍決定輸出要代表多少價值,卻不會直接告訴網路這筆資料有多重。
排序看的是每單位資料的費率
現代錢包通常會把交易大小換算成「虛擬位元組」(virtual byte,vB),再以每 vB 願意支付多少聰來估算費用。總費用大致由費率乘上虛擬大小而來。這種計量會把見證資料的權重納入,讓不同交易結構可以在同一尺度上比較。
當許多人同時爭取有限空間時,礦工通常更願意收錄費率較高的交易,因為在相近容量內能取得較多費用。網路清閒時,較低費率也可能很快獲得交易確認;需求集中時,同一個費率可能等得更久。費率影響被選中的誘因,但不構成準時收錄的保證。
這裡還有一個限制:全節點各自保存它所接受的未確認交易,連線、轉送政策與本機資源都可能不同。人們口中的「目前行情」通常來自近期區塊與各自看見的交易集合,屬於估計,不是一張由中央系統公布、所有參與者同步遵守的價目表。
交易所提領費與鏈上費用要分開看
台灣讀者常在交易所或代管服務看到一筆固定的提領費。服務商可以自行決定收費方式,也可能把多位使用者的提領合併成一筆鏈上交易。畫面扣除的金額因此可能包含營運定價、風險緩衝或批次處理策略,未必等於該次交易實際留給礦工的差額。
反過來說,一筆鏈上交易即使移動很高的總額,也不代表服務商一定會按比例付費。判斷時要先問清楚眼前看到的是平台收費,還是公開交易本身的費用;兩者可能相關,計價者與計價邏輯仍然不同。
零碎輸出讓未來交易更重
許多小額 UTXO 平時看起來都屬於餘額,等到要一次花用時,錢包可能必須加入更多輸入。若當下費率很高,花掉某個極小輸出所增加的費用,甚至可能接近它本身的價值。這不會讓輸出憑空消失,卻會形成現實上的花費摩擦。
因此,理解費用時可以先別只問「轉了多少錢」,更關鍵的是「這筆交易用了多少輸入與輸出、占了多少虛擬空間,以及當時有多少資料在競爭區塊容量」。比特幣帳本記錄價值移動,也必須容納驗證這些移動所需的資料;手續費反映的,主要是後者帶來的稀缺性。