本文 Hash(SHA 1):b366289db9b21c3e9b6668c274e4a179be57a463
編號:鏈源 Security Knowledge No.008
在過去幾年中,區塊鏈經濟經歷了指數級的成長,尤其是 2022 年 DeFi 生態系統的鎖定價值達到高峰 3000 億美元。 Web3發展到現在也已經出現了形形色色的攻擊方法和邏輯安全漏洞,從 2017 年開始,最大可提取值(MEV)就常年佔據 ETH 鏈損失金額的攻擊方法前列。鏈源安全團隊對 MEV 的基本原理和防護手法做了相關的分析和梳理,希望能幫助讀者提升保護自身資產安全的能力。
MEV 基本原理
MEV,全名為Maximum Extractable Value(最大可提取價值),在以太坊的POW 時代又被稱為Miner Extractable Value(礦工可提取價值),在大量的區塊鏈轉為POS 之後更名為最大可提取價值,因為區塊生產者不再是唯一決定交易排序的角色(目前有這兩種權限的角色是礦工和驗證者,之前只有礦工)。
MEV 是指驗證者或排序器等參與者,透過在他們生產的區塊內,對交易進行選擇性操作(包含交易、排序交易、重排序交易)所獲得的利潤的測量。
·驗證者:負責驗證交易和生產區塊的參與者;
·排序器:負責決定交易順序的參與者;
·包含交易:選擇哪些交易會被包含在區塊中;
·排除交易:選擇哪些交易不會被包含在區塊中;
·重排序交易:決定交易在區塊中的順序;
目前使用MEV 的駭客主要針對的是那些獲得了空投快照資格、質押代幣即將解除鎖定的錢包地址,駭客發起這類攻擊的前提是需要拿到錢包私鑰,然後開啟動態Gas 監控,等待用戶的代幣或Gas 費到帳後在同一區塊或相鄰區塊內發送一筆提取的交易,也就是搶跑交易,這類作為監控的機器人我們稱為Sweeper 機器人。
防護手法(以 ETH 為例)
首先這類防護有兩種思路,由於是要和駭客競爭搶跑的速度,所以說第一種就是提高 Gas price 和交易排序的 Nonce。
因為以太坊的交易手續費=Gas (數量) * Gas Price (單價),每個以太坊區塊的Gas Limit 容量是固定的,那麼誰的Gas Price 更高,誰的交易就優先被打包進區區塊確認,另外就是以太坊中的nonce 代表著交易次數,這個概念要結合以太坊本身是基於帳戶的,所以每一個不同的帳戶維護著它們各自的nonce,而以太坊每個帳戶的每筆交易都會有一個唯一的nonce,這既可以防止重播攻擊(同一個交易被多次處理),又可以讓EVM 虛擬機來明確交易的順序(比如說某筆交易的nonce 是5 ,那麼在這筆在交易處理之前,帳戶中nonce 為4 的交易必須已被處理)
第二種想法就是連線確認速度更快,交易混淆度更高的節點
而更換連接節點的話在這裡首先推薦的是TAICHI 網路節點,這個網路是基於ETH、Solana 等區塊鏈的隱私安全解決方案,它透過引入一系列中繼節點來實現交易的混淆和隱私保護,這些節點負責接收用戶的交易請求,並將之與其他交易混合,以隱藏交易的來源和目的。
·中繼節點:這些節點是 TAICHI 網路的核心,它們負責接收、混合和轉發交易;
·交易混合:透過將多個交易混合在一起,中繼節點能夠有效地隱藏單一交易的來源和目的;
·隱私保護:這種方法能夠有效地防止鏈上資料分析和跟踪,保護用戶的隱私;
Sweeper 的工作方式是監控公共記憶體池中的交易記錄來實現搶先交易,但是TAICHI 節點允許我們將簽署的交易直接提交給礦工,而無需透過公共記憶體池進行廣播,這意味著Sweeper 很大機率是監控不到的,也就有了搶跑Sweeper 的可能性(公共記憶體池指的是那些已經廣播但尚未被打包進區塊的交易的集合)。
第二個推薦的節點是FlashProtect,FlashProtect 是FlashBots 組織提供的以太坊系統中MEV 問題的解決方案,它的工作原理是將用戶的交易打包後透過Flashbots 直接發送給礦工,而不是透過公共記憶體池,來防止惡意礦工和機器人在公共內存池中發現和利用這些交易來使用MEV 提取資金,它的缺點是交易速度很慢,因為使用的是Flashbots 內存池,其中的驗證者比公共內存池少得多。
結語
總的來說各類防護手法也是為了維護去中心化交易的排序過程,確保智能合約以公平的方式處理交易,但最根本的解決方法一定是要在礦工和驗證者角度來作出調整。
鏈源科技是一家專注於區塊鏈安全的公司。我們的核心工作包括區塊鏈安全研究、鏈上資料分析,以及資產和合約漏洞救援,已成功為個人和機構追回多起被盜數位資產。同時,我們致力於為產業機構提供專案安全分析報告、鏈上溯源和技術諮詢/支援服務。
感謝各位的閱讀,我們將持續專注分享區塊鏈安全內容。