編者按:本文來自閃電HSL(ID:H13116885),作者:黃世亮,Odaily經授權轉載。
閃電HSL(ID:H13116885)
閃電HSL(ID:H13116885)
以太坊網絡上出現了一種特別的套利,讓我想起了2018年末導致BCH和BSV分裂的一個特性升級,CTOR,規範交易排序。別關心“夾交易”套利攻擊在道德上的觀點,我們還是先搞明白這是什麼黑科技吧。針對uniswap這個去中心化交易所的交易,存在如下套利邏輯。拿交易對USDT/ETH來舉例。用戶,即被攻擊者,發了一筆交易tx1,用usdt在uniswap的usdt/eth交易對裡買ETH。假設usdt/eth資金池的初始值為(x,y)。即x個usdt,y個ETH。用戶發起一筆交易tx1,用dx個usdt,換取dy個ETH。請注意,dx是確定的用戶支出的金額,但dy的值在交易被打包前是一個範圍,即滑點導致了一個上下限。攻擊者構造交易tx0,使用dx'個usdt,換取dy'個ETH。然後攻擊者構造交易tx2,使用dy''個ETH,換取dx'個usdt。
攻擊者作為礦池,是有能力將tx0,tx1,tx2,這三筆交易打包進同一個區塊,並且嚴格按照順序tx0,tx1,tx2,來排序打包。1,攻擊者發現用戶的交易tx1,用Usdt買ETH。2,攻擊者先安排交易tx0,將ETH的價格抬高,用dx'個usdt買到dy'個ETH。4,攻擊者再安排tx2成交,賣出dy''ETH,將自己的dx'Usdt成本收回來。而因為2和3兩個步驟均抬高了ETH的價格,所以dy''一定小於dy'。 (dy''-dy'-fee-gas)就是利潤。以上過程攻擊者可以使用智能合約來計算最後的(dy''-dy'-fee-gas)是否大於0,如果是,則執行“打包tx0-tx1-tx2”,否則不執行。可以做到無風險套利。