2

If I pay someone in bitcoin, presumably I have to utilise both my private and public key in some way, and presumably this has to be verified by the network.

Now does the network thus obtain my private key as part of the verification process? If not, how do they verify without it and if they do, does this mean my private key is now compromised?

4

The network does not obtain your private key. That is why it is called "private", and this is the whole reason that digital signatures are secure

When someone pays coins to you, the transaction includes your address, which is a hash of a public key. Public keys and private keys come in matched pairs, and to spend the transaction, you create a new transaction that is digitally signed using the corresponding private key. The signature incorporates your public key, and anyone on the network can verify that it is valid. A valid signature cannot be created without access to the private key, but the private key is not part of the signature and cannot be recovered from it.

If future transactions are paid to your address, you're still the only one who can spend them, so long as you keep your private key secure.

  • 2
    What does keep an adversary from storing your signed transaction and transmit it to the network again at a later point in time, effectively triggering the same transaction again? – bweber May 24 '17 at 7:50
  • @user1488118: Your transaction has to list one or more specific previous transactions as inputs that it's spending. The network will only allow any given input transaction to be spent once. They can transmit it as many times as they want but everybody will just ignore it. – Nate Eldredge May 25 '17 at 2:15

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.