What is Privacy

Before we describe our protocol, we would like to define what the privacy exactly means.

Confidential vs Anonymous

There are two types of privacy level confidential and anonymous. The difference between them is that how much information we hide. The confidential means it hides the input and output. The anonymous means it hide the users related the transaction.

Transfer Example

If the protocol supports confidential, the users would be able to hide the input and output. When users send the transaction, the input and output are going to be balance, transfer amount and after balance. The function needs to know that the transfer satisfies the conditions for example, the amount is not negative, the balance is more than transfer amount and so on. The confidential transactions can verify these conditions without revealing input and ouput values. We use the homomorphic encryption to realize this feature. You can see it on Hide Transfer Amount section.

If the protocol supports anonymous, the users would be able to hide the users information related to transactions in addition to confidential. When users transfer the assets, the users information related to transactions are going to be sender and recipient. There are some ways to hide users information and we describe some of them in related tools. The typical tool to hide the sender is the Ring Signature and the recipient is the Stealth Address.

Summarize

To summarize the story, the confidential hides the transaction contents and the anonymous hides the transaction senders and recipients. We describe the contents and privacy level in table.

ItemConfidentialAnonymous
Balance
Transfer Amount
Sender-
Recipient-