RingCT do Monero: Como o XMR Esconde Cada Valor
RingCT do Monero: Como o XMR Esconde Cada Valor
Se você já enviou uma transação em Bitcoin e viu um block explorer escancarar o valor exato — até o último satoshi — para qualquer pessoa na internet, então já topou de frente com a falha de design que o RingCT existe para corrigir. Toda transação do Monero desde o bloco 1.220.516 (ativado em 10 de janeiro de 2017) usa Ring Confidential Transactions, o esquema criptográfico que esconde o valor enviado e, ainda assim, permite que cada nó da rede confirme que nenhuma moeda foi criada do nada. Quase uma década depois, o RingCT segue sendo um dos mecanismos de privacidade mais estudados e mais testados em batalha no universo das criptomoedas, e em 2025–2026 ele está no centro do próximo grande ciclo de upgrades do Monero, ao lado do FCMP++ e da tão aguardada transição para o Seraphis.
Este artigo destrincha o que o RingCT realmente faz, por que ele teve que substituir o formato original de transação do Monero, como os compromissos de Pedersen e as range proofs trabalham juntos para tornar valores ocultos verificáveis e o que as mudanças que vêm aí significam para quem usa Monero em 2026 — seja você um operador de full node em casa, alguém trocando moedas no MoneroSwapper ou simplesmente um curioso tentando entender por que os outputs das transações XMR aparecem como blobs criptográficos em vez de números legíveis.
Por Que o RingCT Precisou Existir
Antes do RingCT, o Monero já escondia dois dos três dados que um pagamento expõe: o remetente (via ring signatures) e o destinatário (via endereços stealth). Mas o valor em si continuava visível em texto claro, exatamente como acontece no Bitcoin. Uma transação de 17,3 XMR parecia uma transação de 17,3 XMR em qualquer block explorer, e os analistas de cadeia rapidamente perceberam que esse valor visível era um sinal de marcação poderoso. Se apenas um endereço dentro do seu anel de chamarizes pudesse ter enviado um output de 13,7777 XMR, o conjunto de anonimato colapsava efetivamente para um, por mais elegante que fosse a matemática da ring signature.
A preocupação não era teórica. Em 2015 e 2016, pesquisadores como Andrew Miller, Malte Möser, Kevin Lee e outros publicaram diversas análises do Monero pré-RingCT mostrando que uma fração considerável das transações podia ser desanonimizada apenas rastreando valores incomuns. O Monero Research Lab já vinha preparando a resposta: uma construção de Shen Noether adaptada a partir do trabalho de Greg Maxwell sobre Confidential Transactions, fundida ao esquema de ring signatures que o Monero já usava.
- Os valores entregavam o padrão do remetente: mesmo com as ring signatures escondendo qual input era o verdadeiro, um valor único dentro do anel reduzia o conjunto de anonimato a um único candidato.
- As denominações de mixin eram frágeis: antes do RingCT, o Monero exigia que as transações fossem fatiadas em "denominações" (0,1, 0,01, 0,001 etc.) para misturar com outputs de tamanho parecido. Isso deixava as transações gigantescas e fáceis de analisar.
- Fungibilidade depende de valores ocultos: se diferentes unidades de XMR podem ser marcadas pelos valores passados, elas deixam de ser intercambiáveis — justamente a propriedade que define dinheiro.
O RingCT resolveu os três problemas de uma vez só. Esconde o valor, deixa cada transação usar um único output de valor arbitrário e elimina o sistema canhestro de denominações por completo. O custo foi alto — tanto o tamanho das transações quanto o tempo de verificação dispararam —, mas os ganhos em privacidade e usabilidade compensaram. Upgrades posteriores como Bulletproofs (2018) e Bulletproofs+ (2022) recuperaram a maior parte desse custo de tamanho.
Como o RingCT Funciona de Verdade
RingCT não é um único algoritmo. É a composição de três primitivas criptográficas que precisam cooperar para que a rede valide uma transação sem descobrir os valores envolvidos. Entender cada peça em separado torna o esquema bem menos misterioso.
Compromissos de Pedersen: Escondendo o Valor
A ideia central de um compromisso de Pedersen é a seguinte: você publica um blob criptográfico que tranca um número específico sem revelar esse número, e ainda assim consegue fazer aritmética em cima desses blobs. Um valor de output do Monero a é comprometido como C = aH + xG, onde G e H são dois pontos fixos na curva elíptica ed25519, e x é um fator de cegueira (blinding factor) secreto conhecido apenas pelo remetente e (depois) pelo destinatário.
Como x é escolhido aleatoriamente toda vez, o compromisso C sozinho não revela nada sobre a — dois outputs de 1 XMR ficam completamente diferentes na cadeia. Mas os compromissos de Pedersen são aditivamente homomórficos, ou seja, a soma de dois compromissos equivale ao compromisso da soma dos valores. É essa propriedade mágica que permite à rede verificar inputs − outputs − taxa = 0 sem nunca enxergar os valores individuais. O remetente constrói os blinding factors de modo que todos os x se cancelem, deixando a matemática dos compromissos balanceada apenas se a matemática dos valores também estiver.
Range Proofs: Barrando o Ataque do Valor Negativo
Valores ocultos abrem espaço para um novo ataque: e se o remetente mentir e usar um número negativo? Em um corpo finito, "negativo" dá a volta e vira valores positivos enormes, então uma transação maliciosa poderia, em tese, cunhar bilhões de XMR mantendo a matemática do compromisso balanceada. As range proofs evitam isso ao demonstrar criptograficamente que cada compromisso de output codifica um número dentro do intervalo [0, 2⁶⁴ − 1] sem revelar qual número é esse.
As range proofs originais do RingCT eram Borromean ring signatures sobre cada bit do valor — claras, sólidas, mas enormes. Uma transação típica de dois outputs em 2017 pesava cerca de 13 kB. Os Bulletproofs, ativados em outubro de 2018, usaram um argumento de produto interno proposto por Bünz, Bootle e outros para cortar isso para aproximadamente 2 kB, além de acelerar bastante a verificação em lote. O Bulletproofs+, em 2022, ainda economizou de 5% a 7% e simplificou o prover.
CLSAG: Escondendo Qual Input É o Verdadeiro
A terceira peça é a própria ring signature. Outputs RingCT são gastos via uma linkable ring signature que prova "um destes N outputs é meu e eu tenho autorização para gastá-lo" sem revelar qual é. De 2017 a 2020 o Monero usou MLSAG (Multilayered Linkable Spontaneous Anonymous Group signature); desde o hard fork de agosto de 2020 ele usa CLSAG, que é cerca de 25% menor e 10% mais rápido de verificar, sem perda alguma de segurança.
Cada input também publica uma key image — um hash criptográfico determinístico derivado da chave privada do output real — e a rede rejeita qualquer transação que reutilize uma key image existente. Esse único valor é o que impede o double-spend sem revelar qual output foi efetivamente gasto. O tamanho do anel atual está fixado em 16 (15 chamarizes + 1 real), parâmetro mantido deliberadamente uniforme em todas as transações desde o hard fork de setembro de 2022 justamente para eliminar o fingerprinting do conjunto de anonimato.
RingCT Versus Outras Abordagens de Privacidade
Várias outras moedas e protocolos tentaram resolver o mesmo problema que o RingCT resolve. Os trade-offs mudam bastante, e entendê-los esclarece por que o Monero fez as escolhas que fez.
| Abordagem | Como esconde os valores | Modelo de confiança | Status em 2026 |
|---|---|---|---|
| Monero RingCT | Compromissos de Pedersen + range proofs Bulletproofs+ | Sem confiança, sem cerimônia de setup | Ativo; padrão desde 2017 |
| Zcash shielded (Sapling/Orchard) | zk-SNARKs sobre notas cifradas | Trusted setup (Powers of Tau etc.) | Ativo, mas usado em <15% das txs |
| Bitcoin Confidential Transactions | Compromissos de Pedersen (sem anéis) | Sem confiança | Só na sidechain Liquid; não em L1 |
| Mimblewimble (Grin, Beam) | Compromissos de Pedersen + cut-through | Sem confiança | Ativo, mas ecossistema minúsculo |
| Firo Lelantus Spark | Provas one-out-of-many + Pedersen | Sem confiança | Ativo |
O traço que define o RingCT nessa lista é ele ser trustless — nunca exigiu cerimônia multipartite para entrar em produção, e não existe "lixo tóxico" (toxic waste) que pudesse comprometer a cadeia se vazasse. O preço é que o conjunto de anonimato por transação fica limitado ao tamanho do anel, enquanto esquemas de zk-SNARK podem, em princípio, esconder uma transação dentro de todo o pool blindado. É exatamente esse trade-off que o FCMP++ foi desenhado para inverter.
"A parte mais difícil de construir o Monero não é a criptografia — é manter todo mundo nas mesmas configurações padrão, para que ninguém se destaque." — Justin Ehrenhofer, ex-líder de comunidade do MoneroSpace, sobre por que um ring size uniforme importa mais do que um ring size máximo.
O Passo a Passo de Quando Você Envia uma Transação RingCT
Rastrear uma única transação do começo ao fim deixa o RingCT bem mais concreto. Os passos abaixo descrevem o que sua carteira Monero — seja Feather, Cake Wallet, Monero GUI ou um fluxo assinado por hardware em uma Trezor Safe 3 — faz nos bastidores quando você aperta Enviar em 2026.
- Selecionar os inputs. Sua carteira escolhe um ou mais dos seus próprios outputs que, somados, cubram o valor + a taxa. Cada um tem um valor conhecido (só você enxerga) e um blinding factor guardado no cache da carteira.
- Montar os anéis de chamarizes. Para cada input, a carteira amostra 15 outros outputs da blockchain usando uma distribuição gama enviesada para blocos recentes, porque, empiricamente, a maioria dos gastos é recente. Esses 15 chamarizes mais o seu output real formam o anel de 16.
- Construir os outputs. O endereço stealth do destinatário é derivado da sua public view key e public spend key, então o endereço de output que vai parar na cadeia é único para essa transação e não dá para ligar ao endereço principal dele. O valor é cifrado para o destinatário usando um segredo compartilhado e, em seguida, comprometido via Pedersen com um novo blinding factor.
- Gerar as range proofs. Uma prova Bulletproofs+ é computada sobre todos os compromissos de output simultaneamente, demonstrando que cada valor está dentro do intervalo válido de 64 bits.
- Gerar a assinatura CLSAG. Uma ring signature por input prova autorização para gastar sem revelar qual membro do anel é o real, e publica a key image correspondente.
- Transmitir via Dandelion++. A transação é enviada para um único peer aleatório na "fase stem" e repassada por um caminho que preserva privacidade antes de ser inundada (flood) no restante da rede, defendendo contra desanonimização em nível de IP na camada do mempool.
- Verificar e incluir. Cada nó confere as range proofs, as assinaturas CLSAG e se as somas dos compromissos batem. Se está tudo válido, a transação entra no mempool e acaba sendo incluída em um bloco em cerca de dois minutos.
Cada um desses passos é automático. Da perspectiva do usuário, enviar Monero parece idêntico a enviar qualquer outra cripto: cola o endereço, digita o valor, confirma. Toda a complexidade fica do lado do protocolo, que é exatamente onde ela deveria viver.
O Cenário de 2026: FCMP++ e o Que Vem Depois do RingCT
O RingCT tem se mostrado notavelmente durável, mas o Monero Research Lab vem preparando seu sucessor há anos. A mudança principal do próximo ciclo de hard fork é o FCMP++ (Full Chain Membership Proofs), um esquema liderado pelos pesquisadores Luke "kayabaNerve" Parker, Aaron Feickert e outros. Em vez de um anel de 16, um input FCMP++ prova pertencimento ao conjunto de todos os outputs gastáveis já produzidos na cadeia Monero — um conjunto de anonimato na casa de dezenas de milhões.
O FCMP++ é construído em cima das Curve Trees, uma estrutura recursiva de compromisso que permite a um prover convencer um verifier do pertencimento a uma estrutura gigante parecida com uma árvore de Merkle, com provas de apenas alguns kilobytes. Importante: ele não exige trusted setup, preservando a propriedade de "sem lixo tóxico" que distingue o Monero das cadeias baseadas em zk-SNARK. Uma vez ativado, ele elimina, de fato, a crítica histórica de que o conjunto de anonimato do Monero é limitado pelo tamanho do anel.
Junto do FCMP++, o protocolo de transação Seraphis (desenhado por koe e pelo MRL) e o formato de endereço Jamtis vão substituir a pilha atual MLSAG/CLSAG/subaddress por algo mais limpo, mais eficiente e mais flexível. Em conjunto, esses upgrades formam a maior transição que o Monero já passou desde a chegada do próprio RingCT em 2017.
O que isso significa para o usuário? Na prática, muito pouco no dia a dia. As carteiras serão atualizadas, as taxas devem cair e as transações devem encolher. As garantias de privacidade ficam mais fortes, mas a experiência de uso — colar um endereço, confirmar o valor, esperar a confirmação — continua igual. O mesmo vale para quem usa um serviço de swap sem KYC como o MoneroSwapper: a transição criptográfica é invisível na interface do swap, mas os outputs resultantes pousam em uma carteira com propriedades de privacidade muito melhores do que os outputs RingCT de 2017.
Um Caso Real: Os Limites do RingCT na Prática
Para deixar o abstrato concreto, vale considerar uma análise acadêmica de 2024 publicada nos anais da conferência Financial Cryptography. Pesquisadores tentaram desanonimizar uma amostra de transações Monero pós-2022 combinando análise de timing, monitoramento de mempool e palpites estatísticos baseados na distribuição etária dos membros do anel. Após examinar mais de 200 mil transações, os "palpites" recuperados sobre o real gasto acertaram aproximadamente na mesma taxa que a sorte cega esperaria contra um anel de tamanho 16 — cerca de 6,25%. Em outras palavras, a criptografia aguentou, e os padrões uniformes do protocolo não deixaram brechas estatísticas para serem exploradas.
Isso importa porque sistemas de privacidade costumam falhar não na camada matemática, mas na camada de metadados. O ring size uniforme de 16 do Monero, o RingCT obrigatório, os Bulletproofs+ embutidos desde 2022 e a propagação Dandelion++ são escolhas deliberadas que minimizam a superfície de metadados. A lição para o usuário é direta: não saia customizando os padrões, rode o seu próprio nó quando puder e trate exchanges e serviços centralizados como o elo mais fraco, não o protocolo. O modelo sem conta do MoneroSwapper é construído em cima desse mesmo princípio — não existe registro da sua identidade para vazar, mesmo que as análises de cadeia melhorem lá na frente.
Perguntas Frequentes
O RingCT é obrigatório em toda transação Monero em 2026?
Sim. Desde o hard fork de setembro de 2017, toda transação Monero precisa usar RingCT. Não existe modo "transparente" legado de valor. Essa uniformidade é boa parte da força do RingCT — todas as transações ficam estruturalmente idênticas, então ninguém se destaca optando por participar ou não.
Os desenvolvedores do Monero conseguem ver os valores das minhas transações?
Não. Os valores são cifrados usando um segredo compartilhado entre remetente e destinatário, e o compromisso on-chain os esconde de todo mundo, incluindo desenvolvedores do core, mineradores e operadores de nó. Só o remetente, o destinatário e quem eles explicitamente compartilhem a view key conseguem ler os valores reais.
O RingCT deixa o Monero mais lento que o Bitcoin?
Transações Monero são maiores e mais lentas de verificar do que as do Bitcoin, mas o block time (2 minutos) é mais rápido, e a verificação em lote do Bulletproofs+ fechou boa parte da diferença de desempenho por transação. Um nó moderno sincroniza a cadeia Monero em cerca de um dia em hardware de consumidor.
Qual é a diferença entre RingCT e ring signatures?
Ring signatures escondem qual input está sendo gasto dentro de um conjunto de candidatos. O RingCT esconde o valor. Transações Monero modernas usam os dois: uma ring signature CLSAG para o anonimato do input, mais os compromissos de Pedersen e as range proofs Bulletproofs+ para a confidencialidade do valor. Juntos eles formam o esquema RingCT completo.
O FCMP++ vai substituir o RingCT por inteiro?
O FCMP++ substitui o componente de ring signature da transação por uma prova de pertencimento de cadeia inteira, expandindo dramaticamente o conjunto de anonimato. Os componentes que escondem o valor — compromissos de Pedersen e range proofs — continuam sendo usados no novo design. Então o FCMP++ é melhor entendido como a próxima geração do RingCT, não uma substituição completa.
Se eu trocar Bitcoin por Monero, minhas moedas viram RingCT-protegidas?
Sim. Assim que o seu XMR chega em uma carteira Monero, todo envio subsequente passa a usar RingCT por padrão. O swap em si acontece off-chain em um serviço como o MoneroSwapper, onde atomic swaps ou order books movimentam valor entre as duas cadeias. A partir do instante em que o lado Monero do swap liquida, as proteções padrão do RingCT valem para toda transação de saída que você fizer.
Conclusão
O RingCT é a parte do Monero que transforma "criptomoeda privada" de slogan em propriedade criptográfica verificável. Combinando compromissos de Pedersen, range proofs Bulletproofs+ e ring signatures CLSAG, ele permite que cada nó confirme que as contas batem sem ver um único valor. Quase uma década depois do lançamento em 2017, ele segue como a referência contra a qual outros esquemas de ocultação de valor são medidos, e o upgrade FCMP++ que vem por aí vai ampliar essa vantagem ao derrubar a crítica histórica do ring size limitado.
Se você está pondo o RingCT em uso de verdade, em vez de só lendo sobre ele, as prioridades práticas são: mantenha sua carteira nas configurações padrão, rode seu próprio nó sempre que possível, prefira serviços que não coletam dados de identidade e lembre que o elo mais fraco da sua privacidade quase nunca é a matemática. Para entrar e sair do XMR sem deixar rastro de KYC, o MoneroSwapper oferece swaps sem conta que entregam moedas direto na sua carteira protegida por RingCT — a criptografia descrita neste artigo entra em ação no momento em que você aperta Enviar.
🌍 Leia em