264.6萬美元!探尋天價ETH手續費背後的安全問題

近期,以太坊上接連出現了三筆手續費用異常的交易,引發熱議。這3筆交易的金額都不大,但是設置的手續費卻高得離譜,最高的交易手續費用竟然高達264.6萬美元!今天,我們就從這些異常交易入手,分析並解答以太坊交易手續費的相關問題。

 

 

 

手續費爲何存在?爲了給予節點和礦工足夠的補償和激勵,同時也爲了阻止大量的微量、垃圾交易,用戶在進行以太坊上交易時必須支付一定的手續費用,否則將無法完成交易操作。

 

 

 

手續費是如何計算的

 

以太坊上的手續費又稱爲Gas,燃氣,即交易中消耗的資源的代名詞。通過查看以太坊瀏覽器Etherscan(https://cn.etherscan.com/)上面顯示的交易記錄,你會看到Gas Limit、Gas Used by Transaction和Gas Price,即與手續費相關的專用名詞。Gas Limit、Gas Used by Transaction和Gas Price則分別爲這筆交易中可消耗資源量的最大值、實際消耗資源量以及資源的單價。

 

Gas Limit代表了交易可以使用的資源上限,是爲了防止合約漏洞或者惡意程序導致用戶Gas量消耗過高的情況出現。一旦消耗的Gas量超過Gas Limit,礦工就會停止執行程序,做到及時止損。Gas Limit可以看成是一道保險,實際Gas消耗超過設定的上限就會終止交易,實際消耗Gas量低於上限,多餘的Gas也會退回來。交易中的實際消耗資源量Gas Used by Transaction一般與交易合約中的設定有關。

 

Gas Price的常用單位爲Gwei,Gwei與ETH的換算關係爲1ETH=10^9Gwei,即1ETH=10億Gwei。一般來說,Gas Price的值會很小,而Gwei的設定就是爲了方便表示微量的ETH,比如我們在轉賬是設置Gas Price爲0.000000012 ETH,用Gwei爲單位表示爲12Gwei,很明顯是後者表達得更爲簡單和直觀。

 

 

根據圖中描述,我們可以發現,轉賬的手續費只與Gas Used by Transaction和Gas Price有關。交易手續費的計算公式如下:交易手續費Fee =實際消耗資源量 Gas Used by Transaction*資源單價Gas Price。爲了方便理解,我們舉一個簡單的例子:假設你需要寄一個包裹,當地的快遞公司是按包裹重量收費,郵寄費用=包裹重量*每公斤郵費,即包裹越重,郵費越高。你可以發現,兩者進行對比之後,這些名詞都是一一對應的。包裹對應交易數額,郵費對應手續費,包裹重量對應使用資源量,每公斤郵費對應資源單價。

 

 

那麼我們再把這個例子延伸一下,就可以得到更多的結論。比如這個快遞公司其實有陸運和空運兩種業務,業務的單價是空運比陸運貴,相應的空運也會比陸運快很多。同樣地,在以太坊上進行交易的時候,如果你設置的資源單價Gas Price比較高,那麼礦工會傾向於優先打包你的交易,交易的確認速度自然也會快。

 

 

 

手續費應該如何設置

 

一般來說,用戶在進行轉賬的時候需要設置的參數就只有兩個:Gas Limit和Gas Price。Gas Limit可以通過代碼算出,Gas Price的取值以及交易速度則需要視當前網絡情況而定。參數計算方面大家不用擔心,如今市面上主流的錢包APP都會幫忙計算並給出推薦值。

 

 

在Token Pocket錢包(簡稱爲TP錢包)進行轉賬操作時,TP錢包會根據目前網絡情況給出慢、推薦和快三檔選項,對應的手續費用和預估的交易確認時間也很直觀地羅列了出來,用戶可以根據自身對交易快慢的需求選擇合適的檔位。這樣的轉賬系統相當人性化,三檔設置分配合理,大體上覆蓋了用戶轉賬的速度需求,增加用戶體驗感的同時也有效降低了手動輸入帶來的風險。

 

當然,如果用戶需要修改Gas Limit或者設置更高的Gas Price,只需點擊自定義,就可以自己設置Gas Limit和Gas Price,對應的手續費用及預估時間也會即時顯示來爲用戶提供參考,可以說是相當方便了!

 

 

 

天價手續費事件分析

 

我們再來回顧一下這些天價手續費的異常交易,同樣還是以第一筆異常交易爲例,從Etherscan上查到的交易記錄來看,這筆交易的金額只有0.55ETH(約136.4美元),但是手續費竟然高達10668.73ETH,按照交易時的市價,摺合約264.6萬美元!按照快遞的例子來說,我們寄一件價值1000元左右的包裹,郵費竟然花了1800多萬!這明顯是極不合理的。

 

造成這起事件的原因就在於過高的Gas Price,這筆交易裏的Gas Price爲0.50803485 Ether,也就是大約5億Gwei。難道是大佬手抖輸錯了?但是第二天,同樣的地址,同樣的天價手續費交易再度發生,這樣基本就推翻了手抖輸錯的推測。其實冷靜想想,人爲手抖輸錯的情況幾乎不可能發生。如果是人爲轉賬,自定義Gas Price過高,現在的主流錢包會阻止此類交易。

 

以Token Pocket錢包爲例,當我設置Gas Price爲1億Gwei時,會彈出提醒窗口,提示我Gas Price太高,並給出合理的Gwei數量建議。除此之外,網絡上有人對該地址進行溯源追蹤時發現,與該地址產生交易的都是一些小額地址,而且和該地址發生交互後都被清空了。根據這些情報來看,該地址主人存在洗錢或者被黑客勒索的可能。

 

 

我們來逐一分析,第一種猜測是洗錢在進行洗錢之前,該地址的擁有人需要提前與礦池聯繫好,然後在交易時故意設置高額的手續費,等礦池打包該交易獲得高額手續費後再聲稱這次交易是失誤導致的,要求礦池退還大部分的手續費。這樣一套流程運作下來,礦池獲得一部分手續費的回報,該地址的擁有者也成功將錢洗乾淨。筆者認爲出現這種情況的可能性很小。首先是這麼高調的行爲就不符合暗地裏洗錢的邏輯;其次交易打包的分配也具有不確定性,與衆多高算力的礦池聯合作惡的概率相當小。第二種猜測是黑客勒索。以太坊創始人V神也就這方面發表了他的看法:假設發送地址屬於加密貨幣交易所,黑客獲取了交換密鑰的部分訪問權。由於他們沒有完整的密鑰,所以不能撤回,但是可以以任何Gas價格發送無效的交易。按照這個邏輯來看,黑客通過高額交易費來威脅交易所,如果不給贖金,地址裏的資金就會因爲高額的交易手續費而全部被消耗掉。當然以上都是基於情報的合理猜測,真實情況和原因不得而知。

 

V神的解決方案

 

對於近期以太坊上出現的天價轉賬手續費問題,V神也提出了他的解決方案——EIP 1559提案。EIP 1559是一個社區提案,旨在通過網絡需求調整基本網絡費用從而改變當前收費模式,減少用戶手動輸入費用的場景。這種能減少手動輸入費用的提案可以有效減少此類異常情況再度發生的可能性。作爲普通用戶,我們可以使用類似TokenPocket這樣的主流錢包,這些功能成熟且操作方便的錢包,即使是對區塊鏈初學者也十分友好,是保障我們財產安全的守護神。

 

以太坊系列知識科普專題是由TokenPocket發起的有深度、有態度的大型科普性內容專題,旨在科學系統地普及區塊鏈及數字貨幣、數字錢包等相關知識。TokenPocket是全球領先的數字貨幣錢包,已爲數百萬用戶提供可信賴的數字貨幣資產管理服務。專題文章由錢包社區優秀志願者TP俠撰寫投稿,文章版權歸作者及TokenPocket所有,轉載請註明出處。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章