Address reuse is very common in the bitcoin space as shown by this graph https://i.imgur.com/BrmFaBZ.png
which is damaging to privacy.
What do you think the bitcoin ecosystem should be doing to reduce the amount of reuse? I've heard extreme suggestions to rename 'addresses' into something like 'invoice code' where the name makes it slightly more obvious that this string should be used only once.
Great question! I'm working on getting a better sense of where our software is going wrong exactly, but I think we already know a few things.
The worst offenders of address reuse are all of the big, high volume services who are well-funded. So a lack of funding is probably not at issue. That's good, because it means we already have a lot of the resources that we need to fix things. It's bad, because it means that a lot of decision makers are demonstrably apathetic to this issue. I'm not sure how to get them up to speed other than to shine a giant spotlight on them.
Software obviously has to avoid reusing addresses by default. I know at least some of the holdovers in this area are working on addressing this, but I'm not so sure about the others (paging Bitpay?).
We should guide users to make smart decisions about how they handle addresses. Warn them about the risks of address reuse; new users in particular should not be expected to know this already. Gently warn them when they are about to reuse an address in your software. OBPP includes these as countermeasures that BItcoin wallets can very easily deploy today.
Lastly, I've been thinking for a while that perhaps it's time to move on from Bitcoin addresses. Bitcoin addresses are one step removed from public keys, and we know that users should not be left to their own devices when it comes to handling cryptographic keys. It's time to look for alternative ways for users to designate who they want to send money to. Currently, my favorite proposal is BIP47 Reusable Payment Codes. These are identifiers that we can safely hand off to users -- and in fact, which we can wrap in a human-friendly identifier. What if instead of sending money to 14DCGUoQ14hFhcSNZ8JFkrN46V92J718TQ (a random address I selected from the latest confirmed block), you sent it to 'kristovatlas' or selected me from your wallet's address book?
I think it's time for Bitcoin to grow up and stop exposing the guts of the protocol that Satoshi invented to new users who, frankly, don't want to have to deal with the protocol's internal addressing schemes. That said, we have do that in an intelligent, carefully engineered way.