Is there a way to prove ownership of a transaction?

by Joris Vanhecke   Last Updated July 10, 2019 16:27 PM

Is it possible to prove that you are the sender in a transaction? Prove this to 3rd-parties, not only the receiver.



Answers 3


Yes, it is possible. You would do that by signing a message using the private key of the address which you sent the transaction from. Bitcoin-QT offers this functionality by clicking the button called "Sign Message". Anybody can then verify that the message could only have come from the owner of said address.

To ensure privacy, you would perhaps not want to put private information into that message, but rather announce to the third party that you will send them a message with some sort of passphrase (or ask them what passphrase they would like you to use), e.g. "This verifies my ownership - 54123" and then later on, send them exactly that message signed by using your private key.

Murch
Murch
December 11, 2013 10:50 AM

You cannot "own" a transaction. But you can own the private keys for one or more of the addresses from the inputs of the transaction.

A (regular) transaction must be signed with the private keys of the addresses of all the inputs. So if you own one of the addresses, the transaction could not have been verified without you, which may count as "ownership" if you want to call it that way.

Proving that you own an address can be done by signing a message using the private key of that address. Most wallets provide signing functionality. Just agree on a message, something like "I, [name with which the other party knows you], am the owner of address [address from the input]." After signing, you can send the message and the signature to the other party and he will be able to verify your ownership of the private key.

Steven Roose
Steven Roose
December 11, 2013 16:42 PM

Yes, you can prove you are the transaction's sender, by signing an arbitrary message with the transaction sender's private key. Here is an example using Electrum 3.3.6.

  • Navigate the menu bar: Tools -> Sign/Verify message.
  • Fill an arbitrary message (ex: This is a test message.)
  • Enter the sender's address for that transaction (ex: 1Hs7hQQs8cQVGLoTrNjDuXqRRpfGCwLEeh)
  • Click the Sign button. This will generate a signature for this message, using the sender's private key, if you own it.
  • Send the transaction ID, message, sender address and signature to whoever needs proof you are the sender. They will be able to check your signature, with the Verify feature, or any equivalent tool they may use.

Electrum 3.3.6 Sign/Verify tool

random_clyde
random_clyde
July 10, 2019 16:24 PM

Related Questions


Updated June 28, 2017 02:27 AM

Updated April 26, 2018 11:27 AM

Updated August 12, 2017 09:27 AM

Updated December 15, 2017 20:27 PM

Updated January 05, 2018 21:27 PM