2017年3月7日 星期二

誰決定比特幣的交易稅(Transaction Fee)?

比特幣的每筆Transaction,有時會出現Fee。是誰指定的?指定後對於Transaction會有何影響?

翻了一下「Mastering Bitcoin」這本書,總結如下:

  • Minimum Transaction Fee由市場決定 (市場如何決定?待下一篇說明之)
    • Current Minimum Transaction Fee = 0.0001 bitcoin per kilobyte
  • 建立Transaction的人,可以指定Fee,也可以不指定
    • 若指定,至少要給Minimum Transaction Fee
    • 可以多給Fee,這樣Miner若挖到包含該Transaction的Block,就賺到了
  • 有些Miner喜歡挖有Fee的礦,有些不喜歡
  • Age和Fee會影響Node要先處理那些Transaction

下圖,Block包含了二大塊:Block Header、Transaction Space。

Transaction Space又分二區,第1區存放High-Priority Transactions,第2區存放有Fee的Transactions。




每個Miner在挖礦之前,會建立一個Candidate Block(如上圖),並且從Transaction Pool裡挑選幾個Transaction塞進來。

首先會挑選High-Priority Transactions到第一區。如何判定Transaction是High-Priority?

先計算Transaction的Priority:

Priority = Sum (Value of Input * Input Age) / Transaction Size

若Priority > 57,600,000為High Priority,書中舉的例子如下:

有一個Transaction,Size為250 bytes,Input總計為1 Bitcoin = 100m satoshis,待了1天,經過144個Block,都沒有被處理到,它的Priority目前為57,600,000。所以只要再經過1個block,就有可能被下一個block處理到了。

High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000

接下來,根據Fee挑選Transactions會被塞到第2區。沒有Fee的Transaction,絕不會到第2區。沒有Fee的Transaction,要等到Age增加,成為High-Priority Transaction,才有機會被塞到之後的Block的第1區。

-Count

沒有留言:

張貼留言