Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: 2_Thumbs_Up on November 27, 2011, 01:24:26 PM



Title: Can you put a deadline on a transaction?
Post by: 2_Thumbs_Up on November 27, 2011, 01:24:26 PM
Can you say something like "this transaction becomes void at block X" so if it's not put in a block before then it becomes useless?


Title: Re: Can you put a deadline on a transaction?
Post by: JA37 on November 27, 2011, 01:29:38 PM
I've been told that there's nothing in the protocol that prevents it but that it's currently not possible in the current client.


Title: Re: Can you put a deadline on a transaction?
Post by: netrin on November 27, 2011, 01:59:52 PM
nLockTime:
https://en.bitcoin.it/wiki/Contracts#Example_1%3a_Providing_a_deposit


Title: Re: Can you put a deadline on a transaction?
Post by: theymos on November 27, 2011, 06:39:56 PM
nLockTime:
https://en.bitcoin.it/wiki/Contracts#Example_1%3a_Providing_a_deposit

That's the opposite. A transaction starts out invalid and then becomes valid.

You can't make a valid transaction become invalid in the current protocol.


Title: Re: Can you put a deadline on a transaction?
Post by: Gavin Andresen on November 27, 2011, 07:02:13 PM
Can you say something like "this transaction becomes void at block X" so if it's not put in a block before then it becomes useless?

I give you a transaction that sends you 11 bitcoins... but I tell you "you better put that in the blockchain in the next 120 blocks, or I'll broadcast another transaction that sends the inputs somewhere else so the transaction to you will be seen as a double-spend."

I'd need a bitcoin client that let me do that, and you'd need one that could take a transaction in some format and then let you decide whether or not to broadcast it for inclusion in the block chain, or told you "sorry, too late, inputs already spent", but that all should work today.


Title: Re: Can you put a deadline on a transaction?
Post by: 2_Thumbs_Up on November 27, 2011, 07:51:01 PM
I was thinking about something more like this. I specify a block number (say 155100) and then sign a transaction with my private key. If I choose not to broadcast this the transaction wouldn't be accepted in a block after block 155100. If a miner tries, the rest of them will refuse his block.