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

URITypedocumentHashRetrieved
https://raw.githubusercontent.com/bitcoin/bips/7fe0b034ec967b52a5a28276419117326df93263/bip-0030.mediawikitext/plain; charset=utf-8sha256:f127283ca167a54af81c046f72226e2e1707b2e3dc3062ae6ff9ea84082f0f892026-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.