比特幣手續費的數額怎麼計算?什麼情況下需要手續費?

比特幣的交易費用一般為:0.0001-0.0005BTC之間。當然,每個礦工和礦工協會所接受的額度是不一樣的。有時候,大額的比特幣交易是不需要手續費的,比如超過100BTC。小額的交易如低於0.01BTC則要收取一定量的手續費。當然,有的比特幣客戶端可以設置比特幣交易費,如果你把交易費用設置的非常低,那麼交易確認的時間會非常的漫長。

  

...

  首先應該明白這個手續費是獎勵給礦工的,以激勵礦工繼續挖礦為比特幣提供足夠的算力從而確保比特幣網絡的安全。目前礦工的主要收入是通過創造新的塊(Block)來獲得BTC的獎勵,但是這個獎勵每4年減半,隨著時間的推移比特幣交易手續費將逐漸取代比特幣獎勵。

  什麼情況下需要支付手續費?金額是多少?

  比特幣系統有一系列的網絡規則,其中包含手續費規則,這一系列規則也就是「客戶端要做什麼」。當你使用Bitcoin客戶端(錢包,Bitcoin-Qt)發送比特幣的時候,整個過程大致分為以下步驟:

  1. 籌備你要發送的比特幣

  客戶端負責收集你錢包(Bitcoin-Qt)里的比特幣餘額為支付做準備,因為你收到的每一筆比特幣都存在你的錢包裏面直到你花掉它們。

  假如在OKCoin比特幣提現3BTC與2BTC兩次,它們在你錢包的記錄是相互獨立的,即一個3BTC和一個2BTC,而不是合併為5BTC(錢包只記錄交易明細,並不將餘額合併,但是你在錢包的界面上可以看到總的餘額),隨著時間的推移你的錢包里會積累許多這樣數量不等的比特幣,可想而知OKCoin比特幣錢包里應該有成千上萬條這樣的記錄了吧。所以當你發送比特幣的時候錢包必須決定用哪些上述記錄最適合用來本次發送。

  在一次交易中你得到的比特幣稱為「輸入(inputs)」,支出的比特幣稱為「輸出(outputs)」,在你的錢包里存在多個輸入和輸出。

  2. 阻止大量微額(dust)支付衝擊網絡

  如果你向OKCoin比特幣交易平台充值小於0.01BTC(包括你錢包內部的資金變動)的話,你必須要支付0.0001的手續費。錢包在準備你的支付金額的時候有一個既定的規則,就是在眾多輸入(inputs)中籌備支付金額的時候儘量避免產生小於0.01BTC的金額變動(比如你要向OKCoin比特幣充值5.005BTC,錢包儘可能的選擇3+2.005或者1+1+3.005,而不是5+0.005)。

  3. 數額越大、幣齡(age)越高優先級越高

  如果你發送金額太小或者是你的比特幣剛開採出來不久,那麼你的轉帳就不再免費之列。每一個交易都會分配一個優先級,這個優先級通過幣的新舊程度、交易的字節數和交易的數量。具體來說,對於每一個輸入(inputs)來講,客戶端會先將比特幣的數量乘以這些幣在塊中存在的時間(幣齡,age),然後將所有的乘積加起來除以此次交易的大小(以字節為單位),計算公式:priority = sum(input_value_in_base_units * input_age)/size_in_bytes,計算結果如果小於0.576,那麼該交易就必須支付手續費。這也是為什麼你在OKCoin比特幣提現的時候都要加一個0.0001的原因了,因為OKCoin錢包內的比特幣轉帳頻繁,比特幣在塊中的時間比較短,因此需要支付手續費。如果你確實有大量的小額輸入,比如小礦工,又想免費轉出,這時候你可以加一個數額大的、幣齡大的比特幣金額,就會將平均優先級提高,從而可以免費轉出比特幣。

  4. 每千字節的收費

  在轉帳的最後客戶端會計算本次轉帳的大小(以字節為單位),大小一般取決於輸入和輸出的數額大小,計算公式如下:148 × 輸入數額 + 34 × 輸出數額 + 10,如果該次轉帳的大小超過10000位元組但是優先級符合免費的標準,那麼仍然可以享受免費轉帳,否則需要支付手續費。每1000位元組的費用默認是0.0001BTC,但是你也可以在客戶端里進行追加,依次打開選項卡「設置>選項>主要」進行手續費的調整。如果你在設置的手續費小於0.0001BTC按0.0001算。當本條規則適用時將會取代步驟2的規則而不是累加。