Audit-XMR é uma ferramenta open-source para auditar blocos da blockchain Monero, verificando a consistência entre recompensas de bloco, saídas Coinbase e o total minerado. Desenvolvido em C++ para desempenho otimizado com multi-threading e em Python para facilidade de uso e depuração, este projeto permite a auditoria independente do suprimento (supply) do Monero (XMR). Ele se conecta a um nó Monero via RPC e analisa cada bloco para garantir a integridade da emissão de moedas, essencial para uma criptomoeda que prioriza privacidade e descentralização.
O principal objetivo do audit-xmr é detectar fraudes, como emissões indevidas ou manipulações de recompensas, capacitando:
- Operadores de nós: Auditar suas próprias instâncias.
- Auditores independentes: Verificar nós de terceiros.
- Entusiastas e pesquisadores: Validar a supply sem depender de exploradores centralizados.
"Talk is cheap, show me the CODE" — o código está disponível para todos verificarem e usarem.
- Repositório: https://github.com/area31/audit-xmr
- Mais informações no X: https://x.com/coffnix/status/1906320712349925854
- Mais informações no Área31: https://area31.net.br/wiki/Audite_a_blockchain_do_Monero_(XMR)
Responsável: Coffnix
- Auditoria de blocos individuais (
--block) ou intervalos (--range). - Validação de recompensas de bloco contra saídas Coinbase.
- Suporte a servidores RPC remotos configuráveis.
- Geração de logs detalhados para depuração.
- Saída em CSV com altura, hash, recompensa real, saídas Coinbase, total minerado, problemas e status.
- Multi-threading para auditorias em larga escala (C++).
- Validação cruzada de resultados via
audit-xmr-check.
- Compilador C++17 (ex.:
g++) - Bibliotecas:
libcurlepthread - Biblioteca JSON:
nlohmann/json(inclusa no código)
- Python 3.x
- Bibliotecas:
requests,tqdm(instaláveis viapip)
- Clone o repositório:
git clone https://github.com/area31/audit-xmr.git cd audit-xmr - Compile com g++:
Ou use o script:
g++ audit-xmr.cpp audit.cpp rpc.cpp -o audit-xmr -std=c++17 -lcurl -lpthread
Alternativamente, com CMake:./build_gpp.sh
./build_cmake.sh
Instale as dependências:
pip install requests tqdmExecute diretamente os scripts Python no diretório correspondente.
Edite audit-xmr.cfg com os parâmetros do nó:
rpc_url=http://192.168.200.252:18081/json_rpc
threads=8
output_dir=out
max_retries=99
timeout=30
server=192.168.200.252
Auditar um bloco específico (ex.: altura 445):
./audit-xmr --block 445Auditar um intervalo (ex.: 0 a 500000):
./audit-xmr --range 0 500000 --threads maxValidar o CSV gerado:
./audit-xmr-check out/auditoria_monero.csv- CSV:
out/auditoria_monero.csvcom colunas: Altura, Hash, RecompensaReal, CoinbaseOutputs, TotalMinerado, Problemas, Status. - Log:
out/audit_log.txtcom detalhes de depuração.
audit-xmr: Audita blocos em massa e salva resultados em CSV.audit-xmr-check: Revalida os dados do CSV contra um nó Monero via RPC.- Módulos auxiliares: Comunicação RPC (
rpc.cpp/hpp), logging (log.cpp/hpp), multi-threading (mutexes e threads), configuração e scripts de build.
A estrutura AuditResult armazena os dados auditados:
height: Altura do bloco.hash: Hash do bloco.real_reward: Recompensa oficial do bloco.coinbase_outputs: Soma das saídas Coinbase.total_mined: Total minerado (igual a coinbase_outputs neste caso).issues: Lista de discrepâncias (ex.: "Reward != CoinBase").status: "OK" ou "Discrepância".
O sistema flagra:
- Reward != CoinBase: Recompensa diverge das saídas.
- Reward != TotalMined: Total minerado inconsistente.
- CoinBase inválida: Estrutura da transação Coinbase incorreta.
Essas discrepâncias podem indicar nós maliciosos ou corrupção de dados.
- Auditoria Local: Verifique a integridade do seu nó.
- Auditoria Cruzada: Compare resultados entre diferentes nós.
- Supply Independente: Valide a emissão total sem confiar em terceiros.
- Ambiente Offline: Use o CSV em sistemas isolados.
- Transparência: Qualquer um pode auditar a supply.
- Descentralização: Sem depender de sites ou empresas.
- Segurança: Detecta anomalias em nós.
- Performance: Multi-threading para auditorias rápidas.
O audit-xmr é uma ferramenta essencial para a comunidade Monero, oferecendo auditoria independente, precisa e reproduzível. Ele prova que sim, é possível auditar o Monero — uma resposta direta aos maximalistas e skeptics. Liberdade requer verificação, não confiança.
Membro do hackerspace felizão por mostrar pros maximalistas macacos, e um certo "policial famosinho bitcoinheiro", que sim, é possível auditar o Monero.
Agende auditorias periódicas com cron:
0 0 * * * /path/to/audit-xmr --range 0 $(/path/to/audit-xmr --block-height) >> /path/to/audit.log 2>&1Contribua com melhorias no repositório!