摘要:原標題:Mitigating Miner Extractable Value (MEV) with Gnosis Safe 來源:Medium 作者:Tobias Schubotz 編譯、整理:Chen Zou 礦工可提取價值(MEV)的存在,給智能合約錢包用戶帶來了獨特的挑戰,但它們並非無法防備。 …
原標題:Mitigating Miner Extractable Value (電動汽車) 和 Gnosis 安全
來源:Medium
作者:Tobias Schubotz
編譯、整理:Chen Zou
礦工可提取價值(MEV)的存在,給智能合約錢包用戶帶來了獨特的挑戰,但它們並非無法防備。 MEV 的數量最近一直在大幅上升。本文將介紹多個不同的MEV案例,以及如何用Gnosis Safe 來減少MEV,以提高人們的認識。
MEV是衡量礦工(或驗證者、排序者等)通過在其生產的區塊內任意包括、排除或重新排序交易的能力所能獲得的利潤。
在這一點上,MEV主要是在交易上提取的。然而,在未來,我們期望觀察到更複雜的MEV,比如在定時協議中進行操作或類似的情況。
案例1:”經典”MEV
每當用戶想執行一項交易時,交易數據將提前被簽署,然後廣播到mempool。在那裡,礦工們會提取該交易並將其納入一個區塊,以便執行交易,並在以太坊區塊鏈上繼續運作下去。
mempool是公開的,任何人都可以訪問。礦工們可以根據自己的選擇自由地對交易進行分類。該模式造就了以下這個”經典”的MEV類型。
“搶跑”—— 前置交易(Frontrunning)
礦工已經了解用戶交易意圖,並知道該交易將被執行,於是將一筆交易插入到預期的用戶交易之前,從而牟利。這方面的例子包括借貸協議中發生的清算行為或智能合約漏洞。在這兩個例子中,用戶交易通常會失敗。
後跑(背跑)
在用戶交易之後立即插入一個交易,緊隨該交易之後完成自己的交易。這種情況可能發生在用戶在單一協議上執行大額交易而不是使用DEX聚合器。
三明治攻擊(Sandwiching)
結合搶跑和後跑,將用戶交易夾在中間牟利。這裡的典型例子是具有高滑點的交易。這對於像Safe這樣的多簽名錢包尤其重要,因為在簽名收集時間跨度較大的情況下,需要有較高的滑點容忍度來承受加密市場的價格變化。
比較不同類型的MEV的交易順序
除此之外,還有更強大的內存池瀏覽器和flashbots等輔助工具(後文統一稱為searchers,搜索者),用於尋找更容易受到MEV影響的交易,並最終利用它們牟利。
任何提交到公鏈的交易都容易受到我們所說的”經典”MEV的影響。這包括通過智能合約錢包(如Safe)以及直接通過基於私鑰的賬戶(EOA)觸發的交易。即使是通過私人mempools提交的交易,也有一些MEV的風險,因為有可能出現孤兒區塊,這將使以上那些搜索者能夠檢查以前的私人交易。
通常來說,安全交易比傳統的由EOA(Externally Owned Account 外部賬戶:是指由用戶掌握私鑰的地址(用戶的錢包地址一般為這種類型))提交的交易更容易受到MEV的影響。例如,要實現對EOA交易的三明治攻擊必須通過”捆綁”提交,其中包含原始的用戶交易(如交易),以及攻擊者試圖提取MEV的另外兩個交易。雖然flashbots試圖以”有或無”的方式執行捆綁交易,但並不能保證最終交易能按照該模式執行。理論上,開盤交易可能會被包含在一個無主區塊中,而沒有受害者的起始交易和攻擊者的結束交易。
有了Gnosis Safe,這種”三明治”的起始交易和結束交易可以被捆綁在一個以太坊交易中,使MEV攻擊更加可預測。關於這一點,在隨後的章節中會有更多介紹。
案例2:智能合約錢包的MEV
Gnosis Safe是一個智能合約錢包。每個Safe都有一組簽名者賬戶(”所有者”)和一個閾值。一旦有足夠數量的所有者簽名並達到特定閾值,交易就可以執行。 Safe 支持不同類型的簽名。 Gnosis Safe使用的是鏈外簽名,與需要另一個鏈上交易的審批相比,它們可以實現更好的用戶體驗。另一方面,它們必須通過鏈外服務進行交換。對於Gnosis 保險箱來說,該步驟是通過特定的安全交易服務(代碼)完成的。
Gnosis Safe的設計方式是,只要滿足這個閾值,任何賬戶都可以執行保險箱交易。執行不限於所有者。這是為了讓交易中繼者執行交易,因此實際上在所有其他支持交易中繼的智能合約錢包中也是如此。
這對MEV意味著什麼?
為非所有者啟用執行意味著搜索者不需要等到公共mempool中出現安全交易。相反,他們可以直接查詢我們的公共簽名服務的API,雖然其中還有一部分的工作,因為每個Safe 都必須被監控分開。
一旦搜索者找到一個具有MEV潛力的交易,以及所有需要的簽名以滿足閾值,他們可以自己觸發執行。這只能發生在最後簽名的安全所有者沒有立即執行安全交易的情況下。假設他們確實只是簽署,但沒有執行,該交易有可能被夾在一個單獨的以太坊交易中,這消除了上一節中提到的攻擊者的一些風險。
因此,一個已經收集了所有簽名但尚未執行的安全交易在MEV的影響面前稍顯脆弱。 (請注意:這並不意味著任何人都可以隨便觸發任何安全交易。在上面介紹的情況下,保險箱所有者已經簽署了交易,因此已經授權。在區塊鏈環境中,簽名不能輕易收回。)
如何使用Gnosis Safe時減輕MEV的影響
以下3節闡述了在使用智能合約錢包時,可以採取哪些措施來具體緩解MEV現象。但上面的”經典”MEV的攻擊載體仍然適用。
不要在執行前添加最後的簽名
如果一個安全交易還不應該被立即執行,那麼防止別人這樣做的最簡單的緩解措施就是不要添加最後的簽名。只有當交易真正應該被執行時,最後的所有者才應該添加上簽名。
在Gnosis Safe界面中,默認設置是由最後一個需要的所有者立即執行交易。用戶將不得不主動決定只簽署交易而不執行。
這麼做僅僅可以防止上面的案例2,但不能防止案例1。
使用認證的服務來收集簽名
目前,Gnosis Safe交易的簽名是通過safe-transaction-service交換的。它有一個公共的API,任何人都可以檢索到簽名。為了防止上述案例2的發生,高級用戶或團隊可以託管自己的後台實例來交換簽名。這可以通過VPN或其他認證手段進一步確保安全。
將執行限制在安全的所有者
雖然Safe的核心合同沒有限制哪個賬戶可以執行已簽署的Safe交易,但在Safe v1.3.0中,可以配置交易防護。交易守護可以用來在執行安全交易之前增加額外的檢查。這樣的檢查可以是,調用Safe的`msg.sender`——實際上是各自Safe的所有者,從而防止外部賬戶執行。交易防護需要在保險箱上明確啟用。
雖然前面3個部分只適用於Gnosis Safe的用戶,但下面的部分適用於任何錢包的用戶,用於減輕”經典”MEV的影響。
通過一個私有的mempool提交交易
通過使用私人mempool服務,如Taichi,用戶將不允許搜索者檢測他們在公共mempool中的交易。這可以防止一些MEV場景,但是卻引入了另一個第三方,即mempool運營商。
使用內置MEV保護的dapp/網絡
Eden(以前稱為ArcherDAO)是一個交易網絡,可以保護用戶免受MEV的影響。他們是通過自己充當MEV 提取者的角色,並與網絡原生代幣持有人分享利潤,來避免所謂的MEV 情景。而CowSwap,一個由Gnosis建立的交易所,通過點對點的匹配減少可提取的價值量,並將交易執行委託給專業方,在執行時使用非常嚴格的滑點界限來保護用戶免受MEV的影響。 CowSwap對用Gnosis Safe進行的交易特別有吸引力,因為用戶只承諾一個限價,而不是一個特定的交易路徑(最佳路徑可能隨著簽名的收集而改變),而且他們的系統能確保同一批次/區塊中的所有交易獲得相同的、公平的結算價格。
結論
雖然智能合約錢包一般不太容易受到MEV的影響,但與基於私鑰的賬戶相比,用戶在簽署交易而不立即執行時需要注意其產生的價格波動影響。私人mempool目前似乎是防止經典類型的MEV的合適解決方案,但卻帶來了將以太坊變成許可鏈的嚴重風險,除非以下問題得到解決。
1.礦工如何加入各自的網絡並獲得交易流的權限?如果任何人都可以加入網絡,那麼就變得毫無意義,因為它基本上就是另一個公共mempool。
2.如何監控礦工是否有不當行為?這不是小事,因為例如,加入網絡的礦工可以創建一個區塊(利用MEV),使用不同的coinbase地址,但並沒有連接到改地址,從而作惡。
本文是基於與來自yearn.finance的poolpitako和monoloco的對話而編譯整理。他們目前採用的是讓最後一個簽字人立即通過Tachi執行交易的方案,來避免MEV。他們可能很快就會改成通過交易守衛來強制執行來自於所有者的交易。
本文來自0x新聞Bitpush.News,轉載需註明出處