解讀幣安錢包歸集消耗巨量Gas背後的技術與安全因素



交易所資產歸集問題,不單單是成本問題,涉及到面非常複雜,回溯 Binanc14 曆史會發現,類似高 Gas 歸集的情況不是個例,那很顯然這是 Binance 綜合考慮各方因素得出的一貫的權衡方案。

作者:Haotian

交易所管理著大量的EOA Deposit 儲值地址,每次用戶充幣都把資產轉往了這些零碎的小地址,這些地址的資金,交易所通常要做"歸集"便於統一資產管理。

交易所地址歸集業務通常有兩個選擇:

1)用戶隻要衝幣,程式立刻把相應資產轉往熱錢包地址,但問題是,一個用戶一個充幣需求,可能會分成多次,比如,大佬轉大資金一般會先轉個小額進來,再逐筆轉入為安全計,顯然這種方案,容易多出更多的TXS,若交易所採用這種歸集方案,遇到恰好GAS 費高的時候就得頂著高GAS 執行,手續費也會很高,但好處是它的整個歸集過程是分散的,用戶端不會感知,對交易所而言也隻是正常的業務損耗需求。

2)用戶衝幣後一段時間內,那些零散的小EOA 地址保持不動,用戶再提幣的話直接從大的熱錢包提幣,然後固定一段時間進行一次地址歸集,這樣以來可以對一下賬,便於資產統一管理,二來可以選一個Gas 相對低的時間段,統一來進行轉帳作業。但這樣做有個難點,短時間大量操作很容易拉高Gas,而且一旦被媒體盯上容易誘發公關事件。因為,很難向大眾解釋,為啥交易所需要集中歸集資產這件事,關鍵是還燒了那麼多的Gas。

很顯然,幣安就採用了第二種地址歸集方案。站在交易所的業務邏輯下,無論選哪種方案,都存在大量的業務資金損耗,各家的管理資產策略可能會不同。

為了方便理解,我分別找了Binance14 和OKX3 兩個位址,Binance14 採取了第二種方案,而OKX 應該是採取了第一個方案。但由於二者地址資產體量和交易量都相差懸殊,數據僅供參考。

如圖1,Binance14 地址管理資產總規模近11 萬ETH,作為一個接收位址,歷史Gas 共消耗了1 萬個ETH。而9 月13 日那次較多的歸集,單日消耗Gas 也有388 個以太,歷史上最多一次一天消耗871 個ETH,所以說地址歸集消耗幾百萬是正常業務損耗,別因為大家的不理解,讓負責歸集的同學給丟了飯碗。

如圖2,OKX3 位址管理資產規模較小,但作為接受位址歷史消耗1530 個ETH。從圖可以看出,OKX 的日均消耗都比較均衡,高峰也就一天15 個ETH,可見第一個歸集方案就是花在平常。

至於兩種方案哪個比較好,交易所肯定會算出一套適合自己且最優化的選擇,沒有企業不去做成本優化這件事,Binance 大表哥雖然土豪,但也不至於不做優化。

另外大家得清楚交易所資產歸集管理會涉及成本優化、安全風控、內部審核流程、資金效率等多個問題,成本優化隻是其中一個關鍵因素,但不是絕對。

-成本優化:更真的話,肯定可以做優化,我查了下數據,光是北京時間下午5-6 點就發出了超14 萬筆交易,大家很自然疑惑,平攤到1-2 天不行嗎?監測到Gas 壅塞把程式停掉不行嗎?從工程實現角度當然可以,問題是把時間平攤看,1-2 天,甚至1-2 個月,肯定不會帶來Gas 擁堵問題,也能省錢,但也可能帶來其他風險問題,這和第一種方案也沒差了。

-安全風控:最大考量應該還是安全問題,交易所管理者大量的位址私鑰,權限可能由一套係統控製,工程師歸集資產相當於要取得係統一個高階管理權限(調取私鑰簽署) ,假定它是一套HSM 冷錢包係統,這類係統盡可能少觸網,相較於2 天,開2 個小時的權限顯然可以大幅減少受攻擊面,避免係統被駭客攻擊。所以,之所以要快速歸集,安全風控會是一大核心考量。若花300 ETH 能有效避免30 萬個ETH 被攻擊,應該很合理吧?

-內部控製流程:交易所繫統是一個龐大的群體組織,涉及管理層、執行層,內部為了規範資產使用流程也會有審批流程,幾十萬個EOA 地址私鑰,最高效的自然是老闆最高權限,然後統一簽名,一次處理。若分割成小份,再分批處理就涉及到,管理權分攤,難免會出現部分員工單點爆破風險。若由老闆統一管理,理想方案是集中某個時間點,隻審批一次就好了,若分好多地址,好多批次要歸集審批,把老闆的精力捆在資產歸集的事上,合適嗎?

至於資金效率問題,防止意外突發狀況發生等等都是有可能的。

總之,交易所資產歸集問題,不單單是成本問題,涉及到面非常複雜,回溯Binanc14 歷史會發現,類似高Gas 歸集的情況不是例,那很顯然這是Binance 綜合考慮各方因素得出的一貫的權衡方案。

原文鏈接

聯系郵箱:0xniumao@gmail.com