<blockquote>
  <p>SIGHASH flags allow for the flexible alteration of a transaction.</p>
</blockquote>

<p>Yes, but the SIGHASH types mainly allow for incremental progress towards creating a full/final transaction, such as combining multiple transactions signed with SIGHASH_SINGLE. Once the transaction is fully created, there are certain tweaks that can be done to it that don't invalidate the tx but change the TxID, and these tweaks can be done regardless of how it was signed.</p>

<blockquote>
  <p>What malleability risks do SIGHASH transactions incur by virtue of their usage?</p>
</blockquote>

<p>I think the SIGHASH signing types allow for the alteration of transactions before they are final. Once a transaction is final, the malleability issues persist regardless of how it was signed. In fact, ECDSA signing itself (regardless of which SIGHASH type is used) is non-deterministic, so you could sign the same transaction twice and distribute them, and they would both be valid (but conflicting), but have different TxIDs. </p>

<blockquote>
  <p>Given that there are legitimate usages of SIGHASH, and changing a Tx (and presumably the TxID as well), what is the correct way of using Sighash w.r.t. a TxID and tracking its progress?</p>
</blockquote>

<p>To track a transactions progress, you will probably need some other way to identify the transaction other than the raw TxID (double hash of tx data). i.e. Some number associated with a transaction that is passed around to all who are editing it, or keeping track of the outputs of the transaction.</p>

CC BY-SA 3.0
2015-04-28T21:06:02.867Z
`need some other way to identify the transaction other than the raw TxID` Perhaps you could identify transactions by signature hash?
Nick ODell
CC BY-SA 3.0
2014-12-29T18:05:10.010Z
2014-12-29T18:05:10.010Z
morsecoder
<p>SIGHASH flags allow for the flexible alteration of a transaction.</p>

<p>Given that there are legitimate usages of SIGHASH, and changing a Tx (and presumably the TxID as well), what is the correct way of using Sighash w.r.t. a TxID and tracking its progress?</p>

<p>What malleability risks do SIGHASH transactions incur by virtue of their usage?</p>

<multi-signature><transaction-malleability><sighash>
How is Transaction malleability affected by SIGHASH flags?
makerofthings7
# How is Transaction malleability affected by SIGHASH flags?

(Asked by: username_0 on 2014-03-03)

SIGHASH flags allow for the flexible alteration of a transaction.

Given that there are legitimate usages of SIGHASH, and changing a Tx (and presumably the TxID as well), what is the correct way of using Sighash w.r.t. a TxID and tracking its progress?

What malleability risks do SIGHASH transactions incur by virtue of their usage?

**Tags:** multi-signature, transaction-malleability, sighash


---

## 1 answers

### Answer by username_1 on 2014-12-29. Score: 1

> SIGHASH flags allow for the flexible alteration of a transaction.

Yes, but the SIGHASH types mainly allow for incremental progress towards creating a full/final transaction, such as combining multiple transactions signed with SIGHASH\_SINGLE. Once the transaction is fully created, there are certain tweaks that can be done to it that don't invalidate the tx but change the TxID, and these tweaks can be done regardless of how it was signed.

> What malleability risks do SIGHASH transactions incur by virtue of their usage?

I think the SIGHASH signing types allow for the alteration of transactions before they are final. Once a transaction is final, the malleability issues persist regardless of how it was signed. In fact, ECDSA signing itself (regardless of which SIGHASH type is used) is non-deterministic, so you could sign the same transaction twice and distribute them, and they would both be valid (but conflicting), but have different TxIDs.

> Given that there are legitimate usages of SIGHASH, and changing a Tx (and presumably the TxID as well), what is the correct way of using Sighash w.r.t. a TxID and tracking its progress?

To track a transactions progress, you will probably need some other way to identify the transaction other than the raw TxID (double hash of tx data). i.e. Some number associated with a transaction that is passed around to all who are editing it, or keeping track of the outputs of the transaction.

> **Comments:**
> **username_2**: `need some other way to identify the transaction other than the raw TxID` Perhaps you could identify transactions by signature hash?  

---

