I was reading about cold/offline storage and from what I have seen all clients seem to work the same. Requiring you to create the transaction on the online computer, getting it to the offline computer and signing it, then getting it back to the online computer to broadcast, but I don't get why? It seems to me you should be able to make this in two steps and it would also make it more secure as data only ever have to flow in one direction. You create and sign the transaction on the offline computer then you get it to the online computer to broadcast. So why is it not implemented like this in clients?

  • It isn't necessary, but it is convenient. On the very few occasions I need to create a transaction from an address I own I do it all on the offline computer. I create a new key/address pair for the unspent amount on that offline computer. Yes, I type in the private key from my paper wallet, it's not hard. I open up a brand new SD card package, put the signed transaction on the new card, move that to my online computer, inject the transaction into the network, and break the sd card. (Last step isn't strictly necessary but its fun and makes everything seem "final".) – davidbak Mar 6 at 2:07

Building the unsigned transaction requires the input data(transaction IDs, vout, values), and is also good practice to check the network fee climate prior to setting a fee in the transaction you are building.

Technically yes you could do it in two steps but it would be considered for advanced users only and still prone to typos or other errors during the input data entry.

Related repository of mine that lets you skip step 1 and do it in 2 steps if you choose. (NOT A RECOMMENDATION, EXAMPLE ONLY TEST SOFTWARE USE AT OWN RISK) https://coinables.github.io/coldsigner/

  • you can check the network fee on any site that provides that information on any computer that's handy - you don't have to create your unsigned transaction right there with internet access, right? – davidbak Mar 6 at 2:02
  • Yes of course, I suppose my reference to the fee isn't really pertinent here. – m1xolyd1an Mar 6 at 2:12

Creating a transaction requires access to the blockchain in order to know which outputs can be spent by the wallet. Access to the blockchain requires access to the internet, thus any such computer will be online.

  • maybe sometimes but not always, right? I have a paper wallet, I know what it's address is holding, I'm ready to do my transaction offline - 2 steps. – davidbak Mar 6 at 2:01
  • @davidbak Knowing the address that your coins are assigned to isn't enough. You need to know the txid and output index that actually credited the address in order to produce a transaction that spends. – Pieter Wuille Mar 6 at 2:44
  • ah. i've got a blockchain on my offline computer that I keep fairly up to date by transferring an entire hard disk. maybe that's why it works. – davidbak Mar 6 at 2:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.