I recently had the need to sign a message and the lack of a clear explanation about the "how to", and the "what is it doing" was very frustrating. I had to piece together the answers.
So, with that being said, here is my attempt at answering the questions above for the benefit of others. All feedback (errors, omissions, etc...) is welcome.
First some nomenclature clarifications:
Send Address: This is the BTC address of the seller/person that you are sending BTC to.
Sending Address: This is YOUR address (in your wallet known as a receive address) that the BTC is coming from.
Receive Address: This is YOUR address (also known as the Sending Address when you send BTC) that the BTC is coming to when you receive BTC
The "How to":I will use the bitcoin-qt wallet (v0.8.2-beta) for reference.
In your wallet, click on the Receive button and locate the "Sign Message" button at the bottom.
http://s22.postimg.org/vojynbopt/screenshot_1.pngClick on the "Sign Message" button to open the sign message window
http://s22.postimg.org/8lb0hnh7l/screenshot_2.pngFind your Sending address:If you have a single address in the Receive window - that's it, your Sending Address. If you have multiple addresses in the Receive window like in the example above, you can go to
https://blockchain.info/ and search for your last transaction.
http://s22.postimg.org/k0qdc5gip/screenshot_4.pngOnce you know your sending address, select it from your addresses in the sign message window.
Write your message in the message area.
Generate a signature by clicking on the Sign Message button.
NOTE: Once you generate a signature, DO NOT modify anything in the Sign Message window. If you do, the signature becomes invalid.
Now that you have the signature, SELECT, COPY, and PASTE the Sending address, Message, and Signature into a private message or email to the merchant for the merchant to verify.
I suggest the following format for the PM or email however the merchant may have other requirements.
Sending Address:
13FquMwkrDwj2yYFp2XJSgf4uKbfLbzTPc
Message:
---BEGIN WITH LINE BELOW ----
PulsarAV just sent you 40 BTC for the purchase of 20 Block Erupter USB Miners
Please ship to:
PulsarAV
1234 Anywhere Street
AnyCity, AnyState, AnyZip
Thanks,
---END WITH LINE ABOVE---
Signature:
HNtryLdIkjfWZ/8jGzoH255Aa96xG3sa+j5/XrrAjoL3NZ6YoseNMvYxRpBZNlwK+TeJP/JASJijHozKpUlXa8w=The "What is it doing?":The bitcoin wallet takes the information you provide (Sending Address and Message) and generates a unique cryptological Key (the signature).
The merchant takes the same information and copies it into the Verify window of his wallet and the wallet's algorithm verifies the message came from your wallet. This proves you own that address and the BTC came from you.
I hope this helps someone avoid the frustration I had when trying to figure out the Sign Message feature of Bitcoin.
PulsarAV
13FquMwkrDwj2yYFp2XJSgf4uKbfLbzTPc