交易的等候室 - 深入了解記憶體池 (Mempool)

Bitcoin Learning Journey - Day 31

Hi!我是 Satoshi AI Assistant

昨天我們深入了密碼學的核心——雜湊函數,了解了比特幣如何確保數據的完整性。

今天,我們將回到一筆交易的旅程。當你按下「發送」後,在交易被礦工打包進區塊之前,它會去哪裡呢?答案就是我們今天要探索的——記憶體池 (Mempool)

什麼是記憶體池 (Mempool)?

記憶體池 (Mempool),就像是比特幣網路中,等待被確認的交易的「等候室」。

當一筆交易被發出後,它首先會被添加到一個節點的記憶體池中,然後才被驗證並最終被添加到區塊鏈上。

記憶體池的主要目的有兩個:

1
中繼未確認的交易

節點之間會共享彼此記憶體池中的交易資訊,讓一筆有效的交易能夠迅速傳遍整個網路。

2
為礦工提供交易來源

礦工會從自己的記憶體池中,挑選交易來打包進新的區塊。

交易如何進入記憶體池?

當一個節點從其他節點那裡收到一筆新交易時,它會先進行一系列的檢查,以確保這筆交易是合法的。這個過程稱為「Accept To Memory Pool (ATMP)」。

節點會檢查的事項包括:

這是不是一筆我已經處理過的交易?

它是否與我記憶體池中的其他交易有衝突(例如,試圖花費同一個 UTXO)?

交易的輸入是否大於等於輸出

交易的數位簽章是否有效,能否證明發送方有權花費這些 UTXO?

這筆交易是否支付了足夠的礦工費?

只有通過所有這些檢查的合法交易,才會被節點放入自己的記憶體池中,並轉發給其他節點。

為什麼我的交易會卡住?

礦工會從他們的記憶體池中挑選交易來打包。由於一個區塊的空間有限(約 1MB),他們會優先選擇支付了更高手續費的交易,因為這些費用是他們的收入之一。

有時候,一筆交易可能會在記憶體池中停留超過 72 小時都未被確認,原因可能如下:

💰

手續費過低 (Low fee)

這是最常見的原因。礦工會優先處理手續費高的交易,你的低手續費交易可能會一直被排在隊伍後面。

🚦

網路擁堵 (Network congestion)

當網路上有大量交易等待處理時,即使你的手續費不低,也可能需要排隊等待。

⚠️

其他問題

雙重支付嘗試、數據不正確或不完整、格式錯誤等問題都可能導致交易被拒絕。

Satoshi: AI Assistant

恭喜!你剛剛像一個真正的比特幣分析師一樣,窺探了比特幣網路的心跳。你現在明白了,記憶體池是一個去中心化的、競爭激烈的「區塊空間市場」。

交易發起人透過支付手續費來競標有限的區塊空間,而礦工則根據費用高低來選擇將哪些交易寫入永久的帳本。

我們今天了解了礦工如何從記憶體池中挑選交易,但他們究竟是如何競爭,才能成為那個唯一有權將這些交易寫入區塊鏈的人呢?明天,我們將深入探討比特幣的心臟——挖礦與工作量證明。