# Monero

Monero (XMR) é uma criptomoeda de código aberto, criada em abril de 2014, que foca em privacidade e descentralização, com carteiras disponíveis para Windows, macOS, iOS, Linux, Android e FreeBSD. Seu objetivo é ser não rastreável, oferecendo um maior grau de privacidade em relação ao Bitcoin.
Assim como o Bitcoin, o Monero usa um ledger público (uma blockchain) para registrar todas as transações que são realizadas na rede. No entanto, ao contrário do Bitcoin, o Monero protege por padrão a privacidade de seus usuários ao ofuscar o remetente, o destinatário e a quantia envolvida em cada transação. Em função disso, ela é considerada uma moeda anônima e não rastreável.
Monero utiliza um processo de mineração de prova-de-trabalho para criar as novas unidades da moeda, que é otimizado para ser mais eficiente em processadores comuns (CPUs). Isso permitiu que a moeda fosse minerada de maneira rentável em computadores comuns, tornando possível a mineração de maneira distribuída. O processo de mineração igualitário do Monero acabou abrindo novas fontes de rendimento para os mineradores, tanto legítimas quanto maliciosas.

## Mineração

A arquitetura de Monero é baseada no algoritmo de hash de prova-de-trabalho CryptoNight, que vem do protocolo CryptoNote. O Monero é projetado para ser resistente à mineração com circuitos integrados para aplicações específicas (ASICs), que é comumente usada para minerar outras moedas como o Bitcoin. O algoritmo de mineração RandomX foi desenvolvido para ser extremamente eficiente em processadores comuns (CPUs), em detrimento aos chips encontrados em placas de vídeo (GPUs) e aos ASICs.

### Emissão

Em média, um bloco é minerado a cada dois minutos.
A emissão inicial de Monero está programada para 18,4 milhões de unidades. A recompensa dos mineradores é decrescente a cada bloco que é minerado, até atingir 18,1 milhões de unidades mineradas, quando será ativada a emissão em cauda.
A emissão em cauda será ativada no ano de 2022, e consiste em uma emissão residual constante e fixa de uma recompensa de 0,6 XMR por bloco (0,3 XMR/min.). Ela irá gerar uma pequena inflação, menor do que 0,8%, que também será decrescente, reduzindo em direção a 0% a cada bloco que for minerado. A emissão em cauda foi criada com o objetivo de manter um incentivo financeiro contínuo para os mineradores, cuja renda a longo prazo não irá depender apenas das taxas das transações, que costumam ser muito voláteis e imprevisíveis.

### Blocos dinâmicos

Ao contrário do Bitcoin, que possui blocos de tamanho fixo, Monero possui blocos com tamanho dinâmico. Se o minerador criar um bloco cujo tamanho for maior do que a mediana do tamanho dos últimos 100 blocos, parte da recompensa do bloco será retida como uma penalidade. Isso signfica que, quando a rede estiver congestionada, os mineradores poderão criar blocos maiores sem serem penalizados, ajudando a descongestionar a rede.

## Arquitetura

Em comparação ao Bitcoin e moedas derivadas do protocolo do Bitcoin, ele possui diferenças significativas em relação à ofuscação da blockchain. Ao fornecer um alto nível de privacidade, o Monero é fungível, ou seja, como todas as unidades não possuem um histórico de transações identificável, todas as unidades acabam tendo o mesmo valor no mercado, podendo cada unidade da moeda ser substituída por outra unidade de valor semelhante. Isso faz com que o Monero seja diferente da maioria das criptomoedas com livros de contabilidade públicos, como o Bitcoin, onde endereços com moedas previamente associadas com atividades indesejadas podem ser colocados em uma lista negra, fazendo com que suas moedas sejam recusadas por outros usuários ou serviços.
Em particular, as assinaturas em anel misturam o endereço do remetente com um grupo de outros, fazendo com que seja exponencialmente mais difícil se estabelecer uma relação entre cada transação subsequente. Além disso, os endereços stealth gerados para cada transação tornam impossível que qualquer observador externo descubra o endereço do recipiente da transação. Por fim, o mecanismo das transações confidenciais em anel esconde a quantia sendo transferida.

### Conjunto de outputs

