Source / pinned edition
Duplicate transactions
Source of package btc.consensus · BIP 30
- work
- urn:btc:clir:consensus#BIP30
- number
- BIP 30
- kind
- urn:btc:clir:consensus#other
BIP 30 raw MediaWiki at 7fe0b034ec967b52a5a28276419117326df93263
- edition
- urn:btc:clir:consensus#BIP30_RAW
- language
- en
- officiality
- official
- materialisation
- PINNED_OFFICIAL_BYTES
- life cycle
- —
Publications
| URI | Type | documentHash | Retrieved |
|---|---|---|---|
| https://raw.githubusercontent.com/bitcoin/bips/7fe0b034ec967b52a5a28276419117326df93263/bip-0030.mediawiki | text/plain; charset=utf-8 | sha256:f127283ca167a54af81c046f72226e2e1707b2e3dc3062ae6ff9ea84082f0f89 | 2026-08-31T00:00:00Z |
Fragments — 1
Specification · section · referenced by: 19
en · official · sha256:e0849b78a537fe24b6160bbadb9fb153c830d9f7f12f08108aa94b6d8979483d
==Specification==
To counter this problem, the following network rule is introduced:
*Blocks are not allowed to contain a transaction whose identifier matches that of an earlier, not-fully-spent transaction in the same chain.
This rule initially applied to all blocks whose timestamp is after March 15, 2012, 00:00 UTC (testnet: February 20, 2012 00:00 UTC). It was later extended by Commit [https://github.com/bitcoin/bitcoin/commit/ab91bf39b7c11e9c86bb2043c24f0f377f1cf514 Apply BIP30 checks to all blocks except the two historic violations.] to apply to all blocks except the two historic blocks at heights 91842 and 91880 on the main chain that had to be grandfathered in.Referencing norms: EveryInputComesFromLiveUtxo, EveryInputMustExistInClosedUtxo, InputsMustCoverOutputs, KnownBip30RepeatIsGrandfathered, Output, TransactionIsValidInNarrowSlice, UtxoSnapshotClosure, all_referenced_inputs_are_live_utxo, bip30_repeat_is_grandfathered, historic_bip30_repeat, input_references, input_value_covers_outputs, referenced_output, total_input_satoshis, total_output_satoshis, transaction_candidate, transaction_valid_in_slice, tx_inputs_valid_in_slice, unspent_output
The hash beside the text is the sha256 of its exact bytes. It is the check that the text shown matches the one pinned in the package: a divergence fails the oracle’s static analysis.