Segregated-Witness

bip143 見證格式

  • June 17, 2021

在 bip143 中定義了一個見證簽名。在第一個例子中,有一個證人被打破

witness    00
              02 47304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee01 21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357

這種格式似乎沒有在本文件的任何地方定義?我的問題是具體的

  1. 什麼是整個第二部分“21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357”
  2. 第一部分是簽名,但是前面和結尾的額外字節是什麼,特別是 0x47 和 0x01
  3. 最重要的是簽名太長了?!它是70個字節,而不是64“304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee”我能夠將這個例子私鑰,公鑰和sighash和簽名和驗證,所以我知道他們是很好的,除非他們沒有使用SECP256k1但不會出現在任何地方指定?

非常感謝您提前!!

這種格式似乎沒有在本文件的任何地方定義?

格式遵循標準的比特幣腳本。見證堆棧和傳統比特幣腳本之間的主要區別在於,不是通過腳本將東西推送到堆棧,而是提供堆棧。所以所有的編碼就像是一個比特幣腳本。

什麼是整個第二部分“21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357”

那是公鑰,前面加上它的長度。

第一部分是簽名,但是前面和結尾的額外字節是什麼,特別是 0x47 和 0x01

0x47是簽名的長度,包括末尾的額外字節

0x01是比特幣特定的字節,稱為 sighash 類型。這是一個列舉,指示哪些數據需要包含在對簽名進行雜湊處理的消息中,也就是 sighash。

最重要的是簽名太長了?!它是 70 字節而不是 64 字節。

不,這個簽名是DER 編碼的,所以最終會有額外的字節來指示類型和長度。

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