Subject: Re: [Bitcoin-development] bitcoin DNS addresses

From: Mike Hearn <[email-masked]>
Date: Sat, 30 Jul 2011 12:34:38 +0100

This was already discussed on the forums, but clear use cases would be helpful.

I originally thought this feature seemed like a no-brainer, but
randomly emailing money to people out of the blue is not a very common
operation. You almost always have contact with them first, if only to
say "hey, I'm going to send you some money", but more commonly to
figure out how much you're going to pay and what for.

Once you have communication, providing an address in-band isn't very
hard, and it has the advantage of always working. Doing anything with
DNS or magic HTTPS endpoints means that 90% of the time, your feature
*will not work* (eg it won't work for any gmail/yahoo/hotmail account)
and users will rapidly learn not to bother trying as they have no way
of knowing if any given address will work or not.

It's not smart UI design to provide users with a feature that will
normally never work, and for which they can't even guess at whether it
will.

What would be better to see is a standardized (probably HTTPS based)
protocol in which a Bitcoin URI could contain a domain name, and then
your client would challenge the domain to sign a nonce with the key
corresponding to the address (or raw pubkey). This means in your
client the payment can be rendered and recorded as a payment to
"foobar.com", which is much more helpful. That protocol could then be
extended to support "[email-masked]" type challenges so when a
bitcoin: link is provided, the server is challenged to prove ownership
by that user of that public key. It means the details are hidden and
when the feature is present, the UI gets silently better, but there's
never any demand on any users to do anything different. The "copy
Bitcoin address" button in the UI can provide the clipboard with both
text/plain and text/html content so the right one is picked depending
on context.