Transactions
為什麼 txID 生成要考慮簽名?
我一直在閱讀很多關於交易延展性的文章,並註意到實現它的唯一方法是更改交易簽名。
為什麼協議甚至會考慮 SHA256 有效負載中的簽名?協議應該只考慮輸入和輸出,忽略簽名。txID 只能通過改變輸入或輸出來改變,就是這樣。如果有人想更改任何輸入或輸出以更改 txID,他也需要更改簽名。
換句話說,如果您在生成 txID 時不考慮簽名,則交易延展性將是不可能的。
請讓我知道我是否在這裡遺漏了什麼。
如果簽名不是受雜湊保護的交易的一部分,那麼您可能有兩個不同的交易,一個有效的,一個無效的,具有相同的交易 ID。交易 ID 的主要目的是允許就交易是否有效達成一致。因此,從雜湊中排除簽名將使交易 ID 不適合其主要目的。
處理延展性攻擊的一項建議是為了擊敗此類攻擊而擁有第二個事務 ID。此交易 ID 不會覆蓋簽名。但它不適合檢查交易有效性,強制系統中有兩種類型的交易標識符。
我將不得不閱讀 Txn 的延展性,但我確實知道,如果不實際簽署 txn,就無法證明所用公鑰的所有權。
簽署 txn 將始終給出不同的簽名(除非k 值保持不變,這是 2013 年 8 月 Android 錯誤的來源)。Ecdsa 只是驗證 txn 是否使用正確的密鑰進行簽名。輸入和輸出的雜湊是簽名的。所以是的,這不應該改變,但是因為 ECDSA 簽名確實改變了協議,所以只是驗證了簽名。