人們宣傳比特幣的時候常常會講:“可以向各種張三李四免費轉賬。”其實不一定,有時還是需要手續費的。
2013年,一個比特幣的價格為20美元。2017年,轉一個比特幣要花20美元。
手續費的目的一來為激勵礦工不輟挖礦,二來以維護比特幣網絡安全(維穩費?)。早期礦工的挖礦底薪比較高,每個區塊50枚BTC,但是創世塊之后每出21萬個塊(每四年),底薪減半。所有2100萬枚比特幣都被挖出后,由交易費充當挖礦獎勵。
關于減半算法的代碼,長這樣。
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
獎勵金在2012年當時候從50比特幣減半為25比特幣,2016年從25比特幣減半為12.5b比特幣。大概2020年就會再減半為6.25比特幣。
那麼,怎麼確定什麼時候需要掏交易費、掏多少合適?
比特幣網絡規則內置交易費用結構,取決于系統推薦的(標準)客戶端。 我們拿比特幣核心(bitcoin core)打個比方,看看轉帳時,需要過哪幾道:
1. 花哪些幣?
客戶端首先確定用哪些幣來完成支付。
好比, Bob給Alice轉了2枚比特幣;Rose又給Alice轉了3枚比特幣,那麼兩次轉賬金額會單獨地趴在Alice的錢包中,直到被花出去。(注意:兩筆轉賬不會“自動合并”為5BTC)。
那麼,經過一陣子,錢包中會積累不同金額的比特幣,所以才說,得考慮下用哪些做支付。
可用金額叫做交易的“輸入”,最終發送金額(包括退回到錢包的找零)稱為“輸出”。
2. 避免過于零碎的支付
若交易“輸出”(包括找零)小于0.01BTC,則收取0.0001BTC的手續費。 “選幣”時,算法會盡量避開那些找零金額低于0.01BTC的幣。
3. 老幣、大額交易優先
若發送的比特幣金額過小,或幣齡過低,則很有可能被收取費用。 每筆交易都有優先級,由“輸入”的年齡、金額和交易輸入數量決定。
具體而言就是, 客戶端將每一筆輸入的金額與該輸入在區塊中存在的時間相乘,將所有乘法結果相加再除以交易字節大小。
若結果小于0.576,則收取交易費。所以,有一堆零碎且/或很新的“輸入”,又不想掏手續費可以這麼干,交易里加上一個大額且較老的輸入即可。這里邊,比較關鍵的就是這個金額x年齡的平均值。
如果在第3步中某交易本來是收費的,但隨著時間流逝,又有新的區塊不斷產生,那麼原先交易中“輸入”年齡也隨之增長,進一步提升了交易的優先級,因此第3步中產生的費用可能會被免除。
4. “稱重”收費(按每千字節收費)
最后,客戶端檢查交易的字節長度。長度取決于輸入和輸出的數量,大致可用下列公式計算:
148 * 輸入數量 + 34 * 輸出數量 + 10
若長度小于10000字節且在第3步中有足夠高的優先級,那麼這筆交易最終被確認為免費,反之需收費, 費用默認為0.0001BTC/千字節(不足1k的按1k計算)。 可自行在客戶端相關設置中更改交易費數額。 低于0.0001BTC的設置不會生效。新費用設置生效后,將覆蓋步驟2中的費用,兩者不疊加。
接著說幾個例子:
1. 過猶不及
說:Alice錢包中趴著兩筆“輸入”,金額分別為1BTC和2BTC。然后Alice想買杯2.99999BTC的咖啡。這時就不存在選幣這一說了,因為有且只有兩筆輸入,都用上才夠咖啡錢,剩下0.00001BTC找零。注意,步驟2提到: 若交易“輸出”(包括找零)小于0.01BTC,則收取0.0001BTC的手續費。 說明,咖啡交易將被征收0.0001BTC的手續費。結果就是交易會失敗,因為Alice手里的余額不足。
這就有意思了:Alice手上有3BTC,但是沒法買2.99999BTC的咖啡。Alice可以把3BTC全部付給商家以避免手續費(假設第3步的費用為0),但有些商家可能會要求支付準確的金額。
2. 人品爆發
說:Alice人品大爆發,在某賠率64000的賭博游戲中,用0.02BTC撥來1280BTC。網站支付獎金時,自己錢包里并沒有可丁可卯的1280BTC,于是只能用各種零碎輸入(含找零)來各種湊。
最后,這筆湊出來的獎金大小是51203字節。是這樣,交易大小超過10000字節,費用增至0.0005BTC/每千字節(其實早期的交易費用就是0.0005,后來變成0.0001的),那麼, 這里的手續費就是52*0.0005 = 0.026BTC。 比玩家的本兒還高。
當然,還是比PayPal轉便宜。
注: 使用Paypal手續費為 4.4% + 0.3 USD/每筆。
好比,1280刀轉賬,1280*4.4% + 0.3 = 56.62 刀
注意:最后繳納的手續費是0.0286BTC,有可能是因為沒有使用(推薦)標準客戶端來創建交易,然后這個客戶端在計算費用時有點小問題。
這是個真事兒,見:Bitcoin Transaction 0a05beb2b1ad62d54a40e624d763cd97f10369b8e0527a3046dd2562cef4652c
3. 機關算盡,不掏錢
有種交易踏在免費的懸崖邊上,大小為9999字節,堪稱交易費躲閃之王。全部輸入中只有一個是1聰(satoshi,即比特幣最小單位,0.000 000 01 BTC = 1 satoshi, 以致敬比特幣創始人Satoshi Nakamoto);但是有另一個大額輸入拉高了優先級,免除交易費用。
必須支付手續費嗎?
捎帶腳說一句,手續費其實不是強制的。有些礦工并沒有很在意這些收費標準,也會把一些沒有手續費的交易記錄到區塊中。使用標準客戶端的“原始交易”(raw transactions)界面能創建手續費低于標準費用的交易,而且,還是有可能人品爆發的被礦工打包入塊的。
發文者:鏈站長,轉載請註明出處:https://www.jmb-bio.com/4278.html