<p>Yes, you should.</p>

<p>BIP62 is currently not being pursued as a consensus rule on the network.</p>

<p>However, all its rules (including the ones that are only applied to new style transactions according to BIP62, specifically the lower-S rule) - are currently being enforced as a standardness rule since Bitcoin Core 0.11.1 and 0.10.3.</p>

<p>The reason for this is that at the time BIP62 was written, requiring lower-S was not feasible due to the large amount of wallets that were still creating high-S signatures. In recent times, a large fraction of them switched to lower-S, making it viable to just unconditionally apply that rule. If a significant amount of network nodes (and specifically, miners) upgrade to versions that enforce this, wallets that do not enforce lower-S will gradually stop working and need upgrading.</p>

<p>If that process completes and we end up in a state where near-0% of blocks still contain high-S signatures, people may want to propose unconditionally applying it as a consensus rule.</p>

CC BY-SA 3.0
2015-11-02T20:32:30.063Z
are the rules only mandatory when a transaction has version 3? i'm trying to validate the blockchain and some of the version 1 transactions fail the bip62 criteria, so i want to know when i should use them.
mulllhausen
CC BY-SA 3.0
2015-11-02T20:34:54.537Z
Version 3 transactions do not exist. Just read BIP62 as if it said "apply all these rules to all transactions". BIP62 only proposing them on new transactions because at the time it was unreasonable to apply to all of them for reasons explained above.
Pieter Wuille
CC BY-SA 3.0
2015-11-02T20:35:45.490Z
And *in the blockchain* BIP62 does not exist either. It is not a consensus rule. It's only enforced as a standardness rule so far.
Pieter Wuille
CC BY-SA 3.0
2015-11-02T20:40:31.147Z
cool. that's what i originally meant (i should have been more specific). in future how will i know whether to validate the blockchain against bip62. will the transaction version number be the determining factor?
mulllhausen
CC BY-SA 3.0
2015-11-02T20:52:54.380Z
nvm - i found the criteria in bip62 under [block validity](https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#block-validity) :)
mulllhausen
CC BY-SA 3.0
2015-11-02T21:04:28.020Z
As I said, BIP62 is outdated. It's a proposal. It does not describe the actual rules. If something like this ever becomes a consensus rule, it likely will not use new transaction versions, as it is no longer needed (see above).
Pieter Wuille
CC BY-SA 3.0
2015-11-02T21:40:50.860Z
How you will know what to validate? You don't need to. Soft fork consensus changes are backwards compatible. You're connecting to a full node anyway, right, so you won't accept invalid transactions?
Pieter Wuille
CC BY-SA 3.0
2015-11-02T21:54:22.310Z
Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/31028/discussion-between-mulllhausen-and-pieter-wuille).
mulllhausen
CC BY-SA 3.0
2015-11-02T03:03:41.520Z
2015-11-02T03:03:41.520Z
Pieter Wuille
<p><a href="https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki" rel="nofollow">BIP62</a> introduces a number of rules to prevent transaction malleability. However many transactions already in the blockchain fail these tests. Is BIP62 currently being used to filter transactions from entering the blockchain? If not then are there any plans by the core development team to use BIP62 like this?</p>

<bip62>
Should I validate transactions using the rules in BIP62?
mulllhausen
# Should I validate transactions using the rules in BIP62?

(Asked by: username_0 on 2015-11-02)

[BIP62](https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki) introduces a number of rules to prevent transaction malleability. However many transactions already in the blockchain fail these tests. Is BIP62 currently being used to filter transactions from entering the blockchain? If not then are there any plans by the core development team to use BIP62 like this?

**Tags:** bip62


---

## 1 answers

### Answer by username_1 on 2015-11-02. Score: 8 | Accepted answer

Yes, you should.

BIP62 is currently not being pursued as a consensus rule on the network.

However, all its rules (including the ones that are only applied to new style transactions according to BIP62, specifically the lower-S rule) - are currently being enforced as a standardness rule since Bitcoin Core 0.11.1 and 0.10.3.

The reason for this is that at the time BIP62 was written, requiring lower-S was not feasible due to the large amount of wallets that were still creating high-S signatures. In recent times, a large fraction of them switched to lower-S, making it viable to just unconditionally apply that rule. If a significant amount of network nodes (and specifically, miners) upgrade to versions that enforce this, wallets that do not enforce lower-S will gradually stop working and need upgrading.

If that process completes and we end up in a state where near-0% of blocks still contain high-S signatures, people may want to propose unconditionally applying it as a consensus rule.

> **Comments:**
> **username_0**: are the rules only mandatory when a transaction has version 3? i'm trying to validate the blockchain and some of the version 1 transactions fail the bip62 criteria, so i want to know when i should use them.  
> **username_1**: Version 3 transactions do not exist. Just read BIP62 as if it said "apply all these rules to all transactions". BIP62 only proposing them on new transactions because at the time it was unreasonable to apply to all of them for reasons explained above.  
> **username_1**: And *in the blockchain* BIP62 does not exist either. It is not a consensus rule. It's only enforced as a standardness rule so far.  
> **username_0**: cool. that's what i originally meant (i should have been more specific). in future how will i know whether to validate the blockchain against bip62. will the transaction version number be the determining factor?  
> **username_0**: nvm - i found the criteria in bip62 under [block validity](https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#block-validity) :)  
> **username_1**: As I said, BIP62 is outdated. It's a proposal. It does not describe the actual rules. If something like this ever becomes a consensus rule, it likely will not use new transaction versions, as it is no longer needed (see above).  
> **username_1**: How you will know what to validate? You don't need to. Soft fork consensus changes are backwards compatible. You're connecting to a full node anyway, right, so you won't accept invalid transactions?  
> **username_0**: Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/31028/discussion-between-username_0-and-username_1-username_1).  

---

