智能合約安全與審計
搶先交易
搶先交易是觀察某人在公開記憶池中待處理的交易,搶在它之前送出自己的交易,從對方即將做的事中獲利。由於多數區塊鏈會在交易被打包前,把未確認交易廣播到一個公開的等候室,任何人都能預見一個獲利動作、加以複製,並付更高的費用讓出塊者把自己的複製品排在前面。受害者自己的交易接著便在更差的條件下執行,或乾脆失敗。
槓桿在於交易排序。在以太坊上,提議者決定區塊內交易的順序,而最簡單的排序啟發法就是按優先費用。搶先機器人盯著記憶池,發現一筆將撼動價格或領取獎勵的交易,便送出一筆幾乎相同、但小費更高的交易。廣義的搶先有三種形態:替換(用你的動作取代他的)、插入(即三明治,在受害者前後都交易)、壓制(延遲或審查一筆交易)。三者都是最大可提取價值的形式。
由於公開記憶池是根因,防禦之道試圖隱藏意圖或抹去排序優勢。承諾—揭露機制把一個動作拆成隱藏的承諾與稍後的揭露,使承諾當下無物可搶。像 Flashbots 這類私有交易中繼,把交易直接送往建構者,繞過公開記憶池。滑點限制與期限為一筆兌換能洩漏多少價值設下上限。批次拍賣以單一統一價格結清眾多訂單,使批次內的排序無關緊要。沒有一招能徹底消除問題,它們只是縮小攻擊者的優勢。
搶先交易是公開記憶池稅:任何既有利可圖又可見的東西,都能被複製並重排到你前面。加密記憶池與承諾—揭露能縮小它,卻無法抹除它,因為出塊者終究仍掌握排序的決定權。
又称
另见