Pieter Wuille [ARCHIVE] on Nostr: 📅 Original date posted:2012-02-28 📝 Original message:On Tue, Feb 28, 2012 at ...
📅 Original date posted:2012-02-28
📝 Original message:On Tue, Feb 28, 2012 at 18:12, Brautigam Róbert
<robert.brautigam at netmind.hu> wrote:
>> A simple way to fix this, is adding an extra protocol rule[1]:
>>
>> Do not allow blocks to contain a transaction whose hash is equal to
>> that of a former transaction which has not yet been completely spent.
>
> I don't know whether I understand this correctly, but there should be no
> duplicate transaction hashes at all. So the rule should be: Do not allow
> blocks to contain transaction hashes which are already present in that
> branch.
As explained in the BIP, that would prevent pruning, as it would
require each full node to keep a database with all transaction hashes
ever.
> If by a freak accident a transaction has the same hash as another
> transaction in the chain, shouldn't the transaction be "tweaked" in some
> way to avoid collision (generate a new target address for it or
> something)? In any case this seams very-very unlikely to happen, or am I
> missing something?
It won't happen by accident. Duplicate coinbase transactions are
possible however (by badly written software, or malicious intent).
Transactions that spend duplcate coinbases can be made to have the
same hash as well.
--
Pieter
Published at
2023-06-07 03:09:33Event JSON
{
"id": "6dc9149873a148b4c9b33d0e474db5cb71f8f213525618f94c4b8f311a267fc3",
"pubkey": "5cb21bf5d7f25a9d46879713cbd32433bbc10e40ef813a3c28fe7355f49854d6",
"created_at": 1686107373,
"kind": 1,
"tags": [
[
"e",
"431de1b2053f2297a5c4d8abb946e01d3f305001a64415bafb02369c2320d799",
"",
"root"
],
[
"e",
"3b27c755b2e86210995699797dd23f80d8726125e73699183c8091b8eb454c10",
"",
"reply"
],
[
"p",
"f316581d354ba4c18a184836d437a078a6ac86f3042919126339b57e69906f9c"
]
],
"content": "📅 Original date posted:2012-02-28\n📝 Original message:On Tue, Feb 28, 2012 at 18:12, Brautigam Róbert\n\u003crobert.brautigam at netmind.hu\u003e wrote:\n\u003e\u003e A simple way to fix this, is adding an extra protocol rule[1]:\n\u003e\u003e\n\u003e\u003e Do not allow blocks to contain a transaction whose hash is equal to\n\u003e\u003e that of a former transaction which has not yet been completely spent.\n\u003e\n\u003e I don't know whether I understand this correctly, but there should be no\n\u003e duplicate transaction hashes at all. So the rule should be: Do not allow\n\u003e blocks to contain transaction hashes which are already present in that\n\u003e branch.\n\nAs explained in the BIP, that would prevent pruning, as it would\nrequire each full node to keep a database with all transaction hashes\never.\n\n\u003e If by a freak accident a transaction has the same hash as another\n\u003e transaction in the chain, shouldn't the transaction be \"tweaked\" in some\n\u003e way to avoid collision (generate a new target address for it or\n\u003e something)? In any case this seams very-very unlikely to happen, or am I\n\u003e missing something?\n\nIt won't happen by accident. Duplicate coinbase transactions are\npossible however (by badly written software, or malicious intent).\nTransactions that spend duplcate coinbases can be made to have the\nsame hash as well.\n\n-- \nPieter",
"sig": "2d351bdc8fc974caba8f0000c52ac2a11ee809ac3ec74659c1000fa7ce9719b9cccff1e2207e096fa9c8601f2d89e96c5847eaccf3f7f52aab6121ebe47c8b14"
}