Skip to content

Commit

Permalink
Archive Revision as of 02:47, 25 November 2012
Browse files Browse the repository at this point in the history
  • Loading branch information
petertodd committed Oct 21, 2013
1 parent 1aff2c8 commit abc8fef
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions bip-0030.mediawiki
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{{bip}}

<pre>
BIP: 30
Title: Duplicate transactions
Author: Pieter Wuille <[email protected]>
Status: Accepted
Status: Final
Type: Standards Track
Created: 22-02-2012
</pre>
Expand All @@ -15,9 +17,9 @@ So far, the Bitcoin reference implementation always assumed duplicate transactio

==Specification==
To counter this problem, the following network rule is introduced:
*Blocks are not allowed to contain a transaction whose hash matches that of an earlier transaction in the same chain, unless that earlier transaction was already fully spent before said block.
*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 is to be applied to all blocks whose timestamp is after march 15, 2012, 0:00 UTC (unix timestamp 1331769600).
This rule is to be applied to all blocks whose timestamp is after a point in time that is yet to be decided.

==Rationale==
Whatever solution is used, the following law must be obeyed to guarantee sane behaviour: the set of usable
Expand All @@ -40,8 +42,11 @@ The addition of this rule only makes some previously-valid blocks invalid. This
==Implementation==
A patch for the reference client can be found on https://github.com/sipa/bitcoin/tree/nooverwritetx

This BIP was implemented in Commit [https://github.com/bitcoin/bitcoin/commit/a206b0ea12eb4606b93323268fc81a4f1f952531 Do not allow overwriting unspent transactions (BIP 30)]
There have been additional commits to refine the implementation of this BIP.

==Acknowledgements==
Thanks to Russell O'Connor for finding and demonstrating this problem and helping test the patch, and to Ben Reeves for pointing out a few weaknesses in the implementation.
Thanks to Russell O'Connor for finding and demonstrating this problem, and helping test the patch.

[[Category:Developer]]
[[Category:Technical]]
Expand Down

0 comments on commit abc8fef

Please sign in to comment.