To me, banking is not a public thing. I don't want people to know what's in my bank account at what time, or who I sent money to.

I know that I can make a new address for each transaction, as addresses are 'free'. But this isn't the case for say, a coffee shop, which would want only a single address for people to send money to (usually in the form of a QR code printout hanging on the wall). I can effectively track the incoming and outgoing cash flow of a coffee shop by just tracing the blockchain, can't I? If I were a rival shop, this would be very useful to me.

  • 2
    "which would want only a single address for people to send money to." No, they wouldn't want to do that. They'd want to give a new address out in each payment request. Which kind of already solves your question.
    – Murch
    Commented Jun 17, 2016 at 8:10
  • It does complicate things a lot for a small shop though. They'd have to generate a new address per transaction, and display it to the customer. The proposed solution of a QR code on the wall is a lot simpler to adopt. Tradeoffs...
    – user36303
    Commented Jun 17, 2016 at 8:14
  • Having customrs scan a QR code on a screen in front of the counter is just as easy. Compare that use case to using credit/debit cards, where cards must be swiped, chips read, PINs entered, and receipts signed. A screen showing a new QR code for each customer is way better.
    – Jestin
    Commented Jun 17, 2016 at 13:20
  • @Jetsin the problem is reliance on everyday technology, which can fail. In a credit card, if the scanner fails, you can just read the 15-digit decimal number off the strip and enter it manually. This is much more annoying to do with a 64-digit hex number (try it yourself). Also someone - say my aunt - who is unfamiliar with technology might find it very unintuitive to scan a QR code to pay for coffee. For the Bitcoin process to be widely adopted, it must become stupid to do wrong. Commented Jun 18, 2016 at 5:11

2 Answers 2


When Bitcoin was invented, Blockchain analysis was not as advanced as it was today and pseudonymous transactions were believed to be closer to anonymous than they are with Bitcoin today. Under the current Bitcoin system, privacy can be greatly improved by avoiding fiat entry/exit ramps connected to your identity and by avoiding reusing BTC addresses.

Yes Bitcoin transactions for the coffee shop you describe can easily be tracked. As you mentioned, stealth addresses can bring privacy improvements but not ideal for every situation. Once Confidential Transactions are added to Bitcoin (https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275), privacy will improve but still not meet the level of the top 2 decentralized solutions solutions described below:

  1. Ring signatures exist already with Monero and Ring Confidential Transaction (RingCT) is one of the most promising areas of privacy development: https://eprint.iacr.org/2015/1098.pdf

  2. ZCash is another leading alternative if the market is satisfied with its trusted setup solution and developer mining reward share: https://blog.okturtles.com/2016/03/the-zcash-catch/

  • Thank you for the response. If I'm getting this right, ring signatures work by putting in the "Sender" signature field, a list of signatures rather than just one, thus cloaking the sender. This does not cloak the receiver (until they needs to spend the money, wherein they become the sender and are similarly anonymised). Commented Jun 17, 2016 at 6:34
  • 3
    All addresses on the monero (and other cryptonote coins) blockchain are one time addresses, NOT the sender or receiver's standard address. The receiver can deduce the private keys for outputs they receive using their own private key, but without that private key, a third party has no idea and just sees a public key per new output. Ring signatures and those one time addresses work in tandem.
    – user36303
    Commented Jun 17, 2016 at 7:44

The ledger has to be public in order for Bitcoin to be decentralized. The designers of Bitcoin didn't want to need anyone to play the role of a "bank" who keeps all the records, and whom everyone else has to trust to do that properly.

For instance, when you keep a bank account, you are trusting your bank to keep your money and give it back to you on demand. There isn't anything that actually prevents them from just taking your money and faking their account records to make it look like you never deposited it. You could fight them in court to get it back, but they still have your money in the meantime.

But there still have to be records, and someone has to be able to see them to verify that they make sense. Bitcoin's solution is to make the records public so that anyone can verify them.

You're right that this comes at a cost in privacy. (Though from a certain point of view, in the current banking system, your bank has all your information; you're trusting them to keep it private. If they published all your bank statements in the newspaper, you could probably sue them, but the information would still be out there.)

But your "coffee shop" example isn't a very good one. Of course, if they operate with a single address posted on the wall, then others will be able to see their incoming transactions. If that's a concern, then they shouldn't use that approach; they should use a new address per transaction, as you suggest. That shouldn't be very difficult. The coffee shop is going to have to have some sort of Internet-connected device (computer, tablet, etc), in order to see whether customers have actually made their payments and can be given their coffee. If so, then that device can easily generate a new address for each customer, perhaps displaying it as a QR code on its screen.

  • 1
    I trust my bank because a) they don't have incentive to steal my information, they already have my money. I already know they sell my info to advertisers. b) The backlash from the govt, customers etc. if they steal my money or publish my information is so great that they have no incentive to do so. Neither of these are true of the Bitcoin system. Commented Jun 17, 2016 at 6:23
  • 1
    @abhidivekar: Bitcoin satisfies something much stronger than (b): assuming you secure your private keys appropriately, it is impossible for anyone to steal your money, regardless of how much backlash they might be willing to risk or what hidden incentives they might have. Commented Jun 17, 2016 at 6:56
  • Agreed. My point is that there's backlash if my bank posts my account balance somewhere. The bank loses customers, and hence money. Bitcoin has no mechanism to stop this yet (at least to my knowledge) and I'm trying to figure out why, and how to increase anonymity. PS: the QR-code-per-transaction idea was a good one, got any more? Commented Jun 17, 2016 at 7:01
  • 1
    Banks have a lot of incentive to "steal" (by which I take it you mean copy, share, and otherwise disclose) your information. It can be a financial plus for them, it can be lessened risk for them in choosing how to do business with you, and, nowadays, it means less criminal exposure if you're found to be associated to dodgy stuff (KYC/AML).
    – user36303
    Commented Jun 17, 2016 at 7:46
  • 1
    I'm just commenting on blockchain's weakness in this area of privacy. I am okay with my bank having some of my information, because I trust that in return they keep my money and transaction history safe. Imagine if your bank posted your transaction history - for free - on their website. Wouldn't you immediately get paranoid and move your money to an alternate bank? Blockchain is built such that unless you change addresses every so often (which is cumbersome to keep track of if your transaction volume is large) your entire transaction history is public. Commented Jun 17, 2016 at 11:30

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.