Is offline Bitcoin transaction signing safe?

0

How can offline transaction signing ever be safe? I'm relativly new to bitcoin and this is one part that I cannot understand.

Lets say I create a transaction at my watching-only wallet. Then I sign it on my offline wallet. That means I just "toggle something"/"add some data that says signed" when I'm signing my transaction at the offline wallet.

Isn't that easily hackable so that everybody can easily sign transactions without knowing the private-key? I mean the watching only wallet has no clue of the private key so there must be some information that is != private-key in the data that comes back from the offline wallet.

Even if I sign it at the online-wallet somebody could just change the sourcecode of the client that he does not need the private-key to sign something.

Ini

Posted 2017-06-23T01:37:42.590

Reputation: 45

Answers

2

Lets say I create a transaction at my watching-only wallet. Then I sign it on my offline wallet. That means I just "toggle something"/"add some data that says signed" when I'm signing my transaction at the offline wallet.

That is not how Bitcoin or digital signatures work. By your logic wallets (online or offline) wouldn't work in general. Private keys are not broadcast to the network or given to anyone unless the person who generated them (and thus owns them) does something.

Digital signatures work via mathematics to generate a proof. With a specific message and public key, only the person who controls the private key that corresponds to the public key is able to generate a valid proof. That proof is the signature, and that is what is added to a transaction. Signatures do not require the signing device to be online. Signing is an entirely offline operation that only does math, nothing else.

Even if I sign it at the online-wallet somebody could just change the sourcecode of the client that he does not need the private-key to sign something.

The signature validation operation is a consensus rule. Every must follow that exact rule otherwise you will be forked off of the network. Sure you can make a client that doesn't do that validation, but then you aren't using Bitcoin, and if no one uses your client and its forked blockchain (as that will happen), then your transaction and coins on that chain are completely worthless.

Andrew Chow

Posted 2017-06-23T01:37:42.590

Reputation: 40 910

Can you provide more details about the signing process. I suspected that my logic is not how it works. Now i know its math behind but I do not exactly how it works. I read the wiki about transactions but I cannot understand it. Can you explain it for dummies :DIni 2017-06-23T02:02:42.327

Bitcoin uses ECDSA which you can read about here: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm

Andrew Chow 2017-06-23T02:13:46.943

and Chapter 5 of Andreas' Book "Mastering Bitcoin" - "transactions". It is also online available (and in many languages).pebwindkraft 2017-06-24T07:49:11.293