O algoritmo de mineração CryptoNight é um algoritmo de mineração considerado especialmente eficiente para CPU e resistente a ASIC. Isto com o objetivo de permitir uma maior descentralização da mineração das criptomoedas que a aplicam, mas também, permitir que as referidas criptomoedas ofereçam opções avançadas de privacidade e anonimato.
Unenhum dos algoritmos de mineração mais populares é CryptoNight. Este algoritmo de mineração faz parte do conhecido protocolo de consenso CryptoNote. CryptoNight usa o esquema de mineração de Prova de Trabalho (PoW) para seu funcionamento, e busca oferecer uma alta dependência de CPU, resistindo ao ASIC, FPGA y GPU.
Sua principal característica é ser um algoritmo de hash muito rápido. Ele também permite boa escalabilidade e executa uma série de testes criptográficos que são extremamente dependentes da memória cache dos processadores da CPU. Mas não só isso, seu núcleo ou núcleo criptográfico trabalha em torno do algoritmo de criptografia AES, um algoritmo muito seguro e até considerado, em algumas versões, como criptografia de nível militar.
Tudo isso torna o CryptoNight um algoritmo de mineração muito focado na segurança e que tem sido seu principal veículo de sucesso no mundo da criptografia. Na verdade, o fato de que a criptomoeda Monero escolheu-o como o algoritmo hash para a prova de trabalho do consenso de seu blockchain, aumentou a visibilidade do CryptoNight e abriu um espaço para ele no mundo da criptografia.
Agora, qual é a história por trás do CryptoNight? Como funciona esse algoritmo interessante? Como sempre, você pode obter as respostas a essas e outras perguntas abaixo.
Origem do algoritmo CryptoNight
O desenvolvimento do CryptoNight pode ser rastreado até 12 de dezembro de 2012, quando o desenvolvedor Nicholas van Saberhagen apresentou o protocolo de consenso ao mundo CryptoNote. Nicolas van Saberhagen, é um nome fictício e a identidade do desenvolvedor é um enigma completo, a ponto de rivalizar com a de Satoshi Nakamoto. De fato, muitos especialistas acreditam que Nicolas van Saberhagen e Satoshi Nakamoto são a mesma pessoa. Daí o nome Satoshi van Saberhagen ter nascido, em referência a este possível fato.
Mas longe do campo da especulação, CryptoNote é uma realidade. O lançamento deste protocolo em uma data tão marcante (para ser preciso, 12/12/12) chamou a atenção da comunidade criptográfica. Isso ocorre porque o CryptoNote apresentava recursos avançados que prometiam coisas como transações confidenciais. Além de transações não vinculáveis, assinaturas de anel, transações menores e segurança aprimorada.
Mais tarde, em março de 2013, o Especificações completas da CryptoNight, o algoritmo de mineração que tornaria o CryptoNote uma realidade. Por trás desse desenvolvimento estão os desenvolvedores Seigen, Max Jameson, Tuomo Nieminen, Neocortex e Antonio M. Juarez.
O projeto CryptoNote e seu algoritmo de mineração foram inicialmente assumidos por Bytecoin (BCN), que o aplicou ao blockchain. Mas foi somente com a criação do Monero (XMR) que este projeto começou a ser amplamente conhecido no mundo da criptografia.
Como funciona o CryptoNight
CryptoNight funciona com base em uma série de propriedades que o tornam muito amigável para mineração de GPU. Essas propriedades são:
- Ele usa criptografia AES nativa. CPUs com recursos de aceleração de hardware para cálculos AES podem se beneficiar muito com isso e têm potencial de mineração superior.
- Uso de funções hash seguras, como Keccak e Blake-256.
- Ele usa um conjunto de multiplicadores rápidos de 64 bits. Por causa disso, as arquiteturas puras de CPU de 64 bits são altamente eficientes. Também é possível usá-lo em CPUs do tipo VLIW de 128 a 512 bits, onde o algoritmo pode tirar vantagem de pools de mineração paralela, aumentando o desempenho.
- Uso intensivo de caches de CPU. O algoritmo do CryptoNight ajusta o uso do cache para obter o máximo dele. Na verdade, quanto mais cache a CPU tiver, melhor será seu desempenho.
Se olharmos para esses quatro pilares, veremos que todos são muito centrados na CPU. Na verdade, algumas dessas funções são muito mais eficientes em uma CPU do que em qualquer outra estrutura computacional, incluindo ASICs. Isso é o que permite que o CryptoNight seja resistente a eles.
Mas é claro, esses são apenas os pilares e não a forma como o algoritmo funciona, explicaremos isso a seguir.
Iniciando o sistema hash
O trabalho do CryptoNight começa com a inicialização do seu espaço de trabalho. Para isso, o CryptoNight faz uso de uma série de primitivas criptográficas que são:
- Criptografia AES
- Função hash Keccak, que é usada como o principal veículo para geração de hash dentro do algoritmo.
- Função hash SHA-3. SHA-3 é uma função hash derivada de Keccak e é usada junto com BLAKE-256, Groestl-256, JH-256 e Skein-256 para fortalecer a geração de hashes de espaço de trabalho criptográfico CryptoNight.
Criação da chave AES e criptografia do hash Keccak
A parte mais importante do processo é a criação da chave AES. Isso é possível durante a primeira rodada de funções hash. Em primeiro lugar, o CryptoNight pega uma entrada de dados e a leva para a função Keccak. Para fazer isso, prepare uma função Keccak-1600 de 1600 bits. Em comparação, o Bitcoin e sua função hash SHA-256 usam palavras de 256 bits ou 64 caracteres. Enquanto Keccak-1600 produz hashes muito maiores, 1600 bits ou 400 caracteres em sua totalidade, com um tamanho de 200 bytes.
Em seguida, ele pega os primeiros 31 bytes desse hash Keccak-1600 e os transforma na chave de criptografia para um algoritmo AES-256, o valor mais alto da família AES. Para isso, esse pequeno pedaço de dados é criptografado em dez rodadas. O resto do hash é criptografado usando AES-256 e também passa por uma rodada de 10 ciclos de criptografia.
O restante das informações é então obtido do hash Keccak e criptografado usando AES-256. Este processo gera uma grande quantidade de dados que são enviados para o espaço de trabalho ou bloco de notas do CryptoNight. Após a conclusão deste processo, o espaço de trabalho CryptoNight foi preparado e o ciclo de geração de hash começa.
Geração final de hash
Agora, os dados coletados por essas ações alimentam o núcleo das funções hash. Como dissemos, o principal é o Keccak, ao qual se juntam BLAKE-256, Groestl-256, JH-256 e Skein-256.
O que o CryptoNight faz é pegar todo o conjunto de dados criado pelas funções AES-256 e Keccak na etapa anterior e passá-lo pelo resto das funções hash. No final, você obtém um hash final, que é o resultado da prova de trabalho do CryptoNight. Esse hash tem 256 bits ou um total de 64 caracteres.
Prós e contras do algoritmo
Prós
- Altamente personalizável. Dados como o alvo de mineração e a dificuldade podem ser ajustados entre blocos sem que eles representem um perigo para a segurança da rede.
- Ele se concentra na CPU. Isso torna a mineração usando ASICs complexa e cara.
- É extremamente seguro no nível criptográfico. O uso do AES-256 e a união de técnicas de criptografia e funções hash de forma específica garantem que um alto nível de segurança sempre será obtido.
- É energeticamente eficiente e computacionalmente falando.
- Para o nível de segurança fornecido, o tamanho dos resultados do teste criptográfico do CryptoNight é pequeno. Isso permite maximizar o número de transações dentro dos blocos.
- Dada a forma como o CryptoNight lida com as informações para os blocos de mineração, existe a possibilidade de criar transações não rastreáveis nativamente.para. Na verdade, Monero foi capaz de construir essas transações graças ao CryptoNight.
Contras
- A capacidade de resistência ASIC não é mais viável. Isso porque os ASICs foram capazes de se adaptar à mineração para este algoritmo com grande eficiência.
- CryptoNight é um algoritmo extremamente complexo e difícil de auditar. Por esse motivo, os desenvolvedores possuem uma grande curva de complexidade para verificar possíveis erros neste algoritmo.
- O uso de instruções específicas da CPU, como AES, pode fazer com que o algoritmo seja atacado lateralmente. Existe a possibilidade de exploração de vulnerabilidades dentro do processador (como é o caso do TSX ou falhas como Spectre/Meltdown) que podem quebrar a segurança do algoritmo e assim minar a segurança da blockchain que utiliza esse algoritmo de mineração.
Quanto você sabe, cryptonuta?
O abandono do desenvolvimento do CryptoNight significa que ele não é mais um algoritmo seguro?VERDADEIRO!
O abandono do CryptoNight em favor do RandomX por Monero (a principal comunidade de desenvolvimento), gradualmente tornará o CryptoNight um algoritmo inseguro. Se alguma vulnerabilidade ou falha for descoberta, ela pode não ser corrigida e, em vez disso, alguns projetos que fazem uso do CryptoNight certamente farão o salto de outros protocolos mais seguros com manutenção ativa.
Evolução CryptoNight
CryptoNight é um dos poucos algoritmos criptográficos que sofreu grandes modificações ao longo de sua história. Desde o lançamento da versão 1, demonstrado em seu whitepaper, até a criação do CryptoNight-R, a última versão do CryptoNight desenvolvida pela Monero.
Apesar disso, as mudanças e novas versões do CryptoNight têm como objetivo impedir que a mineração ASIC arruine o esforço do algoritmo para oferecer resistência. Mas cada nova mudança na estrutura para esse fim adiciona mais complexidade e mais pontos de falha. Esta foi a principal razão pela qual seu desenvolvimento foi interrompido (pelo menos por Monero, seu membro mais importante na comunidade).
Portanto, por enquanto, podemos dizer que CryptoNight é um algoritmo que atingiu o pico de sua evolução para evitar que os ASICs explorem este algoritmo abertamente.
Blockchains que usam o algoritmo
Bytecoin (BTN) é o primeiro blockchain a usar o CryptoNight. O próximo blockchain a ser usado foi o Monero e, de fato, é onde esse algoritmo foi mais desenvolvido. No entanto, Monero abandonou este algoritmo em favor de RandomX, uma evolução completa do CryptoNight que é altamente resistente a ASIC, e será por pelo menos um longo tempo.
Outro blockchain que o CryptoNight usa é o Electroneum (ETN), projetado para que os dispositivos móveis possam servir como nós completos e nós de mineração.