記憶池動態
記憶池是每個節點為「已廣播但尚未被納入區塊」的交易所設的候診室。「記憶池動態」研究的是這間候診室隨時間的行為:交易如何進入、被重新排序、被替換、過期,並最終被區塊生產者選走。關鍵在於,並不存在單一的全域記憶池——每個節點各自保有一份,而它們只是大致一致,因為交易在網路上以不同速度傳播,且各節點套用不同的本地政策。
區塊生產者並非以先進先出處理記憶池;他們挑選付給自己最多錢的交易。在以太坊 EIP-1559 模型下,他們賺到的是優先費(小費),因此會以每單位 gas 的有效小費將待處理交易排序,由高到低填滿區塊,直到達到 gas 上限。這使記憶池成為一場持續的費用拍賣:當區塊滿載時,你必須出價勝過他人才能迅速被選中;當區塊空閒時,即使只付一點小費也能成交。
交易一旦送出並非永遠卡死。使用者可用一筆 nonce 相同但費用更高的新交易替換掉待處理的舊交易——在比特幣中稱為費用替換(RBF),在以太坊中則就是加價,多數用戶端要求替換交易至少把費用提高約 10%。節點也會丟棄停留過久、或費用低於其下限的交易,一筆低費交易可能實質上從網路中「過期」而需要重新廣播。由於一個帳戶的交易必須按 nonce 順序執行,一筆卡住的低費交易可能擋住該帳戶之後所有的交易,直到它被替換或被打包為止。
這些動態正是 MEV 的溫床。由於在多數記憶池中,待處理交易在被打包前都是公開可見的,搜尋者會盯著記憶池尋找可獲利的機會,並以更高的小費送出自己的交易以搶先入塊——這正是搶先交易與三明治攻擊背後的機制。這種可見性也是私有訂單流、加密記憶池與直送建構者等做法興起的原因:它們讓使用者得以避免把自己的意圖廣播到一個會被利用的公開競技場。
你的兌換交易以 1 gwei 小費卡住,而區塊需要 8 gwei。你以相同 nonce 重送一筆 12 gwei 小費的交易;節點替換掉舊條目,下一位建構者納入新的那筆。原本那筆現已失效並被悄悄丟棄——它永遠不可能同時被執行,因為兩者共用 nonce 42。
並不存在唯一的規範記憶池——每個節點看到的都不同,而「在記憶池裡」絕不等於「已確認」。唯有被納入已最終化的區塊才算數。