forked from bitcoin/bips
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Archive Revision as of 02:47, 25 November 2012
- Loading branch information
Showing
1 changed file
with
9 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> | ||
|
@@ -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]] | ||
|