Ao contrário das criptomoedas transparentes, Monero não possui um conjunto de outputs não gastos (UTXOs). Todos os outputs visíveis na blockchain do Monero podem ou não já terem sido gastos.
Um output pode ser usado de três maneiras diferentes em uma transação no Monero:
* 1) Como output não gasto (UTXO) sendo gasto na transação (requer a chave privada do output)
* 2) Como output (gasto ou não gasto) sendo usado como output chamariz em uma assinatura em anel (não requer a chave privada do output ou autorização do usuário que possui a chave privada); ou
* 3) Como um output não gasto (UTXO) sendo criado como recompensa para um minerador.

### Imagem chave

A imagem chave é a tecnologia utilizada pelo Monero para evitar o gasto duplo, que é a terminologia usada para quando um mesmo output é usado mais de uma vez. As imagens chave são criadas pelo remetente da transação, e cada imagem chave é uma referência de sentido único para o output que realmente está sendo gasto na transação. Os mineradores mantém uma lista de todas as imagens chave que já foram usadas na história da moeda. Se uma imagem chave for reutilizada na rede, isso representa um gasto duplo, e a transação é rejeitada pelos mineradores.

### Chaves

O Monero possui dois conjuntos de chaves, um par de "chaves de visualização" (uma pública e uma privada) e um par de "chaves de gasto" (uma pública e uma privada).
A chave de visualização privada pode ser compartilhada de maneira separada, sendo útil para auditorias. Em vista disso, diz-se que o Monero tem privacidade por padrão e transparência opcional, ao contrário de outras criptomoedas que possuem transparência por padrão e privacidade opcional. Adicionalmente, a chave privada pode ser compartilhada para facilitar o processamento em dispositivos móveis, pois ela é necessária para calcular-se o saldo da carteira.

### Endereços

Os endereços públicos de Monero possuem 95 caracteres e começam com os prefixos 4 (endereços principais) ou 8 (subendereços) na mainnet e 9 ou A na testnet.

## Tecnologias de privacidade

Assim como o Bitcoin, o Monero usa uma blockchain pública, um livro de contabilidade aberto para qualquer pessoa ler, que registra todas as transações que já foram realizadas na história da moeda. No entanto, ao contrário do Bitcoin, a blockchain do Monero é opaca (não transparente), pois esconde informações que são importantes para a privacidade dos usuários: o output gasto pelo remetente, a quantia da transação e os endereços do destinatário e do remetente.

### Assinaturas em anel

As assinaturas em anel (ring signatures) escondem a informação de qual output foi gasto pelo remetente, fornecendo privacidade para o remetente. Elas estão presentes desde a primeira versão do Monero.
No Bitcoin, cada input da transação corresponde ao output (não gasto) que está sendo consumido na transação. No Monero, cada input da transação inclui um output verdadeiro (não gasto) e outros 10 outputs chamarizes (gastos ou não gastos), que são adicionados com o único objetivo de fornecer privacidade ao remetente. Estes outputs chamarizes são escolhidos na blockchain pelo software de carteira de maneira não interativa, e correspondem a outputs que foram usados em transações antigas na rede Monero, não necessariamente feitas pelo usuário que está criando a transação atual.
Ao investigar uma transação do Monero na blockchain, um observador externo consegue ver que cada input da transação inclui uma assinatura em anel com 11 outputs, mas não é possível saber qual destes outputs realmente está sendo gasto. Esta tecnologia fornece privacidade através de negação plausível, pois não é possível provar que alguém realmente gastou um dos diversos outputs usados da transação.
As assinaturas em anel são o ponto mais fraco na privacidade de Monero, pois se a privacidade dos outputs usados como chamarizes for comprometida, um observador externo conseguirá saber qual output foi realmente gasto na transação. A fim de contornar esta limitação, estudos já estão em andamento para aumentar a quantidade de outputs usados na assinatura em anel.

### Transações confidenciais em anel (RingCTs)

As transações confidenciais em anel (RingCTs) escondem a quantidade de moedas que são enviadas em cada transação. Criada originalmente com o nome de transações confidenciais (CT) pelo desenvolvedor do Bitcoin Core Gregory Maxwell, a tecnologia foi adaptada para o sistema de assinaturas em anel do Monero.

### Endereços stealth

A tecnologia dos endereços stealth fornece privacidade para o destinatário e para o remetente, pois evita que os endereços públicos dos usuários sejam registrados de maneira permanente na blockchain. Cada output da transação gera um novo endereço stealth de uso único, que apenas o destinatário consegue acessá-lo através de suas chaves privadas.

## Carteiras

