BIP 66 strict DER signatures explained through Bitcoin encoding rules, activation and the 2015 fork caused by miners building without full validation.
TL;DR
BIP 66 made strict Distinguished Encoding Rules formatting a consensus requirement for ECDSA signatures checked by Bitcoin Script. A valid encoded signature has a compound sequence, correctly declared lengths and two minimally encoded positive integers for R and S, followed by Bitcoin’s sighash byte. Consensus software must reach the same answer on every platform. BIP 66 used block-version thresholds similar to BIP 34.
BIP 66 strict DER signatures in simple English
BIP 66 strict DER signatures: BIP 66 made strict Distinguished Encoding Rules formatting a consensus requirement for ECDSA signatures checked by Bitcoin Script.
Simple example
A node operator is checking BIP 66 strict DER signatures. Tight encoding removed implementation differences that could cause upgraded and non-upgraded software to disagree about transaction validity.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document that suggests or explains a change to Bitcoin. A BIP number does not mean the idea is active.
- Bitcoin Core:
- Widely used Bitcoin software. It can check blocks and transactions and provide wallet, network and operator tools.
- Consensus:
- The shared rules that Bitcoin or another network uses to decide whether blocks and transactions are valid.
- Node:
- A computer running network software that checks data and talks to other computers on the network.
- ASIC:
- A computer built to do one specialised job. A mining ASIC is designed for a particular proof-of-work algorithm.
What BIP 66 changed
BIP 66 made strict Distinguished Encoding Rules formatting a consensus requirement for ECDSA signatures checked by Bitcoin Script. The cryptographic signature still proves the same key relation. But its byte representation must follow one unambiguous structure. Tight encoding removed implementation differences that could cause upgraded and non-upgraded software to disagree about transaction validity.
Start with the validating node, because the ASIC only hashes the candidate header it receives. Record the node release and the pool component that assembled the block. If those facts are unknown, the operator cannot show which rules were actually applied before electricity was committed to the work.
The strict encoding checks
A valid encoded signature has a compound sequence, correctly declared lengths and two minimally encoded positive integers for R and S, followed by Bitcoin’s sighash byte. Redundant leading zeroes, negative integer encodings and inconsistent lengths are rejected. These structural checks occur before cryptographic verification and do not mean that every well-encoded signature is cryptographically valid.
Treat status dashboards as observations, not as the source of truth. Compare them with an independently operated node and retain the raw deployment or template response. Period boundaries, chain reorganisations and cached pool pages can otherwise make a correct-looking percentage describe the wrong state.
Why determinism matters
Consensus software must reach the same answer on every platform. Depending on a general-purpose cryptography library’s permissive parser allowed behaviour to change between library releases. BIP 66 moved the accepted encoding into Bitcoin’s explicit rules. The broader lesson is that consensus cannot safely delegate ambiguous parsing to software whose compatibility contract is designed for ordinary applications.
Build the failure response before the boundary arrives. Define which rejection messages trigger an alert, who can pause a template source and how failover is prevented from returning miners to the same faulty validation stack. A second hostname is not independent when both endpoints share one node.
How activation worked
BIP 66 used block-version thresholds similar to BIP 34. Once enough recent blocks advertised version three, upgraded nodes began rejecting older-version blocks and enforcing strict signatures. Signalling was intended to show readiness. But it could not prove that every signalling miner actually validated its parent or transactions. That gap became operationally important after activation.
Separate readiness, signalling and enforcement in the operating log. Readiness is a claim about software and process, signalling is data carried by blocks, and enforcement is a validation result. Combining them into a single supported or unsupported label hides the point at which revenue is actually at risk.
The July 2015 chain split
On 4 July 2015, a miner produced a block invalid under BIP 66. Several miners performing simplified payment verification mining extended it without fully validating the parent, creating an invalid branch before the valid chain overtook it. The event show that substantial signalled hashrate can still lose rewards when template infrastructure trusts headers instead of validating the chain.
Map responsibility across the full path: validating node, template server, pool protocol, proxy, firmware and ASIC. For each layer, state what it can alter and what it merely relays. This prevents a version-bit setting in firmware from being mistaken for complete consensus-rule support. Relate that responsibility map to the pool and job-control boundary in our Stratum V2 guide.
The lesson for mining pools
A pool must validate every parent block with a fully enforcing node before building new work. Fast propagation techniques can reduce latency but cannot replace consensus validation. Failover must not point to the same unvalidated feed. Monitor invalid-parent rejection, tip disagreement and proposal results, and treat any optimisation that begins hashing before validation as an explicit revenue and network risk.
Test the primary and failover paths with the same checks. Compare chain tip, chainwork, deployment state, required rules and template age, then save the result with a timestamp. The process should be repeatable by another operator without relying on an undocumented pool conversation.
Modern verification checklist
Confirm that production nodes use supported cryptographic code and enforce all active rules. Test malformed DER cases on regtest, then verify that pool software never converts a rejected parent into work. Retain getblocktemplate and submitblock results around upgrades. The historical fork should be used as a control scenario in incident exercises, not merely remembered as an old software bug.
Turn the conclusion into a business decision. State which chain and settlement venues the operation intends to serve, the maximum acceptable stale-block exposure and the point at which mining pauses. This connects protocol evidence to electricity cost, pool revenue and payout finality.
Operator decision record
A concise decision record for BIP 66 strict DER signatures should name the source documents, their dates, the node release tested, the responsible pool or template provider and the exact trigger for action. Include screenshots or machine-readable output for the deployment state. But keep the raw node response as the stronger evidence.
State whether a change affects policy, block construction or consensus validity, because those layers have different failure costs.
Run the check on every production and failover path. Confirm that monitoring alerts on stale templates, unexpected chain tips, rejected proposals and a rise in stale shares. Keep rollback instructions for node and pool configuration. But do not roll back across an active consensus boundary without understanding the rules the older release enforces.
If the evidence conflicts, pause the affected path and investigate before committing more electricity to uncertain work.
For related background, read our plain-English BIP-110 guide and technical BIP-110 review. Those articles use a modern proposal to show why signalling, activation, template construction and accepted chain history must be examined separately.
Conclusion
Bip 66 strict der signatures is best understood as a defined interaction between validating software, mining infrastructure and economic acceptance. The safest operator does not infer consensus from a dashboard percentage or a pool slogan. They verify the rule source, the activation boundary, the template fields and the chain their payouts ultimately settle on.
That discipline reduces the chance of hashing an invalid or commercially unwanted block.
Frequently asked questions
What is the main point of BIP 66 strict DER signatures?
BIP 66 strict DER signatures: BIP 66 made strict Distinguished Encoding Rules formatting a consensus requirement for ECDSA signatures checked by Bitcoin Script.
For BIP 66 strict DER signatures, what should a beginner know about what BIP 66 changed?
BIP 66 made strict Distinguished Encoding Rules formatting a consensus requirement for ECDSA signatures checked by Bitcoin Script.
For BIP 66 strict DER signatures, what should a beginner know about the strict encoding checks?
A valid encoded signature has a compound sequence, correctly declared lengths and two minimally encoded positive integers for R and S, followed by Bitcoin’s sighash byte.
For BIP 66 strict DER signatures, why determinism matters?
Consensus software must reach the same answer on every platform. Depending on a general-purpose cryptography library’s permissive parser allowed behaviour to change between library releases.
Primary sources
Primary specifications are living technical records. Check their current status and changelog before using this article for a production activation decision.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.