From abc8fefe2fd78c8abbb539dad1cba4787fe202ee Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Mon, 21 Oct 2013 00:51:10 -0400 Subject: Archive Revision as of 02:47, 25 November 2012 https://en.bitcoin.it/w/index.php?title=BIP_0030&oldid=33022 --- bip-0030.mediawiki | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'bip-0030.mediawiki') diff --git a/bip-0030.mediawiki b/bip-0030.mediawiki index bffd6df..888a576 100644 --- a/bip-0030.mediawiki +++ b/bip-0030.mediawiki @@ -1,8 +1,10 @@ +{{bip}} +
   BIP: 30
   Title: Duplicate transactions
   Author: Pieter Wuille 
-  Status: Accepted
+  Status: Final
   Type: Standards Track
   Created: 22-02-2012
 
@@ -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 @@ -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]] -- cgit v1.2.3