你按下發送加密貨幣交易,卻沒有任何動靜。錢包顯示待處理。區塊瀏覽器顯示你的交易漂浮在未確認的狀態,沒有明確指示何時或是否會完成。
大多數人第一次遇到記憶體池正是在這種輕微恐慌的時刻,而他們找到的建議大多假設他們已經知道什麼是記憶體池。本指南從零開始。
記憶體池(mempool)是記憶體池的簡稱,是每筆區塊鏈交易從你廣播到礦工或驗證者將其寫入區塊之間所處的等候室。它是公共區塊鏈中最不起眼的組件之一,卻也是最關鍵的組件之一。記憶體池決定你支付多少手續費、等待多久,以及在某些網路上,交易機器人是否能在你的訂單執行前看到它並從中獲利。理解它,能將確認延遲從謎團轉變為可解讀的市場信號。
本指南解釋記憶體池實際上是什麼、區塊鏈為何需要等候室、交易如何逐步通過它、手續費市場如何決定誰先被確認、為何沒有單一記憶體池而是數千個略有不同的記憶體池、當佇列溢出時會發生什麼、記憶體池如何成為掠奪性交易機器人的狩獵場、為何Solana採取激進措施完全移除公共記憶體池,以及當你自己的交易卡住時可以採取哪些實用步驟。
記憶體池實際上是什麼
記憶體池是區塊鏈網路上每個完整節點在其工作記憶體中維護的未確認交易資料庫。當你在錢包中簽署交易並點擊發送時,交易不會傳送到某個中央伺服器進行處理,因為沒有這樣的伺服器。相反地,你的錢包將簽署後的交易交給一個節點,該節點開始將其傳播給對等節點,對等節點再傳播給它們的對等節點,直到網路上的大多數節點都擁有一份副本。每個收到交易的節點會執行一系列檢查,如果交易通過,就將其放入本地記憶體池等待。
這個詞本身是記憶體和池的縮寫,而記憶體部分很重要。節點將記憶體池保存在RAM中而不是寫入磁碟,因為速度是關鍵。當礦工組裝候選區塊時,需要按手續費對數千筆待處理交易進行排序,並在不到一秒的時間內選擇最有利可圖的一組。當來自網路其他地方的新區塊到達時,如果該區塊的大部分交易已經存在於節點自己的記憶體池中並經過檢查和準備,節點就能更快地驗證它。
記憶體池是一個暫存區,是混亂、持續的用戶活動流與嚴格、週期性的區塊生產心跳之間的緩衝區。
區塊鏈為何需要等候室
傳統支付處理器在交易到達時立即確認,因為單一公司控制帳本,可以直接寫入條目。公共區塊鏈沒有這樣的權威。數千個獨立節點必須就單一歷史達成共識,而它們以離散步驟達成共識,一次一個區塊。在區塊之間,網路需要一個共享的、非正式的用戶下一步想做什麼的圖景,而記憶體池提供了這一點。
等待期也執行關鍵的安全工作。在節點將交易接納到其記憶體池之前,它會驗證數位簽名是否有效、發送者是否確實控制被花費的資金、交易格式是否正確,以及相同的幣是否沒有被雙重花費。最後一項檢查比聽起來更重要。兩筆衝突的交易(都花費相同的幣)完全有可能同時從不同點進入網路。一些節點先看到一個,另一些先看到另一個。每個節點拒絕第二個到達的衝突交易,而衝突最終在礦工將其中一筆包含在區塊中時解決。記憶體池就是這些競賽舉行和解決的地方。
記憶體池也充當網路的早期預警系統。快速填滿的記憶體池預示著需求激增、恐慌、空投領取窗口或手續費飆升,而這些在確認區塊中出現之前就已顯現。交易者、礦工和錢包手續費估算器都像氣象學家讀取氣壓系統一樣讀取記憶體池。
交易的生命週期,逐步說明
跟隨單筆交易通過管線,能使機制具體化。首先是創建:你的錢包構建交易,指定金額、接收者以及你願意支付的手續費,並用你的私鑰簽署。簽名證明所有權而不洩露金鑰本身。
其次是廣播。錢包將簽署後的交易發送到一個或多個節點,這些節點開始在點對點網路上中繼它。傳播到網路的大部分通常需要幾秒鐘,而這一步不需要信任第一個節點,因為每個後續節點在傳遞之前都會獨立重新驗證交易。
第三是驗證。每個收到交易的節點獨立檢查它。無效交易、錯誤簽名、資金不足、格式錯誤的數據會當場被丟棄,永遠不會到達記憶體池。
第四是等待。交易現在位於網路上數千個記憶體池中,任何運行節點或使用公共記憶體池瀏覽器的人都可以看到。它等待的時間幾乎完全取決於所附手續費相對於其他人手續費的高低。
第五是選擇。工作量證明鏈上的礦工或權益證明鏈上的驗證者通過從其記憶體池中選取待處理交易來組裝候選區塊,幾乎總是按手續費密度排序,以使區塊獲得最大獎勵。
第六是確認。區塊被挖出或提議、傳播並被網路接受。每個節點從其記憶體池中移除該區塊的交易,你的交易現在成為鏈的一部分。每個後續構建在其上的區塊都會增加一次確認,並使逆轉變得指數級困難。
手續費市場如何決定誰先走
區塊空間稀缺且需求波動,因此區塊鏈通過拍賣來配給空間。在比特幣上,手續費以每虛擬字節的聰數來衡量,這是交易數據大小的單位,因此交易的手續費率取決於你支付的金額和交易佔用的空間。在以太坊上,手續費是gas,包括協議燃燒的基本費用和支付給驗證者的優先小費。在兩個系統中,邏輯相同:區塊生產者是利潤最大化者,因此他們首先用支付最高的交易填滿區塊。
這意味著你在佇列中的位置不是固定的。一筆在中午看起來價格有競爭力的交易,到了晚上如果需求激增,可能會變得極度低價。錢包通過讀取當前記憶體池、查看待處理交易提供的價格以及最近區塊的滿載程度來估算手續費,然後建議一個可能在您選擇的時間窗口內確認的費率。這些估計是基於經驗的猜測,而非保證,並且在波動市場中會迅速過時。在安靜的星期日,一筆能在下一個區塊清除的手續費,在清算連鎖反應期間可能會讓你等待數小時,因為其他人的支付意願變了,而你的卻沒變。拍賣從不關閉,並且持續重新定價。
當你支付不足時,大多數網路提供逃生艙口。比特幣支援按手續費替換,這讓你可以用更高手續費重新廣播同一筆交易,取代原始交易。一個相關的技巧是子為父付,即附加一筆高手續費的後續交易,花費卡住交易的輸出,激勵礦工同時確認兩者。以太坊錢包允許你用相同的nonce和更高的gas價格重新提交交易,這會取代待處理版本。知道這些工具的存在,能將卡住的交易從緊急情況轉變為不便。
沒有單一的記憶體池
人們說記憶體池,好像某處存在一個規範的佇列,但現實更混亂且更有趣。每個節點維護自己的記憶體池,沒有兩個是完全相同的。交易在不同時間到達不同節點,節點應用略有不同的接受策略,每個節點管理自己的記憶體限制。我們所說的記憶體池實際上是數千個私有記憶體池的鬆散統計重疊。
實際上,重疊很大,因為大多數節點運營商運行默認設置。典型的比特幣節點將其記憶體池上限設為約300 MB,交易保留最多兩週,並拒絕任何支付低於約每虛擬字節1聰的最低中繼費用的交易。當池超過其大小上限時,節點首先驅逐最低手續費的交易,並提高其最低接受率,這就是為什麼非常便宜的交易在擁堵期間可能完全消失而不僅僅是等待。一旦在所有地方被驅逐,交易實際上被取消,資金只是留在發送者的錢包中未花費。
記憶體池的分佈式特性有一個微妙的後果:待處理狀態不是承諾。在瀏覽器中顯示為待處理的交易僅作為某些節點記憶體中的聲明存在。它可能被驅逐、替換或雙重花費,直到它進入區塊。接受零確認支付的商家會以艱難的方式學到這一課,而這正是51%攻擊在鏈層面利用的機制,攻擊者重寫最近的區塊並將逆轉的交易倒回記憶體池,就好像它們從未被確認過一樣。2025年對門羅幣的重組攻擊正是以這種方式將一百多筆已確認交易推回待處理佇列。
政策、標準性以及節點為何拒絕有效交易
共識規則定義了區塊鏈將在區塊中接受什麼。記憶體池政策定義了單個節點將持有和中繼什麼,而這兩者不是一回事。一筆交易在共識規則下可能完全有效,但仍被大多數記憶體池拒絕,因為它違反了比特幣開發者所謂的標準性:非正式的政策規則,過濾灰塵輸出、過大腳本、荒謬的低手續費以及可能給網路帶來負擔的奇異交易形狀。政策是節點級別的免疫系統,是保持共享佇列可用的第一道防線。
這種區別會產生現實世界的混亂。被公共記憶體池拒絕的交易如果直接到達礦工,仍然可以被挖出,這就是為什麼存在接受非標準交易並直接提交給礦池的服務。這也意味著你通過瀏覽器觀察到的記憶體池反映了該節點的政策,而不是某種普遍真理。兩個瀏覽器可能對你的交易是否待處理有不同意見,僅僅因為它們的節點應用了不同的過濾器。
政策也比共識演變得更快。節點多年來反覆收緊和放寬關於數據銘文、灰塵限制和替換行為的中繼規則,每次變化都在不觸及共識的情況下重塑待處理佇列的樣子。對於用戶來說,實際要點很簡單:如果錢包警告交易是非標準的,問題通常出在交易的構建上,而不是其背後的資金。
記憶體池也有一個較安靜的機構受眾。交易所監控待處理存款以更快記入帳戶,合規團隊在確認前篩選傳入交易,支付處理器通過檢查交易傳播情況以及是否有任何衝突花費在流通來評估零確認轉帳的風險。網路中大多數記憶體池同意的交易比傳播不良的交易更不可能被雙重花費,公司會對這種差異定價。
擁堵、垃圾郵件以及滿記憶體池的感覺
記憶體池擁堵是網路在喘口氣。需求超過區塊空間,佇列增長,及時確認所需的手續費攀升。用戶體驗到的是昂貴的交易和長時間等待。比特幣2017年底的狂熱、2020年的DeFi夏季、NFT鑄造浪潮以及2023年的序數銘文熱潮,都產生了以天計的記憶體池積壓,數十萬筆交易排隊,手續費率一夜之間倍增。在最糟糕的時期,低手續費交易等待超過一週,節點運營商看著他們的記憶體池達到大小限制並開始丟棄最便宜的流量。
擁堵也可以被製造。垃圾郵件攻擊用大量低價值交易淹沒網路,以堵塞佇列並降低其他人的服務質量,這是一種廉價的拒絕服務形式。網路通過最低中繼費用、驅逐政策以及最終通過經濟學來防禦,因為持續的垃圾郵件會讓攻擊者花費真金白銀的手續費。2017年對以太坊測試網路的垃圾郵件攻擊顯示了洪水攻擊對一個手續費壓力較弱的鏈有多有效,並將手續費市場設計推上了研究議程的更高位置。
擁堵也是資訊。膨脹的記憶體池伴隨著上升的手續費,預示著緊急需求,通常圍繞交易所擠兌、清算連鎖反應或重大市場波動。老練的觀察者像債券交易者觀察收益率一樣觀察記憶體池深度,幾家分析公司正是出售這種數據流。
黑暗森林:MEV和池中的觀察者
記憶體池的決定性特徵——完全透明——也是其最大的弱點。每筆待處理交易在執行前都是公開的,這意味著任何人都可以讀取你的意圖並搶先行動。在智能合約鏈上,這催生了整個圍繞最大可提取價值(MEV)的掠奪性產業,即控制交易排序的人可獲得的利潤。
典型的攻擊是三明治攻擊。機器人發現你在去中心化交易所上的大額待處理交換,首先買入相同的代幣以推高價格,讓你的交易以更差的價格執行,然後立即賣出,從你的執行中直接獲利。搶先交易、尾隨交易和清算狙擊遵循相同的原則:看到待處理交易,圍繞它定位,捕捉差價。一位研究人員曾將公共記憶體池描述為黑暗森林,一個任何可見的東西都會被獵捕的地方。研究人員估計,僅以太坊上的MEV提取自2020年以來已達數十億美元。
作為回應而發展起來的防禦產業現在相當龐大。私人交易中繼,如Flashbots Protect,允許用戶直接向區塊構建者提交交易,完全跳過公共記憶體池,使機器人永遠看不到訂單。批量拍賣交易所按單一清算價格結算多筆交易,消除了排序優勢。錢包越來越多地默認通過受保護渠道路由大額交易。這些都沒有消除MEV,但它改變了誰可以被獵捕。經濟學很簡單:隱藏訂單的價值隨著其規模增長,因此大額交易者現在將記憶體池隱私視為傳統基金對待暗池的方式,即基本的操作衛生。移動小額資金的零售用戶面臨的風險要小得多,但通過公共佇列在薄交易對上進行一次大額交換,可能在幾秒鐘內向三明治機器人支付三位數的費用。
Solana的答案:刪除記憶體池
Solana做出了任何主要網路中最激進的設計選擇:它根本沒有公共記憶體池。Solana的Gulf Stream協議不是將待處理交易廣播到整個網路,而是將交易直接轉發給計劃生產下一個區塊的驗證者,稱為領導者。領導者時間表是事先已知的,因此錢包和節點確切知道將流量發送到哪裡。交易從用戶到領導者幾乎沒有公共等待期。
該設計首先服務於速度,並移除了三明治機器人依賴的經典觀察窗口,因為待處理交易從不廣播供公眾檢查。它並沒有消除MEV,而是成熟為一個私人拍賣經濟,搜索者通過Jito等基礎設施支付小費,讓他們的交易捆綁包被領導者有利地放置。教訓具有普遍性:排序在任何區塊鏈上都有價值,移除公共佇列改變了價值被捕獲的地點,而不是它是否存在。
其他網路正在趨向中間路徑。加密記憶體池隱藏交易內容,直到排序被鎖定。以太坊上的提議者-構建者分離將選擇交易的任務與提議區塊的任務分開,將MEV推向更透明的拍賣。2030年的記憶體池很可能看起來與2020年的開放市場截然不同。不會改變的是基本限制:每個區塊鏈的某些組件必須在創建和確認之間持有交易,而能夠觀察或影響該組件的人對所有不能的人擁有權力。
自己讀取記憶體池
你不需要運行節點來觀察佇列。公共記憶體池瀏覽器實時可視化待處理交易、手續費分佈和預計確認時間,它們是回答每個卡住用戶問的兩個問題的最快方式:網路有多忙,以及什麼手續費現在能實際清除?
當你自己的交易卡住時,診斷幾乎總是相同的:你的手續費低於當前費率。你的選擇,按大致偏好順序,是等待擁堵緩解、使用按手續費替換或nonce替換來提高手續費、在支援的地方使用子為父付,或者在比特幣上,如果付款不再重要,只需等待驅逐。你不應該做的是驚慌。資金不會丟失。未確認的交易要麼確認,要麼實際上不再存在,在後一種情況下,幣從未離開你的錢包。
理解瀏覽器實際顯示的內容也有幫助。手續費直方圖顯示每個手續費級別有多少待處理量,這告訴你當前的清算價格在哪裡。預計區塊視圖顯示如果立即生產,哪些交易會填滿接下來的幾個區塊,這告訴你佇列在你前面有多深。而在比特幣瀏覽器上,清除線顯示節點正在積極驅逐交易的手續費率,即市場的有效底部。花十分鐘學習這三個讀數,在第一次手續費飆升時就能回本。
一個值得採用的最終習慣:在交易前檢查記憶體池,而不是之後。花三十秒查看當前手續費率,既能避免在安靜時期多付,也能避免在風暴期間少付。佇列是公開的。很少有人費心去讀它,這正是為什麼讀它的人有優勢。這與網路升級分裂鏈(如我們在硬分叉和軟分叉指南中介紹的)總是產生大量記憶體池戲劇的原因相同,因為分叉兩邊的錢包和節點需要整理哪些待處理交易屬於哪裡。
常見問題
簡單來說,什麼是記憶體池?
記憶體池是區塊鏈交易的等候室。在你發送交易後,它會待在記憶體池中,可見且待處理,直到礦工或驗證者將其包含在區塊中。每個完整節點在記憶體中保留自己的佇列副本。
為什麼我的交易卡在記憶體池中?
幾乎總是因為所附手續費低於其他待處理交易提供的費用。區塊生產者首先選擇支付最高的交易,因此低價交易要麼等待需求下降,要麼被完全驅逐出佇列。
記憶體池中的交易可以取消嗎?
有時可以。在比特幣上,按手續費替換允許你用新版本取代待處理交易,而卡住且被所有記憶體池驅逐的交易實際上被取消。在以太坊上,你可以通過發送具有相同nonce和更高手續費的新交易來取代待處理交易。
整個網路只有一個記憶體池嗎?
不是。每個節點維護自己的記憶體池,內容根據時間、設置和記憶體限制在節點之間略有不同。人們所指的記憶體池是數千個獨立佇列的粗略重疊。
交易可以在記憶體池中停留多久?
在比特幣上,默認節點設置將交易保留最多兩週,但如果池滿且手續費低,驅逐可能更早發生。其他網路有自己的保留和驅逐規則。
記憶體池和MEV之間有什麼聯繫?
公共記憶體池中的待處理交易在執行前是可見的,因此機器人可以讀取它們並圍繞它們進行交易,通過三明治攻擊和搶先交易提取價值。這種可見性是像以太坊這樣的鏈上大多數MEV的原材料。
Solana有記憶體池嗎?
沒有公共的。Solana將交易直接轉發給即將到來的區塊領導者,而不是在網路上廣播,這移除了公共等候室。Solana上的MEV反而通過基礎設施提供商運行的私人捆綁拍賣流動。
如果交易從未確認,資金會丟失嗎?
不會。從未確認的交易最終會從記憶體池中刪除,幣就像從未進行過交易一樣留在發送錢包中。在交易被包含在區塊中之前,不會扣除任何東西。
本文僅供教育目的,不構成財務或投資建議。網路規則、手續費機制和默認節點政策會隨時間變化。詳細資訊截至2026年7月14日準確。
