Segregated-Witness

原始塊數據中儲存的見證數據在哪裡

  • November 2, 2020

我可以在BIP-141中看到儲存 merkle 雜湊的位置。而且我認為很明顯,見證數據不會與 TXN 數據內聯流式傳輸。所以我假設見證數據只是簡單地放在原始塊的末尾。

這是否如此明顯以至於不需要在任何地方的 BIP 或 wiki 中指定,還是我只是錯過了提及?

如果您的問題是關於如何在 P2P 協議中將見證數據傳輸到其他對等方,那麼BIP-144是正確的選擇;segwit 規範的 P2P 方面。

簡而言之,見證數據是在每個單獨的交易中的交易輸出數據之後插入的,並在版本號之後加上一個特殊的標記來指示見證數據是否存在。然後,完整的塊由塊頭、交易計數器和所有交易的串聯(包括該見證數據)組成。

請注意,這不是傳輸塊的唯一方式。BIP-152(緊湊塊)發送塊,其中交易被短雜湊替換,預計接收者將已經擁有這些交易(包括他們的見證數據)。

至於如何儲存見證數據:這是由客戶端軟體決定的實現細節,在 BIP 文件中沒有指定。如上所述,Bitcoin Core 使用與 P2P 協議中相同的序列化儲存塊。

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