Lightning-Network
為什麼錨輸出需要強制 nSequence 為 1?
引自*<https://bitcoinops.org/en/topics/anchor-outputs>*:
在撰寫本文時,最新版本的設計為承諾交易添加了兩個輸出——一個用於每個 LN 方——並要求承諾交易中的所有其他輸出的腳本受到
1 OP_CHECKSEQUENCEVERIFY (CSV)
阻止它們被花費的條件的阻礙。至少一個街區。據我了解<https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md#offered-htlc-outputs>,添加
1 OP_CHECKSEQUENCEVERIFY (CSV)
是唯一在輸出腳本中發生變化的東西閃電協議使用的比特幣交易。但為什麼這是必要的?為什麼我們不能只使用 CPFP 而沒有 1 個塊的相對延遲?
因為每一方必須始終只有一個可直接花費的輸出,以避免一方能夠“耗盡”分割。
使用兩個 CPFP-ble 輸出,一方都可以在第一個輸出上創建一個後代交易鏈,以滿足標準的記憶體池限制,然後使用自己的第二個輸出觸發剝離機制。
這樣,HTLC 交易不包含在記憶體池中,也不能用於創建長鏈後代,也不能用作剝離交易。
外部參照: