Security

廣義三明治攻擊者如何防禦沙門氏菌和李斯特菌?

  • April 8, 2021

最近,一位貿易商通過一份名為沙門氏菌的契約從三明治攻擊者那裡獲取了可觀的利潤。合約修改了標準transfer函式,只將請求金額的一小部分發送給合約的非所有者。

我假設到此時(或在不久的將來),許多其他人已經複製了這一點並部署了類似的合約。

廣義三明治攻擊者有什麼辦法可以防禦這種情況,或者這實際上阻止了廣義三明治攻擊?

廣義三明治攻擊者有什麼辦法可以防禦這種情況,或者這實際上阻止了廣義三明治攻擊?

需要注意的是,這不是兩個零和選項。他們可能無法防禦,但仍然無法阻止三明治。一個原因是,三明治人的收入是否仍然(顯著)多於他們輸給偶爾的食物中毒者。另一個是我們不能假設每個機器人操作員都非常清楚他們的機器人會發生什麼,並且即使他們在技術上得到了rekt,也可能繼續執行它們。

話雖如此,沙門氏菌的工作原理是部署一個“中毒”的代幣,並用它播種 Uniswap 池,然後啟動 txs 作為誘餌。首先,重要的是要注意這種攻擊不能簡單地由任何人發起——我不知道要吸引三明治者必須有多大的交易/收益,但這意味著有足夠的資金來播種池並能夠製作吸引三明治者的大小的交易。(我想我會開始叫三明治伯爵,因為我覺得這很有趣,希望你不介意。)

假設有足夠多的毒池讓 Earls 感到害怕(一個公平的假設,乙太坊有時肯定是一片黑暗的森林,即使對於黑暗森林的居民來說也是如此),應該會有一些低垂的果實。(這在沙門氏菌回購中得到了證明,作者甚至指出伯爵發現了攻擊並進行了調整。)

  1. Earls 的攻擊只針對潛在目標的整個 Uniswap 代幣列表進行攻擊。如果 Earls 將他們的命中限制為已知令牌(按令牌地址過濾,而不是令牌符號!),那麼應該避免所有攻擊,即使 Earls 無法攻擊盡可能多的池
  2. Earls 可以向潛在礦池發送少量測試 tx,看看他們能收回多少,並保留已測試礦池的白名單
  3. Earls 可以驗證他們與之互動的 token 的程式碼,而不是與未驗證的 token 互動

我覺得說 Earls 可以專注於 Sushi 或其他交易所是在作弊,因為在那裡部署沙門氏菌同樣容易(並且可能已經如此),儘管最初的沙門氏菌在 Uniswap 上。

綜上所述,這種攻擊將有未來的迭代。在這種情況下,不可能預測所有可能的攻擊排列。再說一次,在滑點幾乎必須設置得很高的波動池中,夾心也很難防禦。

這些都不意味著對三明治攻擊的認可,三明治攻擊通常會掠奪那些太天真而無法防禦它們的人。在黑暗的森林中,我們似乎可以觀察到,每一條大魚吞下一個小魚,也可能有一條更大的魚在吞食它。

白名單令牌是否算作答案?不確定它是否違反了廣義的領跑者標準。

另一種避免食物中毒的方法是首先在本地分叉上模擬交易。

引用自:https://ethereum.stackexchange.com/questions/96765