Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: agent13 on December 05, 2013, 12:04:45 AM



Title: Signing transactions off-line with Bitcoin-QT
Post by: agent13 on December 05, 2013, 12:04:45 AM

If a transaction simply contains a list of inputs and outputs and are not tied to tied to specific blocks.. it seems to me that Bitcoin-QT should be able to sign a transaction (and subsequent transactions) without having the updated blockchain. Or, will Bitcoin-QT not spend unconfirmed outputs?

If it could spend unconfirmed outputs, then you should be able to perform a transaction and dump the raw transaction output... burn it to CD and copy the transaction to an on-line Bitcoin-QT installation and re-broadcast it. Could this work?



Title: Re: Signing transactions off-line with Bitcoin-QT
Post by: deepceleron on December 05, 2013, 04:56:06 AM
It is not simply "signing", it is spending valid payments you have previously received.

Bitcoin needs to at least know about how your payment is funded; it must have received the blocks and transactions that sent you money. If another wallet has your addresses or private keys and you are using it, you can create a situation where you already spent the money you are sending, allowing your old-blockchain bitcoin to make a double-spend that will never confirm.

You can send a transaction using Bitcoin offline - when you do reconnect your computer and run bitcoin, it will eventually retransmit the transaction to the network.



Title: Re: Signing transactions off-line with Bitcoin-QT
Post by: agent13 on December 05, 2013, 06:33:13 AM
It is not simply "signing", it is spending valid payments you have previously received.

To clarify - I would only be redeeming outputs that were previously generated on this off-line Bitcoin-QT instance. I would not be redeeming outputs that other third-parties may have sent me, but rather outputs that I have only signed myself. I gain no further information by downloading the blockchain, other then seeing which block my transactions were accepted in.

I suspect Bitcoin-QT won't let me spend unconfirmed outputs though? I know of at least one web-wallet that allows this. I would simply like to use the core-dev client instead, off-line.


Title: Re: Signing transactions off-line with Bitcoin-QT
Post by: Abdussamad on December 05, 2013, 08:31:23 AM
It is not simply "signing", it is spending valid payments you have previously received.

To clarify - I would only be redeeming outputs that were previously generated on this off-line Bitcoin-QT instance. I would not be redeeming outputs that other third-parties may have sent me, but rather outputs that I have only signed myself. I gain no further information by downloading the blockchain, other then seeing which block my transactions were accepted in.

I suspect Bitcoin-QT won't let me spend unconfirmed outputs though? I know of at least one web-wallet that allows this. I would simply like to use the core-dev client instead, off-line.


You can create and sign transactions offline. You will need the txids and vouts of the inputs, the script pub keys and the private keys of the input addresses. IF you have all of this you can craft a raw transaction manually. But you can't do it with the GUI.

https://en.bitcoin.it/wiki/Raw_Transactions


Title: Re: Signing transactions off-line with Bitcoin-QT
Post by: wiggi on December 06, 2013, 04:25:51 PM

Could this work?
Definitely, if your offline Bitcoin-QT knows about the outputs/coins in question at all (i.e. they need to be older than
the offline blockchain is outdated)

No need for raw transaction. Send coins as usual, burn wallet.dat to CD and copy it to an on-line Bitcoin-QT installation.
Bitcoin-QT will rescan and then broadcast the transaction, not immediately but within an hour.