Block
如果區塊已經在其記憶體池中,節點是否會驗證區塊附帶的交易?
除了檢查雙花之外,如果一個區塊中有一個交易已經在節點的記憶體池中,理論上它可以跳過它的驗證。它真的發生了,還是節點兩次驗證每個事務?
檢查交易最昂貴的部分,ECDSA 驗證,被記憶體。
零確認交易是不安全的。同樣,使用它們作為基准進行驗證也不安全。看這個例子:
你有一個交易T1,它在記憶體池中花費了交易T的txout
記憶體池中的另一筆交易T2花費了T1的輸出
在 B 座
- 我們有交易T1’ ,它是具有不同輸出的T1的雙花。這是可能的,因為礦工可以直接在塊中包含*T1’*並且它是有效的。
- 我們在 B 中也有T2,但它是無效的。現在基於記憶體池驗證*T2是錯誤的。*我們必須考慮目前塊中所有先前的輸出和輸出。
另請注意,bitcoind 必須驗證不同分叉/鏈上的塊。Mempool 只有最長鏈上的未確認交易