# Monero USES Zero-Knowledge Proofs Zero-knowledge proof means proving without giving any knowledge. F or example, suppose a secret society asks several questions about some insider information to enter their HQ. In this case, you can prove that you are a member without giving any knowledge about you rself. In real cases, you will use a value that you can compute on ly when you have required informations. Monero uses ring signatures and RingCT. Ring signature means you c an sign with a group of public keys, which contains yours. Anyone beside you can't know who in the group signed. RingCT means a conf idential transaction with a ring signature. In the context of cryptocurrency, a sign means a spend. So it mean s your spending is untraceable. To make a ring signature you must prove that your key is in the group without giving your key itself . This is a zero-knowledge proof. Confidential transaction is a zero-knowledge proof too. A Petersen commitment is a homomorphism with a secret blinding factor. Since C(x,a)+C(y,b)=C(x+y,a+b), if we choose blinding factors x,y random ly, we can hide transaction amounts a,b. And we can add amounts li ke real number additions. This is a zero-knowledge proof since we can prove a + b = (a+b) without giving a,b themselves. Monero also uses Bulletproof+ which guarantees transaction amounts are not overflowed without giving any transaction amount. What makes Zcash different from monero is that zk-SNARK and zk-STA RK directly manipulates the Merkle tree. Why? In blockchains, a Me rkle tree contains every transaction of a block. Since not every t ransaction is hidden in Zcash, they should deal with each transact ion seperately. So they have to deal with the Merkle trees directl y.