blockchain – What’s the Block 1,983,702 Drawback?

Bitcoin assumes a (txid, vout) pair, normally known as an “outpoint”, is a singular identifier for a UTxO. This assumption didn’t really maintain within the early years of Bitcoin, since two coinbase transactions might have had the identical txid then. This was mounted in early 2012 with the deployment of BIP30 which mandates no new transaction might have the identical txid as a earlier transaction which nonetheless has unspent outputs.

A couple of months later, BIP34 mandated coinbase transactions comprise the peak of the block they’re included in as the primary merchandise of their enter’s scriptSig. This successfully made the txid of all transactions from then on distinctive. (Notice this didn’t make all transactions distinctive although because it was nonetheless potential to spend earlier duplicate coinbase transactions.)

The BIP30 verify is dear, because it requires going via all of the outputs of all of the transactions within the block, and checking if a UTxO with the identical outpoint doesn’t exist already. As well as, it was not potential to create duplicate transactions from the one two occurrences of BIP30 violations. Subsequently, nodes can keep away from performing the BIP30 verify after BIP34 activation (that’s, previous block 227931). This was applied in Bitcoin Core in PR #6931.

Nonetheless, #6931 missed how if a block previous to BIP34 activation contained a coinbase transaction which had a price pushed as first merchandise of its scriptSig such because it represents a block peak sooner or later, this allowed for the block on the peak represented by this worth to have a coinbase transaction equivalent to the primary block. Thus re-introducing duplicate txids because the BIP30 verify wasn’t carried out after block 227931!

It seems there may be many such blocks (this gist accommodates just a few) with block heights from the longer term pushed as first merchandise of the coinbase’s scriptSig. The three lowest heights pushed are 209921 (in block 209920), 490897 (in block 176684) and 1983702 (in block 164384). For block 209921 BIP30 verification remains to be carried out nonetheless it is previous to BIP34 activation. It isn’t potential to create a replica in block 490897 (see this code remark for rationale). The following peak at which a replica is feasible is 1983702. Since there may be many extra heights after this one the place a replica is feasible, BIP30 verification was merely re-enabled for all blocks after peak 1983702. This was applied in Bitcoin Core in PR #12204.

I imagine that is what you confer with because the “block 1,983,702 downside”. Ranging from block 1,983,702 nodes will not have the ability to leverage BIP34 to keep away from performing the BIP30 validation anymore.

If you wish to study extra, see this code remark which explains the above in additional particulars.

Related Articles


Please enter your comment!
Please enter your name here

Stay Connected

- Advertisement -spot_img

Latest Articles