
當網路發生堵塞,交易遲遲不上鏈會發生什麼問題呢?使用者或是錢包服務提供商,該如何減少這類情況的發生?本文將針對上述問題做探討,並且介 紹 AMIS Wallet Service 目前針對發送交易的使用體驗所做的優化。
交易延遲上鏈所產生的問題,可能比你想像得嚴重
在發送交易並廣播到以太坊網路上時,發送者必須明確指定願意支付的 gas price 以及 gas limit,礦工會依據這兩項參數去判斷是否要先將這筆交易包進區塊驗證,決定了這筆交易上鏈的速度。
許多使用者會認為,交易延遲上鏈,就只是比較晚收到錢,有些人會用「卡幣」這個詞去形容這個狀況,但這個說法只考慮到了帳本狀態改變的延遲,在支援智能合約的以太坊網路中,還需要考慮到合約狀態改變的情況,在一些有時效性的 Dapp 應用場景中,這樣的延遲將會導致非預期的結果。
黑色星期四事件
稍早在今年三月時,全球經濟受到重挫,美股熔斷數次,連帶也影響了虛擬貨幣的市場,最終在三月十二號,ETH 幣價大跌,蒸發將近一半的市值。

大幅的市場波動也造成了網路塞車,平均的 gas price 應聲飆高,印象中,當時發送的交易若希望快速上鏈,需要支付將近 200G wei 的 gas price。

當天除了一些中心化交易所有發生卡幣之外,許多 DeFi 應用、交易所觸發的大量清算也受到矚目,因此 3/12 被稱為幣圈的黑色星期四。加密貨幣市場的一次「隱性熔斷」: 由 BitMEX 引發的比特幣「黑色星期四」3/12,比特幣和總體數字貨幣市場經歷了一場血與火的洗禮。BTC 市值一天之內最多下跌 3600 美元,接近 40%,是自 2013 來最大幅度的單日下降。本文源自於 FTX 執行長 Sam Bankman-Fried 的 推文內容…www.blocktempo.com
由於 DeFi 應用是運行在鏈上,面臨壅塞的網路,資產清算拍賣的過程可能會有幾個問題:
- 債務人無法緊急償還債務或是增加抵押資產避免清算
- 拍賣競標者無法即時出價導致拍賣以極低價格成交
- oracle 服務無法提供最新報價,影響清算程序
其中具代表性的例子,即為由 MakerDAO 所治理的穩定幣系統 DAI,發生了零元清算,導致債務無法被清償,系統虧損,最後決定增發 MKR token 來彌補系統債務。The Market Collapse of March 12-13, 2020: How It Impacted MakerDAONearly three weeks ago, the Maker Protocol and the Maker Governance community were tested by a severe downturn in the…blog.makerdao.com
此次的事件可說是全網的一次壓力測試,從使用者及錢包服務提供者的角度,能夠及時因應網路情況而調整 gas price,讓交易能夠盡量符合預期的上鏈時間,會是較理想的情形。
提升交易收發的使用者體驗,是 AMIS 在開發錢包服務 (AMIS Wallet Service,以下簡稱 AMIS WS) 時著重的目標之一,其中一項就是 gas price 預測以及動態調整。
AMIS Gas Price Prediction (GPP)
為了要能即時掌握 gas price 行情,AMIS Wallet Service 持續觀察網路使用情形,並透過 GPP 統計歷史資料做出當下 gas price 預測。事實上也有第三方服務提供 gas price 參考資訊,例如 ETH Gas Station 以及 Etherscan Gas Tracker,每家計算方不盡相同,AMIS 為了在網路流量發生變化時,能取得更具優勢的 gas price 報價,因此選擇建立自己的 GPP 系統而非仰賴第三方 API。
下圖為 AMIS GPP 的紀錄,確實響應了當時網路的壅塞情形。

AMIS WS 允許使用者發送交易時不帶入指定的 gas price,系統將會參考 GPP 所提供的資料填入適當的 gas price,並透過持續監控,確保交易能順利上鏈。
AMIS Transaction Watcher
除了 gas price 預測之外,持續監控並且即時調整,是確保交易能夠上鏈更重要的一環。以個人錢包而言,也許使用者可以自行監控交易狀況並且手動調整,但若是在企業錢包服務的場景之下,自動化監控必然是較務實的做法。
AMIS Transaction Watcher 會針對採用 AMIS GPP 機制的交易做監控,定期檢查交易狀態,若交易超過等待上限仍未被礦工確認,系統會自動取得最新的 gas price 並且檢查是否有符合 10% 門檻的要求 (內容相同的交易,gas price 必須超過前者 10% 才會被礦工接受),重新簽名廣播出去。
需要留意的是,為了保留空間可以調整 gas price,AMIS WS 會額外計算 account pending balance,針對會使用這項 feature 的使用者,建議維持較高的餘額水位。
下圖為正常網路狀態下,AMIS 錢包發送交易的上鏈等待時間分佈

而針對黑色星期四的期間,整體交易上鏈等待時間分佈並無大幅改變

結論
如何在手續費以及上鏈效率之間取得平衡,是許多使用者經常要面臨的抉擇,對於頻繁收發交易的企業而言,一套可靠穩定的錢包服務可以免去許多繁瑣的監控作業,讓企業可以專注在其商業邏輯。對 AMIS WS 的使用者而言,發送交易只需要一筆 API request,無需煩惱監控交易以及對各種網路情形的應變,即使網路發生壅塞,仍可以預期交易在有效時間內可以被礦工確認。
Checkout AMIS website for more details
https://www.am.is/
本文由 AMIS Charles Jhong