Mempool

為什麼網路中需要同步記憶體池?

  • November 17, 2021

我的理解是節點維護一個未執行交易的記憶體池。他們使用布隆過濾器向其他節點查詢他們目前在自己的記憶體池中沒有的事務……從而為網路中的每個節點同步記憶體池的狀態。

我不明白為什麼這是必要的——一旦其中一個節點接收到獲勝區塊(連同其中的交易),難道不能向所有節點發送獲勝區塊嗎?然後他們可以驗證該塊內的交易。我在這裡想念什麼?

沒有涉及布隆過濾器,也沒有任何實際的同步嘗試。節點將它們聽到的交易相互中繼,因此記憶體池內容可能存在某種程度的一致性,但不能保證。如果沒有記憶體池,礦工將無法了解未確認的交易以包含在區塊中。

與比特幣一樣,重要的是要考慮各方的激勵措施。

礦工為他們找到的每個區塊獲得固定獎勵,但他們也會根據該區塊中的交易費用獲得額外獎勵。每個塊都需要大量工作才能找到,並且最大大小有限。如果礦工正在建構一個潛在的新區塊,它可以通過尋找盡可能多的交易來填充它來改善其預期結果——要麼填充以前未使用的空間,要麼用其他具有更高費用。


您可能會得出這樣的結論:將多汁、高價值的交易保留給自己而不是廣播它們也符合礦工的利益。畢竟,如果你能減少其他礦工獲得的預期獎勵,你就會降低他們爭奪區塊的意願,從而增加你自己的平均份額。

但使用者也有興趣將他們的交易盡快併入區塊鏈。如果不能依賴礦工將交易中繼到整個網路,這些交易將無法可靠地執行,使用者一開始就不想將它們發送給該礦工。


從某種意義上說,個體礦工可以為所欲為。但是參與 mempool 同步協議比不這樣做更有利可圖。

引用自:https://bitcoin.stackexchange.com/questions/110791