# Overview

In many blockchain systems, there is a lack of privacy. The amount, the asset type, and the addresses of the sender and the receiver are public. This can be problematic for many real-world applications. For instance, if a company pays all its employees in Bitcoin, all the salaries will be public knowledge and in particular, all employees would know their colleagues' salaries, which is not desirable.

**Confidential transfer.** Define an asset transfer as the transfer of ownership of an asset from one address to another. A *confidential* asset transfer has two additional properties:

* The asset types involved in the transaction are hidden.
* The amounts of each asset type transferred are hidden.

**Coin commitments.** A *commitment scheme* is a fundamental cryptographic primitive which is the digital analog of a sealed envelope. *Committing* to a message **m** is akin to putting **m** in the envelope. *Opening* the commitment is like opening the envelope and revealing the content within.

For our confidential transactions, we hide the amounts using a cryptographic primitive called the *Pedersen commitment* scheme. It is a homomorphic commitment scheme - meaning the sum of two commitments to amount is a commitment to the sum of the two committed values. The *hiding* property of the commitment scheme masks the value of the amount. The *binding* property of the commitment scheme binds the value of the commitment to that particular amount, meaning that the commitment cannot be opened to any other value.

These commitments are recorded on the ledger. It is subsequently proven in zero-knowledge that:

* The input amounts for each individual non-FRA assets have the same sum as the output amounts for this asset.
* The input amounts for the FRA asset have the same sum as the output amounts for this asset plus the transaction fees.

These proofs ensure that the total amount of the asset in circulation remains unchanged after the confidential asset transfer.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.findora.org/key-concepts/utxo-native-chain/confidential-transfers/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
