本文中以太坊礦工費部分信息已過時,僅供參考。以太坊的最新費用機制介紹請點擊下方鏈接查看。
作者:unowhat
去年同時期寫的這篇文章,沒想到今年回看,很巧,從五月開始,礦工費又變「貴」了。
---
行情回暖以來,比特幣網絡轉賬消耗礦工費單日最高 1250 萬人民幣。
2019.4.27-2019.5.27 礦工費數據統計(價格換算以 5月28日計)
區塊鍊網絡轉賬的活躍,讓礦工費問題日益凸顯,受到了更多重視。如果近期你嘗試比特幣轉賬,面對高額礦工費,是否默默取消了轉賬念頭?
礦工費約需¥106
我們不會接受買一件¥200 的衣服卻得交¥100 的稅,同樣難以接受一筆高額礦工費的小額區塊鏈轉賬。如何從技術層面優化是開發者的任務,這篇文章主要介紹
- 比特幣和以太坊的礦工費機制
- 如何合理設置礦工費
礦工費的作用
除了鼓勵礦工打包交易,保證代幣正常流動,礦工費同時還保護著區塊網絡的安全,使其免於被濫用。
礦工費機制
BTC
礦工費 = 轉賬交易體積(byte) * 礦工費率(sat/byte)
通過這個公式,可知有兩個因素影響轉賬的礦工費:轉賬交易的體積和礦工費率。
轉賬交易體積
比特幣交易的本質是一種數據結構,其基本單位是未經使用的一個交易輸出,簡稱 UTXO(unspent transaction output)。我們在錢包中所看到的餘額,就是由這些和錢包地址存在聯繫的數個 UTXO 累計的。
如下圖,3Ee6x...ceNQE 地址上有 0.00376546 BTC,他可能由一個交易輸出為 0.00376546 BTC 的獨立 UTXO 組成;也可能由一個交易輸出為 0.00276546 BTC 的 UTXO 和另一個輸出為 0.001 BTC 的 UTXO 累加而來。但具體的組成是確定的,因為構成這些的交易全都記錄在比特幣區塊中。
截圖為 imToken 比特幣資產頁面
發起轉賬需要使用 UTXO,來組成新一筆轉賬的交易輸入,同時創建新的 UTXO 作為交易輸出。由此,比特幣在不同所有者之間轉移,並在區塊中不斷消耗和創建 UTXO。
UTXO 和交易體積是什麼關係?一般來說,UTXO 是影響交易體積的主要因素。
以下兩筆轉賬為例:
- 交易 A 中消耗 3 UTXO 並創建 13 UTXO,交易體積為 803 byte
- 交易 B 中消耗 2 UTXO 並創建 4 UTXO,交易體積為 379 byte
在礦工費率一致的前提下,交易 A 所需礦工費是交易 B 的 2.1 倍。
作為礦工,每天挖礦所得就是一個 UTXO。當挖礦收入積累到一定程度需要轉賬時,就會出現由於交易體積過大(UTXO 數量過多)造成的高額礦工費。
交易 A
交易 B
礦工費率(sat/byte)
聰(sat)是比特幣的最小計量單位,1 sat= 10^(-8) btc。礦工費率即指每字節交易體積需消耗的 sat。
礦工費率取決於比特幣網絡的擁堵情況。網絡擁堵時,我們可以設置更高費率以使交易更快打包,而當更多人這麼做,礦工費率就被不斷提升。此時(2019.5.28),如果要使交易盡快打包,礦工費率已升至 200 sat/byte。
ETH
礦工費 = gasUsed(gas) * gasPrice(gwei)
gasUsed(gas)
gasUsed:交易消耗的總 gas 數量。
以太坊是一個智能合約平台,每一筆交易都在執行命令。而每個命令都被設置了對應的消耗值,以 gas 計數。這也就意味著,礦工為這筆交易執行了多少命令,就收取對應數量的 gas,如果 gas 有餘,則返還給交易發起者。
gasPrice(gwei)
gasPrice 類似於比特幣礦工費中的礦工費率,單位為 gwei,1 gwei= 10^(-9) eth。 gasPrice 設置得越高,交易處理優先級越高。
如何合理設置礦工費
以 imToken 為例,imToken 會實時調節適應於當前區塊網絡的最佳礦工費設置,只需按照默認設置進行轉賬,即可兼顧快捷和實惠。
如果對轉賬時間有更高要求,也可以手動調節來滿足需求。
礦工費「三擋變速」
常用工具推薦
對高級玩家,推薦兩個實用工具:
- https://bitcoinfees.earn.com/
比特幣礦工費查詢工具,可查看不同礦工費設置對應的未打包交易數和預計打包時間。 - https://ethgasstation.info/
以太坊礦工費查詢工具,功能同上。
希望以上可以幫你更好地理解礦工費。雖然網絡擁堵時,我們仍然無法改變高額礦工費的現狀,但了解為什麼總是好事。