Para poder interagir com a rede Monero o usuário precisa de um software de cliente (uma carteira de criptomoeda). O Projeto Monero produz a implementação de referência de uma carteira Monero. Essa implementação é composta por três partes:
* A carteira oficial com interface gráfica (GUI) permite que o usuário crie carteiras, administre contas, receba e envie transações através de uma interface gráfica.
* A carteira oficial com linha de comando (CLI) possui todas as funções do Monero, sendo recomendada para usuários mais avançados.
* O daemon principal do software (monerod) é responsável por ler a blockchain e reivindicar as transações dos usuários.
Todos os softwares produzidos pelo Projeto Monero possuem código fonte aberto e são licenciados com uma licença BSD, amplamente permissiva.
Além da implementação de referência, diversas outras carteiras suportam Monero. Entre as carteiras para celular e tablet incluem-se a Coinomi, Edge e Monerujo para Android, e a Cake Wallet, Coinomi, Edge e MyMonero para iOS.
Ainda existe uma carteira web chamada MyMonero que permite que os usuários interajam com a rede apenas utilizando um browser.
Algumas carteiras hardware já suportam a realização de transações com Monero. Entre elas incluem-se carteiras das fabricantes Trezor (Model T) e Ledger (Nano S e Nano X).

## História

O protocolo utilizado pelo Monero, chamado de CryptoNote, foi originalmente lançado em outubro de 2013 por um autor usando o pseudônimo Nicolas van Saberhagen.
O Monero foi originalmente lançado com o nome BitMonero por um usuário do fórum Bitcointalk conhecido como "thankful_for_today". O nome correspondia a uma composição de Bit (como em Bitcoin) e Monero (palavra que literalmente significa "moeda" no idioma Esperanto). Cinco dias depois, os apoiadores da moeda decidiram por usar apenas o nome Monero.
Em setembro de 2014, a moeda foi atacada por um usuário desconhecido que explorou uma falha no protocolo CryptoNote que permitia a criação de duas subchains que se recusavam a reconhecer a validade das transações uma da outra. Em seguida foi lançada uma correção para o CryptoNote, que foi implementada pelo Monero.
No ano de 2016 o Monero vivenciou um rápido crescimento na capitalização de mercado e no volume de transações, parcialmente devido à adoção da moeda pelo famoso mercado na darknet AlphaBay, que foi fechado em julho de 2017 pelas autoridades.
Em 10 de janeiro de 2017, a privacidade das transações no Monero foi fortalecida ainda mais através da adoção do algoritmo de Transações Confidenciais (CT) criado pelo desenvolvedor do Bitcoin Core Gregory Maxwell, o qual esconde a quantidade de moedas sendo transmitida em cada transação, além de uma versão melhorada das Assinaturas em Anel.
Em outubro de 2018 foi implementado o Bulletproofs, uma tecnologia que reduziu em cerca de 80% o tamanho das transações e reduziu o tempo de verificação.

## Usos

Monero é uma moeda legalizada e aceita amplamente por exchanges, serviços e comerciantes.
A viabilidade da mineração de Monero através de CPU tornou possível que hackers embutissem softwares de mineração em vírus, usando o equipamento e a eletricidade das vítimas para obterem ganho financeiro.
O Coinhive, uma implementação em JavaScript de Monero tornou possível embutir um minerador de Monero em um site de maneira que o CPU do visitante minere a criptomoeda enquanto o visitante está visualizando o conteúdo da página. Embora isso possa ser feito de maneira legítima, com o consentimento do usuário, fornecendo um modelo alternativo de financiamento, alguns sites fizeram isso sem o consentimento informado que fez com que muitos mineradores fossem bloqueados por extensões de browser e softwares de antivírus.
O Monero é também usado por usuários do Bitcoin para quebrar a relação entre as transações. Os usuários primeiro convertem bitcoins para Monero, e, após um certo tempo, eles convertem o Monero de volta em bitcoins para um novo endereço nunca utilizado anteriormente.
A moeda também é utilizada como meio de pagamento para pedidos de resgate de dados de vítimas de ransomware. Pesquisadores relataram que os operadores por trás do ataque global de ransomware WannaCry converteram para Monero os bitcoins que eles receberam de suas vítimas.
A viabilidade da mineração através da CPU faz com que agentes mal intencionados usem eletricidade e hardware de terceiros obtendo o retorno financeiro para si através de malware e outros aplicativos maliciosos.