I have recently been brought aware of the fact that bitcoin transactions can be signed offline. I know they still have to touch the network somewhere to propagate throughout it.
What exactly are you doing when you "sign" the transaction? I assume it has something to do with the private key that doesn't reveal the private key. A sort of non-technical explanation would be great. Just trying to wrap my wits around how it is secure to do this type of thing.
Explaining an asynchronous digital signature algorithm such as ECDSA (Elliptic Curve Digital Signature Algorithm) in a non-technical way isn't going to be easy.
To a certain extent, you are going to just have to accept that it works.
With asynchronous digital signature algorithms, there is a private key (that should never be shared with anyone) and a public key (that needs to be shared with anyone that will verify the signature). Using the private key, it is possible to calculate a value dependent on the data in the message that is being signed. This value has a special attribute in that anyone with the public key can verify that the value was calculated with the associated private key. As long as the signature is calculated properly, it is not possible to figure out what the private key is from the available information (public key, signature value, and message). It is only possible to validate that the correct private key was used to create the signature value.
When "signing a transaction" in bitcoin, you are using the private key that is associated with the bitcoin address (the bitcoin address is a hash of the public key) to calculate this signature value. Then the signature value is included in the transaction in the appropriate field where all other nodes expect to see it. The signature provides proof to the network that you have the authorization to re-assign the value that you are using in the transaction. The bitcoin address was already made public when the transaction was sent to you. Therefore, the entire network can validate that the signature value that you provide was calculated with the private key that is associated with your bitcoin address. However, as long as the signature is calculated properly, it is not possible for anybody to calculate what the private key is.
This allows you to sign the transaction on an offline computer with the private key. Then the transaction (with the signature value embedded in it in the correct place) can be transported to an online computer to be broadcast to the bitcoin network.