Can someone explain simply how RingCT can make sure that a user has the specified amounts without seeing it? My mind starts to pause as soon as i see formulas on a whitepaper.
1 Answers
Basic idea can be explained by simple arithmetics. Now, we're checking that sum of all inputs must be equal to sum of all outputs. For example:
1+2+3+4 = 3+5+2
Literally, "what comes in must come out", and that's how we assert no coins were created or destroyed in the transaction. And you can see the amounts. If you multiply everything by some random number A, you get the below:
(1A) + (2A) + (3A) + (4A) = (3A) + (5A) + (2*A). which can be written as:
A * ( 1+2+3+4) = A * (3 + 5 + 2), so we can be sure that 1+2+3+4 = 3+5+2 still holds true.
Trick is, with ringCT, only the sender and receiver know the value of A. All the rest see only the already multiplied values (2A), (3A)... so they can check that there's no cheating, but they don't know A, so they can't tell the exact amounts involved. Of course, it's not implemented exactly as above, but I think you can get the idea.

- 19,934
- 3
- 46
- 105
A
on both sides of the equation, without having to reveal it. This is still ELI5 zone, and I don't yet know to explain it further. – JollyMort Dec 04 '16 at 22:46