Commit 7478b11b authored by Riccardo Spagni's avatar Riccardo Spagni Committed by GitHub
Browse files

Merge pull request #372 from QuickBASIC/text-add-0

Add Pedersen Commitments to FAQ and Moneropedia
parents 21d6ab0c 322f81cf
......@@ -124,3 +124,17 @@ Fungibility is a simple property of money such that there are no differences bet
</div>
</div>
<div class="tab">
<input id="tab-eleven" type="checkbox" name="tabs" class="accordian">
<label for="tab-eleven" class="accordian">If Monero is so private how do we know they're not being created out of thin air?</label>
<div class="tab-content" markdown="1">
In Monero, every transaction output is uniquely associated with a key image that can only be generated by the holder of that output. Key images that are used more than once are rejected by the miners as double-spends and cannot be added to a valid block. When a new transaction is received, miners verify that the key image does not already exist for a previous transaction to ensure it's not a double-spend.
We can also know that transaction amounts are valid even though the value of the inputs that you are spending and the value of the outputs you are sending are encrypted (these are hidden to everyone except the recipient). Because the amounts are encrypted using Pedersen commitments what this means is that no observers can tell the amounts of the inputs and outputs, but they can do math on the Pedersen commitments to determine that no Monero was created out of thin air.
As long as the encrypted output amounts you create is equal to the sum of the inputs that are being spent (which include an output for the recipient and a change output back to yourself and the unencrypted transaction fee), then you have a legitimate transaction and know no Monero is being created out of thin air. Pedersen commitments mean that the sums can be verified as being equal, but the Monero value of each of the sums and the Monero value of the inputs and outputs individually are undeterminable.
</div>
</div>
---
layout: moneropedia
entry: "Pedersen Commitment"
terms: ["commitments", "commitment", "pedersen"]
summary: "Pedersen commitments are cryptographic algorythms that allow a prover to commit to a certain value without revealing it or being able to change it."
---
### The Basics
When you spend Monero, the value of the inputs that you are spending and the value of the outputs you are sending are encrypted and opaque to everyone except the recipient of each of those outputs. Pedersen commitments allow you to send Monero without revealing the value of the transactions. Pedersen commitments also make it possible for people to verify that transactions on the blockchain are valid and not creating Monero out of thin air.
### What It Means
As long as the encrypted output amounts created, which include an output for the recipient and a change output back to the sender, and the unencrypted transaction fee is equal to the sum of the inputs that are being spent, it is a legitimate transaction and can be confirmed to not be creating Monero out of thin air.
Pedersen commitments mean that the sums can be verified as being equal, but the Monero value of each of the sums and the Monero value of the inputs and outputs individually are undeterminable. Pedersen commitments also mean that even the ratio of one input to another, or one output to another is undeterminable.
Even though it's unclear which inputs are really being spent (the ring signature lists both the real inputs being spent and decoy inputs therefore you don't actually know which input Pedersen commitments you need to sum) that's okay, because the RingCT ring signature only has to prove is that for one combination of the inputs the outputs are equal to the sum of the inputs. For mathematical reasons, this is impossible to forge.
### In-depth Information
See information in [Ring Confidential Transactions paper](https://eprint.iacr.org/2015/1098.pdf) by Shen Noether of the Monero Research Lab.
{{ page.summary | capitalize }}.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment