Bitcoiners seem to love to talk about anonymity. But to me, anonymous transactions are far from Bitcoin's greatest strength. And to some, the need for high anonymity is the first sign that someone is "up to no good".

But what happens if you need to the opposite? I find myself in a situation where I had listed a bitcoin donation address on my website, but someone was able to deface my website and put another adress in instead.

Now, of course this is a special situation, and since I don't know my adress by heart, it went on for a bit before I noticed this.

What got my mind buzzing was when I put my real adress back up, and a person asked me "How can I be sure this is really your wallet?"

The question is, how can I prove that I am on the other side of the bitcoin address on my public website? Sending screenshots is a bit impractical, and honestly doesn't really tell me much. Is there a way to do some kind of handshake with the recipient or in any way verify the identity of a bitcoin address?

I know this is directly against the core principles of anonymity, but a currency will still need trust for commerce to flourish, and I am curious if there is any method one could use.

Right now, I'm juggling the idea that the user sends a microtransaction with a 6 digit code, and the recipient tells the sender the code when it appears in my wallet. This is inspired by mobile bluetooth trust syncs. But there must be an easier way. I imagine a very high level of ingenuity among the Bitcoin community, any ideas what could solve this?

If your idea is based on "theoretical software" (something that could be made, but simply hasn't) I'm willing to hear you out as well.

4 Answers 4


If you have a secure channel to the recipient or some way to identify communications as coming from the recipient, just have them send their Bitcoin address. If you have no such channel or method, it's obviously impossible. What can you do to prove your address is yours that I can't do to prove my address is yours?


Identity verification on the internet is a difficult problem. One of the relatively common techniques in use is the use of the PGP web of trust. You create a unique PGP key and have other people sign it, indicating that they have checked your identity. Once you are connected to enough people, it is possible to verify with some degree of certainty that your key indeed belongs to you. If you then post a PGP signed message containing your Bitcoin address, the signature can be verified, and the identity of the key can be checked via the web of trust.

The limitations of this approach are:

  1. Most people won't be checking the signature
  2. Most people don't use PGP/GPG and thus are not part of the PGP web of trust and therefore will not be able to verify your key identity even if they can check the signature.

SSL is a common method to verify a website's identity - however if the site is defaced via a hack, that will not help one bit.

Basically, this is not a problem of anonymity of Bitcoin, but a problem of how to prove your identity in the context of digital communications. Consider, that if you had a PayPal address on your site, the hacker could have changed your PayPal address to one controlled by him, just as well. There's nothing special about bitcoin here.


To start with, you could try using a vanity generator and getting a custom address that would be harder to forge (the longer the non-random string the better). You can also try memorizing last character of two of your address, just as a safety check.

You could also use a custom-made QR code with for example a photo you never folly posted on the Internet. If someone would try messing with that, you have a higher chance of noticing it right away.

I suppose in the future one could develop a trusted website for sending Bitcoins to a specific person by using their email instead of Bitcoin address, or providing a third-party service that links a certain Bitcoin address to you. These, however, are not available currently (at least to my knowledge).


An alternative is that the person will create a new address only for the donation amount, transfer the amount to it and then send the new address to you. Then is up to you to merge than amount into your real, undisclosed address.

In this way you avoid giving people and address that might be tampered with. Assuming of course that your email is harder to tamper with than your website.

On the other hand, this is added complexity for the donor. Maybe this could be implemented on top of bitcoin client (send coins to new address)

Edit lets take this idea a bit further. Or actually lets take a step back. Let's think in normal cash. Cash comes in several denominations; 10 - 100 - 1000. If you think of it, you can transfer bitcoins not only by a transaction from address to address (which is the way that was envisioned in its inception), but also, transferring by ordinary means (i.e: email) an address with the transaction amount works just as good. Both parts can agree that the transaction is completed after the receiver transfer the amount from the received address into a new address that the sender does not know.

I'm thinking that if some higher level library on top of bitcoin would implement transfers between parties not as transactions between two addresses, but as many transfers of addresses with small amounts in each of them, from an old address that is known to both parties to new addresses that are only known to the receiver. I think that in this way, most of the statistical analysis you could do to identify real identities behind might be a lot harder


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.