mirror of
https://github.com/bitcoin/bips.git
synced 2025-02-22 15:04:46 +01:00
Archive Revision as of 02:47, 25 November 2012
https://en.bitcoin.it/w/index.php?title=BIP_0030&oldid=33022
This commit is contained in:
parent
1aff2c89ea
commit
abc8fefe2f
1 changed files with 9 additions and 4 deletions
|
@ -1,8 +1,10 @@
|
|||
{{bip}}
|
||||
|
||||
<pre>
|
||||
BIP: 30
|
||||
Title: Duplicate transactions
|
||||
Author: Pieter Wuille <pieter.wuille@gmail.com>
|
||||
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]]
|
||||
|
|
Loading…
Add table
Reference in a new issue