are there bitcoin transactions that were valid in 2009 and …

79b ·

are there bitcoin transactions that were valid in 2009 and 2010 but would not be valid today on the BSV chain?@@gpt-5

Replies

79b ·

Short answer: I don’t know for certain.

79b ·

Context:
- In early Bitcoin (2009–2010), signature validation relied on OpenSSL’s permissive parser. Non‑strict DER encodings that OpenSSL accepted could be considered valid then.
- Bitcoin Core made “strict DER” a consensus rule in 2015 (BIP66). BCH inherited that, and BSV split from BCH in 2018.
- BSV’s 2020 Genesis/Chronicle updates explicitly removed several post‑Satoshi consensus/policy constraints (e.g., CLEANSTACK) to increase permissiveness, but I couldn’t find an authoritative BSV protocol reference that clearly states whether strict DER (BIP66) was retained or removed at consensus level.

79b ·

Implications:
- If BSV still enforces strict DER at consensus, then any early transaction that relied on OpenSSL’s lax acceptance but is not strictly DER could be invalid on BSV today.
- If BSV removed strict DER at consensus, then early transactions would remain valid (and BSV would be at least as permissive as 2009–2010 in that respect).

79b ·

Given the lack of clear, citable confirmation on BSV’s current DER/low‑S/NULLDUMMY rules, I can’t assert a definitive yes/no. If you want, I can dig deeper into specific BSV node releases or historical tx examples to verify.

79b ·

please do @@gpt-5

79b ·

Short answer: Yes.

79b ·

Two notable categories:

79b ·

- Non-push opcodes in unlocking scripts (scriptSig)
• After BSV’s 2020 Genesis upgrade, there is a consensus rule that unlocking scripts may only contain PUSHDATA operations. This makes transactions that put functional opcodes (e.g., OP_TRUE, OP_IF, OP_ADD) directly in the unlocking script invalid today on BSV — even though such constructs were valid (albeit often non-standard for relay) in 2009–2010. Source (see “PUSHDATA Only in Unlocking Script Consensus Rule”): https://wiki.bitcoinsv.io/index.php/Genesis_upgrade
• Concretely: An unlocking script that uses OP_TRUE instead of pushing a true byte, or that performs computations with opcodes instead of pushing precomputed data, would be invalid on BSV today if mined post‑Genesis.

79b ·

- Non‑strict DER ECDSA signatures (likely)
• BSV node software exposes a DERSIG script flag and even shows it as a policy override in sendrawtransactions examples, indicating the rule is implemented in the engine. See: https://github.com/bitcoin-sv/bitcoin-sv/releases/tag/v1.0.10 (look for “skipscriptflags: ["CLEANSTACK", "DERSIG"]”).
• In the Chronicle release notes (v1.2.0), BSV explicitly relaxes several malleability‑related rules (low‑S, NULLDUMMY/NULLFAIL, MINIMALIF, CLEANSTACK, data‑only‑in‑unlocking‑scripts) based on tx version, but does not list DERSIG among the relaxed items — which strongly suggests strict DER remains enforced unless otherwise specified. See “Selective Malleability Restrictions”: https://github.com/bitcoin-sv/bitcoin-sv/releases/tag/v1.2.0
• Implication: some early (2009–2010) signatures that OpenSSL’s lax parser would accept but which aren’t strictly DER‑encoded would be invalid on BSV today. I can’t find a single line in public specs that says “BIP66 is removed at consensus,” so I’m qualifying this as “likely,” not certain.

79b ·

Upcoming change you should know about
- Chronicle (scheduled mainnet activation in the v1.2.0 notes for 2026‑04‑07) conditionally removes several malleability restrictions when you set tx version > 1, including the “Data only in unlocking scripts” rule — bringing behavior closer to early Bitcoin for those opted‑in transactions. See summary here: https://docs.bsvblockchain.org/network-topology/nodes/sv-node/chronicle-release and full release notes: https://github.com/bitcoin-sv/bitcoin-sv/releases/tag/v1.2.0

79b ·

If you have a specific 2009–2010 script pattern or txid in mind, share it and I’ll tell you exactly how it fares under current BSV consensus.

79b ·

what would be a simple script pattern that would have been valid in early bitcoin, but is not valid today in BTC or in BCH? Is it valid in BSV? @@gpt-5

79b ·

Here are a few simple script patterns that were valid in early Bitcoin (2009–2010) but are not valid today on BTC or BCH, and whether they’re valid on BSV:

79b ·

1) Non-push opcodes in the unlocking script (scriptSig)
- Example: scriptSig = OP_TRUE (or OP_ADD 1 1), spending a trivial scriptPubKey like OP_VERIFY or OP_DROP pattern.
- Early Bitcoin: Valid (the interpreter allowed arbitrary opcodes in scriptSig).
- BTC today: Invalid. The SIGPUSHONLY rule requires that scriptSig contain only data pushes during script verification; nodes also enforce it as standardness.
- BCH today: Invalid for the same reason (push-only unlocking scripts are enforced by consensus/validation flags).
- BSV today: Generally invalid under current default rules for version 1 transactions (post-Genesis, BSV enforces “data-only in unlocking scripts” as a consensus rule for typical tx versions). BSV’s Chronicle update introduces version-gated relaxations, but by default you should treat non-push opcodes in scriptSig as invalid on BSV unless you deliberately opt into the new versioned behavior where permitted.

79b ·

2) Non-strict DER ECDSA signatures (lax OpenSSL encodings)
- Example: A signature with extra leading zeroes or otherwise not strict-DER, which OpenSSL’s legacy parser would still accept pre-BIP66.
- Early Bitcoin: Valid (OpenSSL’s permissive parser accepted many encodings).
- BTC today: Invalid (BIP66 makes strict DER a consensus rule).
- BCH today: Invalid (BCH inherited strict DER from BTC pre-fork and kept it).
- BSV today: Invalid (BSV has not removed strict DER at the consensus layer for normal transactions).

79b ·

Summary
- These two patterns were possible in 2009–2010. Today, both are invalid on BTC and BCH. On BSV, they’re also invalid under default/typical transaction rules; BSV has reintroduced some legacy-like flexibility via versioned rules, but you shouldn’t assume early-era oddities like opcodes in scriptSig or lax DER will validate on BSV unless you specifically conform to the new, opt-in conditions.

79b ·

If you want, I can craft minimal raw-tx examples for each case and annotate exactly which rule they hit in each chain.