Thanks, but I totally don't understand what this means and how to do this actually, I never heard about this. So this is so-called [multi-sig] wallet? or?
No... it isn't a multi-sig. It is describing a a two computer (1 online, 1 offline "air-gapped") setup
2. Bring this address into the second wallet, which is connected to the internet (the hot wallet, or the live system). As mentioned by Heisenberg_Hunter, make this a watch only address in the hot wallet. Then you can see at all times the balance on this address.
How to perform this procedure actually?
2. Bring this address into the second wallet, -> How? Commands?
- For Bitcoin Core, you would simply use
importaddress - This will create a "watching-only" copy of the address within the second wallet.
- Other wallets have their own methods for creating watching-only addresses/wallets.
3. On the hot wallet you can now create a transaction, and save it as raw transaction on a USB stick or similar.
3. -> How? This is not [sendtoaddress]?
- Using Bitcoin Core, you would use
createrawtransaction - This creates an "unsigned" transaction, but will include the inputs and outputs for the transaction. You then copy/paste the output from
createrawtransaction into a text document and copy it to USB stick.
- Again, other wallets have their own methods,
Electrum for instance, you simply create a new "send" transaction, but instead of "sign" and/or "broadcast", you click "save". This will allow you to create a text document that contains the raw, unsigned transaction (or you can even create it as a QR Code)
4. Bring the USB stick to your cold storage system, load the transaction into the wallet, and sign it.
4. load the transaction into the wallet, and sign it. -> How? I don't know at all.
- For Bitcoin Core, you would use the
signrawtransaction command. Basically, you copy/paste the output from the "createrawtransaction" command used in step 3. This will give you ANOTHER raw transaction in "hex" format, only this time it is
signed.
NOTE: If your "offline" computer is properly air-gapped, it won't be synced, so you would need to provide the appropriate "output" info. However, you shouldn't need to explicitly provide the private keys as your offline wallet should have the private key for the address you're attempting to sign with.
- For a wallet like Electrum, you use the "Tools -> Load Transaction -> From File" option, then click "Sign"
5. After signature, store it again on USB stick, and bring it to the hot wallet system
5. bring it to the hot wallet system -> How?
Now you
- For Bitcoin Core, it is simply the reverse of Step 3. You copy/paste the
signed raw transaction "hex" output from the
signrawtransaction commmand on offline computer into another text file... and put it onto the USB stick and take that to online computer.
- For Electrum, once you clicked "sign", you can then "save" the transaction and save it as a text file onto the USB stick etc.
6. send the transaction.
6. ?? finally [sendtoaddress]?
- Bitcoin Core uses the
sendrawtransaction command. You copy/paste the
signed raw transaction hex from text file.
- Electrum uses "Tools -> Load Transaction -> From File"... then you click "broadcast"
Not quite... that is using Multi-Sig, which requires partially signing transactions and sending them to a third-party to counter-sign. But you can see examples of the "createrawtransaction" and "signrawtransaction" and "sendrawtransaction" commands. Albeit, very complicated ones, as they require multiple keys to sign etc.
Looks too complicated...
You're right Bitcoin Core is a bit of a nuisance to use in a two computer, air-gapped setup... it wasn't exactly designed for such a use-case... but can be used to achieve it. Easier options exist like
Electrum which have explicit "Save Transaction" and "Import Transaction" features that are designed to facilitate air-gapped setups... or Armory (
https://btcarmory.com/) which
requires your own Bitcoin Core node on the online system but was designed with the whole offline/online setup in mind. NOTE: Armory is an advanced wallet and NOT for beginners.