Subject: Re: [Bitcoin-development] Duplicate transactions vulnerability

From: Gregory Maxwell <[email-masked]>
Date: Thu, 1 Mar 2012 09:27:53 -0500

On Thu, Mar 1, 2012 at 8:09 AM, Ben Reeves <[email-masked]> wrote:
> One more thing to add. The implementation in the reference patch fixes
> the blockchain forking issue however by still allowing spent coinbases
> to be disconnected patched clients are still vulnerable to blockchain
> corruption. While not an immediate issue it would mean
> LoadBlockIndex() would error on restart and could cause problems for
> new clients during the initial blockchain download.

I am not following you here, can you explain what you're thinking?

> Is there a reason not to disallow duplicate coinbases entirely?

Because this would make it impossible for nodes to prune the vaules.
They'd all forever have to keep a set of all the coinbase hashes in
order to perform the test. The height-in-coinbase BIP will make
duplicates effectively impossible to create, which is a much more
clean behavior.