Signature
比特幣簽名中的低 s 值
在交易簽名中使用s數的“正常”(大於 N/2)值有什麼問題,為什麼我們使用較低的值?是關於 ecdsa 背後的數學嗎?
詳細資訊在BIP 146中:
我們要求 ECDSA 簽名中的 S 值最多是曲線階數除以 2…
…
簽名中的高 S 值可以簡單地替換為 S’ = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 - S。
簽名編碼兩個重要的驗證值
r
和S
. 如果(r, S)
是一個有效的簽名,那麼 也是(r, -S)
,它等價於(r, curver_order -S)
。