<p>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. </p>

<p>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 (<a href="https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275">https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275</a>), privacy will improve but still not meet the level of the top 2 decentralized solutions solutions described below:</p>

<ol>
<li><p>Ring signatures exist already with Monero and Ring Confidential Transaction (RingCT) is one of the most promising areas of privacy development: <a href="https://eprint.iacr.org/2015/1098.pdf">https://eprint.iacr.org/2015/1098.pdf</a></p></li>
<li><p>ZCash is another leading alternative if the market is satisfied with its trusted setup solution and developer mining reward share: <a href="https://blog.okturtles.com/2016/03/the-zcash-catch/">https://blog.okturtles.com/2016/03/the-zcash-catch/</a></p></li>
</ol>

CC BY-SA 3.0
2016-06-17T06:34:55.147Z
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).
Abhishek Divekar
CC BY-SA 3.0
2016-06-17T07:44:11.443Z
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
CC BY-SA 3.0
2016-06-17T04:54:58.513Z
2016-06-17T05:17:58.493Z
2016-06-17T05:17:58.493Z
Rudolf Harrison
<p>The ledger has to be public in order for Bitcoin to be <strong>decentralized</strong>.   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.  </p>

<p>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.</p>

<p>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 <em>anyone</em> can verify them.</p>

<p>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.)</p>

<p>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.</p>

CC BY-SA 3.0
2016-06-17T06:23:08.750Z
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.
Abhishek Divekar
CC BY-SA 3.0
2016-06-17T06:56:04.060Z
@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.
Nate Eldredge
CC BY-SA 3.0
2016-06-17T07:01:15.960Z
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?
Abhishek Divekar
CC BY-SA 3.0
2016-06-17T07:46:58.033Z
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
CC BY-SA 3.0
2016-06-17T11:30:42.460Z
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.
Abhishek Divekar
CC BY-SA 3.0
2016-06-17T13:54:38.180Z
@abhidivekar Your question to "Why is the ledger public" was answered by stating it was for "decentralization". The lack of trust with banks or the system was one of the reason for this. If you want to know how to be more anonymous then that's a totaly different question.
the_lotus
CC BY-SA 3.0
2016-06-17T14:53:41.113Z
@abhidivekar: Well, yes, it's true, the transaction ledger is public. It has pros and cons.  Changing addresses is an important way to mitigate the privacy issue, and is just something that you have to do if that's important to you.  I'm not really sure if  you still have a question or if you're just expressing your opinion that you don't like it - of course if you're not comfortable with fundamental aspects of the currency, then by all means don't use it.
Nate Eldredge
CC BY-SA 3.0
2016-06-17T14:54:39.020Z
As to the QR code per transaction, this is a standard feature of every Bitcoin wallet app I've seen.  I am not taking credit for that idea!
Nate Eldredge
CC BY-SA 3.0
2016-06-17T04:33:59.080Z
2016-06-17T04:33:59.080Z
Nate Eldredge
<p>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. </p>

<p>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.</p>

CC BY-SA 3.0
2016-06-17T08:10:41.903Z
"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
CC BY-SA 3.0
2016-06-17T08:14:41.040Z
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
CC BY-SA 3.0
2016-06-17T13:20:18.637Z
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
CC BY-SA 3.0
2016-06-18T05:11:57.420Z
@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.
Abhishek Divekar
<transactions><privacy><address-reuse><tracking>
Why is the ledger public?
Abhishek Divekar
# Why is the ledger public?

(Asked by: username_0 on 2016-06-17)

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.

**Tags:** transactions, privacy, address-reuse, tracking

> **Comments:**
> **username_1**: "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.  
> **username_2**: 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...  
> **username_3**: 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.  
> **username_0**: @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.  

---

## 2 answers

### Answer by username_4 on 2016-06-17. Score: 11

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/>

> **Comments:**
> **username_0**: 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).  
> **username_2**: 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.  

---

### Answer by username_5 on 2016-06-17. Score: 5

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.

> **Comments:**
> **username_0**: 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.  
> **username_5**: @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.  
> **username_0**: 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?  
> **username_2**: 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).  
> **username_0**: 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.  
> **username_6**: @abhidivekar Your question to "Why is the ledger public" was answered by stating it was for "decentralization". The lack of trust with banks or the system was one of the reason for this. If you want to know how to be more anonymous then that's a totaly different question.  
> **username_5**: @abhidivekar: Well, yes, it's true, the transaction ledger is public. It has pros and cons.  Changing addresses is an important way to mitigate the privacy issue, and is just something that you have to do if that's important to you.  I'm not really sure if  you still have a question or if you're just expressing your opinion that you don't like it - of course if you're not comfortable with fundamental aspects of the currency, then by all means don't use it.  
> **username_5**: As to the QR code per transaction, this is a standard feature of every Bitcoin wallet app I've seen.  I am not taking credit for that idea!  

---

