4.6 交易費

前面的章節中已經提到過交易費,以後的章節也會陸續提到。本章主要討論在比特幣系統中,交易費是如何設定的。

當一筆交易被納入比特幣區塊鏈的時候,就可能支付了一筆交易費。前面章節提到,交易費是比特幣交易中輸入金額(付款方支付的比特幣)和輸出金額(收款方收取的比特幣)之間的差額——輸入金額必須不少於輸出金額,否則交易無法完成;如果交易的輸入金額大於輸出金額,那麼這個差額就是交易費。交易費由將該交易打包進某個區塊的礦工獲得。

交易費的經濟學意義非常有趣,也非常複雜。而且交易費的設定細節隨時間變化而不斷變化,我們在這裡把時間框定在2015年年初,討論交易費在那個時點是如何設定並運作的。我們也會在本節末尾簡單敘述一下當前的情況。

交易費為什麼存在?原因是在比特幣網絡中傳播你的交易信息是需要成本的——每個節點傳播交易信息,最後由一個礦工把這筆交易打包進一個區塊,這些都有代價。舉個例子,如果一個礦工將你的交易打包進他的區塊,那麼這個區塊就會比其他區塊大一點點,也會花費更多的時間傳輸到其他節點,這樣,這個區塊變成孤塊的可能性就會提高,原因是在這一小段時間中,別的礦工也許剛好完成了區塊打包。

不論是對於節點的傳播還是對於礦工而言,確認你的交易都需要花費代價,交易費便用來補償礦工處理交易所付出的代價。節點通常並不收取費用,當然,節點的運行成本也比礦工的運行成本低許多。交易費的金額可以由發起交易的人自由設定,也可以不設定交易費。通常來講,如果你支付了較高的交易費,則交易將被更快、更可靠地傳播和記錄。

為了說明礦工如何設定交易費用,我們現在來看一下默認的交易費政策。但需要注意:首先,下文敘述的交易費政策基於2015年發佈的現行第0.10.0版本,在後續版本中,交易費政策可能不同;其次,設置默認交易費的動機是為了防止區塊鏈被大量小額交易所「污染」,而並不是想準確地評估礦工處理交易的成本。

當然,礦工無須遵守默認的交易費政策。在2015年,交易費在礦工收入中的占比不到1%,因此,大部分礦工是遵循默認交易費政策的。但隨著挖礦獎勵的降低,交易費在礦工收入中的占比會越來越高,我們可以預測,將會有越來越多的礦工不再遵守默認的交易費政策。

現在大部分礦工所默認的交易費是這樣計算的:首先,如果交易滿足以下三個條件,那就不需要支付交易費:

1.交易小於1 000個字節。

2.所有輸出為0.01BTC或更大。

3.優先權足夠高。

優先權是這樣定義的:(所有輸入的賬齡的總和×輸入金額)/交易規模。也就是說,先明確交易的輸入所對應的上一筆交易,把每筆交易的賬齡(交易完成到現在所經過的時間)及輸入金額相乘,然後把乘積相加,就得到了優先權數據。注意,某筆交易的輸出越長時間沒有被消費掉,賬齡就越高,那麼,它被支付時,交易的優先權就越大。

如果一筆交易滿足了上述三點要求,這筆交易會被傳播,最後會被納入區塊鏈,這個過程是免費的。否則,交易就會被收取費用,當前默認標準是:每1 000個字節需要支付0.0001BTC,在2015年,這相當於每1 000個字節花費1美分的交易費,一筆交易通常包括:輸入通常是148個字節,每個輸出通常是34個字節,其他信息10個字節。如果一筆交易有兩個輸入和兩個輸出,那麼這筆交易的大小是400個字節。

如果一筆交易沒有滿足上述要求,它也有可能會被納入區塊鏈,但如果你想要一筆交易被更快、更有保證地納入區塊鏈,那麼就需要支付一筆標準的費用。因此,大部分錢包軟件和支付服務商在它們的支付流程中,都包含了標準的交易費用,在日常比特幣交易過程中,你會發現你支付了一定的交易費用。

當前,大多數的礦工會強制要求交易必須包含交易費,這意味著他們不會去處理那些沒有付交易費的交易(或者最後處理)。當然也有些礦工沒有這麼做,他們願意接受很少的交易費用甚至免費。

《區塊鏈:技術驅動金融》