Algoritmo de Seleção de Iscas do Monero: Como os Membros do Anel São Escolhidos
Por que a seleção do chamariz é importante
As assinaturas em anel do Monero funcionam misturando uma saída real gasta com um conjunto de saídas falsas extraídas do blockchain. Quando um usuário gasta Monero, sua carteira seleciona vários outros resultados que plausivelmente poderiam ser os reais e constrói uma prova criptográfica de que o gastador possui um deles, sem revelar qual. A segurança deste esquema depende fundamentalmente de como essas iscas são escolhidas. Se o algoritmo de seleção tiver preconceitos previsíveis, a análise estatística pode restringir qual resultado é o gasto real, potencialmente desanonimizando o remetente.
Considere uma abordagem ingênua em que iscas são selecionadas de maneira uniforme e aleatória de todas as saídas do blockchain. Isto parece justo, mas cria um problema imediato. Os gastos reais tendem a ocorrer relativamente logo após o recebimento dos resultados. As pessoas recebem Monero e gastam-no em dias ou semanas, não em anos. Se os chamarizes forem selecionados com igual probabilidade de todo o histórico do blockchain, a maioria dos chamarizes serão resultados antigos, e o resultado criado recentemente no anel se destacará como o gasto real mais provável. Um invasor que conhece a distribuição do comportamento de gastos pode atribuir probabilidades a cada membro do anel e reduzir significativamente o anonimato efetivo.
É por isso que Monero usa uma distribuição de probabilidade cuidadosamente projetada para seleção de isca, em vez de amostragem aleatória uniforme. O objectivo é fazer com que o padrão de selecção do engodo corresponda tão estreitamente ao padrão de despesa real que a análise estatística não consiga distinguir as despesas reais dos engodos.
O modelo de distribuição gama
O atual algoritmo de seleção de isca do Monero usa uma distribuição gama modificada para determinar a idade das saídas de isca. A distribuição gama é uma distribuição de probabilidade contínua que, quando parametrizada adequadamente, produz uma curva que atribui maior probabilidade aos resultados recentes e menor probabilidade aos mais antigos, imitando de perto como as pessoas realmente gastam o seu Monero.
Os parâmetros específicos da distribuição gama utilizados pelo Monero foram calibrados através de análise empírica dos padrões de gastos na blockchain. Os pesquisadores estudaram a distribuição dos intervalos de tempo entre o momento em que os resultados são criados e o momento em que são realmente gastos em uma grande amostra de transações. Verificou-se que a distribuição gama proporciona um bom ajuste para este comportamento de despesa observado.
Quando sua carteira constrói uma transação, ela faz uma amostragem dessa distribuição gama para determinar a compensação de idade de cada isca. Em seguida, ele seleciona uma saída real do blockchain que corresponda a essa idade o mais próximo possível. O resultado é um conjunto de membros do círculo cujas idades são estatisticamente indistinguíveis de um conjunto de gastos reais, tornando difícil para um observador determinar qual deles é genuíno com base apenas no tempo.
Por que a distribuição uniforme não é ideal
Intuitivamente, pode-se pensar que selecionar iscas com igual probabilidade de todos os resultados proporcionaria o melhor anonimato, uma vez que todos os resultados parecem igualmente prováveis. No entanto, este raciocínio é falho porque ignora o conhecimento do atacante sobre os padrões de gastos.
Um invasor que sabe que a maioria dos gastos reais ocorre poucos dias após a criação da saída pode atribuir imediatamente uma probabilidade muito baixa aos membros do anel com meses ou anos de idade. Se o processo de seleção do chamariz fosse escolhido de maneira uniforme, a maioria dos anéis conteria muitos resultados antigos e um ou dois recentes, tornando os resultados recentes candidatos óbvios para o gasto real. Ao selecionar iscas de acordo com a mesma distribuição dos gastos reais, cada membro do círculo tem um perfil de idade plausível, e o conhecimento prévio do invasor sobre os padrões de gastos não oferece nenhuma vantagem.
Evolução do tamanho do anel
O número de membros do ringue nas transações Monero aumentou várias vezes ao longo da história do projeto, refletindo o compromisso contínuo da comunidade em fortalecer a privacidade.
- Monero inicial (2014-2016) - Os tamanhos dos anéis eram opcionais e variáveis. Os usuários podiam escolher seu próprio tamanho de anel, com um mínimo de 3. Muitos usuários escolheram o mínimo, e alguns até usaram o tamanho de anel 1, o que não proporcionou nenhuma privacidade ao remetente.
- Tamanho mínimo obrigatório do anel 5 (2016) - Um hard fork estabeleceu um tamanho mínimo obrigatório de anel, garantindo que todas as transações fornecessem pelo menos privacidade básica ao remetente.
- Tamanho do anel 7 (2018) - O tamanho obrigatório do anel foi aumentado para 7, proporcionando garantias de anonimato mais fortes.
- Tamanho do anel 11 (2019) - Um novo aumento elevou o tamanho do anel para 11, que foi o padrão durante vários anos.
- Tamanho do anel 16 (2024) - O aumento mais recente expandiu os anéis para 16 membros, aumentando significativamente o anonimato definido para cada transação.
Cada aumento no tamanho do anel dificulta a desanonimização estatística, expandindo o conjunto de gastos reais plausíveis. No entanto, anéis maiores também aumentam o tamanho das transações e os tempos de verificação, criando um compromisso entre privacidade e eficiência. A comunidade avalia cuidadosamente estas compensações antes de cada aumento.
O Ataque de Saída Envenenada
Um dos ataques mais estudados contra o esquema de assinatura de anel do Monero é o ataque de saída envenenada, também conhecido como ataque de inundação ou ataque heurístico. Neste ataque, um adversário cria um grande número de saídas na blockchain que controla. Como o adversário sabe quais de seus resultados são gastos e quais não são gastos, ele pode eliminar seus próprios resultados de consideração quando aparecem como iscas nos anéis de outros usuários.
Veja como funciona na prática. Um adversário gera milhares de transações enviando Monero para si mesmo, criando um grande conjunto de resultados que ele controla. Quando um usuário comum cria uma assinatura de anel, alguns dos chamarizes selecionados aleatoriamente podem ser saídas pertencentes ao adversário. O adversário sabe se seus próprios resultados foram gastos, para que possa determinar que esses resultados são iscas no círculo da vítima. Ao eliminar suas iscas conhecidas, o adversário reduz o tamanho efetivo do anel, identificando potencialmente o gasto real.
Mitigações
Vários fatores atenuam a eficácia dos ataques de saída envenenados. Primeiro, executar o ataque em escala é caro porque requer a criação de muitas transações com Monero real, incorrendo em taxas de transação. Em segundo lugar, quanto maior o tamanho do anel, mais saídas o invasor deve controlar para reduzir significativamente o anonimato. Com um tamanho de anel de 16, um invasor precisaria controlar uma fração muito grande de todas as saídas do blockchain para ter um impacto significativo. Terceiro, a comunidade Monero implementou restrições de idade de produção e outras heurísticas que tornam mais difícil que as saídas de inundação recentemente criadas sejam selecionadas como iscas.
Riscos de análise temporal
Mesmo com um algoritmo de seleção bem concebido, a análise temporal continua a ser uma preocupação. A análise temporal explora o tempo das transações e dos resultados para fazer inferências sobre qual membro do anel representa o gasto real.
Por exemplo, se uma transação for transmitida imediatamente após a criação de uma saída específica, e essa saída aparecer no anel da transação, há uma probabilidade maior de que essa saída seja o gasto real. O software da carteira atenua isso garantindo que os anéis sempre contenham uma mistura de idades consistente com a distribuição gama, mas as correlações de tempo no nível da rede ainda podem fornecer pistas.
Outro vetor de análise temporal envolve observar o pool de memória. Se um observador vê uma saída chegar ao mempool e logo depois vê uma nova transação que inclui essa saída em seu anel, a correlação de tempo sugere que a saída pode ser o gasto real. Dandelion++, o protocolo de privacidade em nível de rede do Monero, ajuda a mitigar isso, ocultando a origem e o momento das transmissões das transações.
Fraquezas conhecidas na seleção de chamarizes históricos
A pesquisa identificou vários pontos fracos nas versões anteriores do algoritmo de seleção de iscas do Monero. Antes da adoção do modelo de distribuição gama, o algoritmo de seleção apresentava vieses que permitiam a desanonimização estatística de uma fração significativa das transações. Artigos acadêmicos demonstraram que, ao analisar a distribuição etária dos membros do círculo em muitas transações, os pesquisadores puderam identificar o gasto real com uma precisão significativamente melhor do que o acaso.
Essas descobertas levaram à mudança para o modelo de distribuição gama e motivaram pesquisas contínuas para melhorar o algoritmo de seleção. O Monero Research Lab colabora ativamente com pesquisadores acadêmicos para identificar e resolver pontos fracos antes que possam ser explorados na prática.
Pesquisas e melhorias atuais
A comunidade de pesquisa Monero continua a estudar e refinar o processo de seleção do chamariz. As áreas ativas de investigação incluem uma melhor modelização do comportamento real das despesas utilizando conjuntos de dados maiores, algoritmos de seleção adaptativos que ajustam os seus parâmetros à medida que os padrões de despesas mudam ao longo do tempo e técnicas para tornar o processo de seleção mais resistente à manipulação adversária.
Uma linha de pesquisa promissora envolve agrupar os resultados por faixas etárias e selecionar dentro dessas categorias para criar distribuições de aparência mais natural. Outra abordagem considera a estrutura do gráfico de transações, evitando seleções que criam padrões estatisticamente incomuns quando múltiplas transações são analisadas em conjunto.
FCMP++: Eliminando totalmente o problema do chamariz
O desenvolvimento mais interessante no roteiro de privacidade do Monero são as Full-Chain Membership Proofs, conhecidas como FCMP++. Esta atualização do protocolo mudará fundamentalmente o funcionamento da privacidade do remetente, eliminando totalmente o conceito de iscas.
Com o FCMP++, em vez de selecionar um pequeno anel de 16 saídas chamariz, cada transação prova que a saída real gasta pertence ao conjunto de todas as saídas em todo o blockchain. O conjunto de anonimato se expande de 16 para milhões, tornando a análise estatística da composição do anel completamente inviável. Não há iscas para analisar porque cada saída no blockchain é igualmente candidata.
O FCMP++ consegue isso usando técnicas criptográficas avançadas, incluindo árvores de curvas e provas de conhecimento zero que podem comprovar com eficiência a adesão a conjuntos muito grandes. A sobrecarga computacional e de armazenamento é gerenciável apesar do enorme conjunto de anonimato, tornando essa abordagem prática para implantação no mundo real.
Quando o FCMP++ é ativado, toda a categoria de ataques baseados na análise de seleção de chamariz torna-se obsoleta. Ataques de resultados envenenados, análise temporal da composição do anel e desanonimização estatística através da correspondência de padrões de gastos serão todos ineficazes. Isto representa um salto quântico nas garantias de privacidade do Monero e demonstra o compromisso do projeto com a melhoria contínua.
Até a chegada do FCMP++, o atual algoritmo de seleção de chamariz com seu modelo de distribuição gama e anéis de 16 membros fornece forte privacidade prática. Para quem deseja fazer transações com Monero hoje, MoneroSwapper oferece trocas anônimas que complementam a privacidade na rede fornecida por assinaturas de anéis e seleção de iscas.
🌍 Leia em