What is the difference between RingCT and FCMP++?
RingCT hides how much Monero you send and uses a small group of possible outputs to hide which one you spend. FCMP++ is designed to replace that small-group approach with a proof that your output belongs to the much larger set of eligible outputs on the blockchain. They are not simply competing versions of the same feature: FCMP++ changes how spending is hidden, while confidential-amount protections are still needed.
What RingCT does
RingCT means Ring Confidential Transactions. It combines several tools to protect your Monero payments.
An output is a piece of received money recorded on the blockchain. When you spend one, RingCT’s ring-signature component groups it with other outputs called decoys. A verifier can check that you are allowed to spend one member of that group, without learning which member is yours.
RingCT also protects the amounts:
- Commitments hide the numbers while allowing checks that the transaction balances.
- Range proofs show that hidden amounts fall within valid limits, so you cannot create money by sneaking in a negative amount.
- A key image, a unique cryptographic marker for a spent output, helps the network reject attempts to spend that output twice.
Monero separately uses stealth addresses, which create one-time receiving addresses. Those protect the recipient’s identity; they are not the main difference between RingCT and FCMP++.
What FCMP++ changes
FCMP++ stands for Full-Chain Membership Proofs++.
Instead of pointing to a small, explicitly listed ring of possible outputs, the design lets you prove that the output you spend belongs to the blockchain’s eligible output set—without revealing which output it is.
Think of the difference this way:
- With a ring, you say: “I can spend one of these listed outputs, but I will not tell you which.”
- With FCMP++, you say: “I can spend an eligible output from this much larger blockchain-wide set, but I will not identify it.”
“Full-chain” does not mean every output is automatically eligible in every situation. The proof must use a defined blockchain state and follow the protocol’s eligibility rules.
The “++” design includes spending-authorization and double-spend protection mechanisms alongside membership proofs. Merely proving that an output exists would not prove that you own it.
Why that matters for your privacy
With rings, your protection partly depends on the decoys. If an observer can rule out some of them using outside information or statistical clues, the real spend becomes easier to guess.
FCMP++ removes the need to choose a small decoy list for each input. That greatly broadens the possible source outputs and addresses an important limitation of ring-based privacy.
However, a bigger set of possible outputs is not a guarantee of complete anonymity. Timing, information you share with an exchange, and network-level observations can still reveal clues.
What it does not replace
FCMP++ does not, by itself, hide transaction amounts. Confidential-amount mechanisms still need to ensure that hidden inputs and outputs balance correctly.
It also introduces different proof-generation, verification, and implementation requirements. A larger privacy set does not automatically mean faster or cheaper transactions.
This comparison describes the designs, not confirmation of activation. Before assuming your wallet uses FCMP++, check Monero’s official upgrade announcements and your wallet’s supported protocol version.
The bottom line
RingCT combines hidden amounts with ring-based spending privacy. FCMP++ replaces the small-ring approach with blockchain-wide membership proofs. The key improvement is which output you spent stays hidden among far more possibilities, while amount privacy remains a separate, necessary protection.
