El algoritmo de minería CryptoNight es un algoritmo de minería concebido para ser singularmente eficaz en CPU y resistente a ASIC. Esto con el propósito de permitir una mayor descentralización de la minería de las criptomonedas que lo apliquen, mas asimismo, dejar que dichas criptomonedas puedan ofrecer avanzadas opciones de privacidad y anonimato.

Uno de los algoritmos de minería más conocidos es CryptoNight. Este algoritmo de minería, es una parte del conocido protocolo de acuerdo CryptoNote. CryptoNight emplea el esquema de minería de Prueba de Trabajo (PoW) para su funcionamiento, y busca ofrecer una alta dependencia de las CPU, resistiendo a los ASIC, FPGA y GPU.

Su primordial característica es que es un algoritmo de hash rapidísimo. Además de esto deja una buena escalabilidad y efectúa una serie de pruebas criptográficas que son exageradamente dependientes de la memoria caché de los procesadores CPU. Mas no solo eso, su core o bien núcleo criptográfico trabaja alrededor del algoritmo de cifrado AES, un algoritmo segurísimo e inclusive considerado, en ciertas versiones, como cifrado de nivel militar.

Todo esto hace de CryptoNight un algoritmo de minería muy enfocado en la seguridad y ese ha sido su primordial vehículo al éxito en el planeta cripto. En verdad, el hecho de que la criptomoneda Monero lo escogiésemos como algoritmo hash para la prueba de trabajo del acuerdo de su blockchain, fortaleció la visibilidad de CryptoNight y le abrió un espacio en el criptomundo.

Ahora bien ¿Cuál es la historia tras CryptoNight? ¿De qué manera marcha este interesante algoritmo? Como siempre y en todo momento vas a poder conseguir las contestaciones a estas y otras preguntas ahora.

Origen del algoritmo CryptoNight

El desarrollo de CryptoNight se puede rastrear hasta 12 de diciembre 2012, cuando el desarrollador Nicolas van Saberhagen presentó al planeta el protocolo de acuerdo CryptoNote. Nicolas van Saberhagen, es un nombre falso y la identidad del desarrollador es un completo misterio, hasta el punto que rivaliza con la de Satoshi Nakamoto. En verdad, muchos especialistas piensan que Nicolas van Saberhagen y Satoshi Nakamoto son exactamente la misma persona. De allá que haya nacido el nombre de Satoshi van Saberhagen, en referencia a este posible hecho.

Pero lejos del campo de la especulación, CryptoNote es una realidad. El lanzamiento de este protocolo en una data tan atractiva (para ser precisos, el 12/12/12)  llamó la atención de la criptocomunidad. Esto debido a que CryptoNote presentaba funciones avanzadas que prometían cosas como transacciones confidenciales. Aparte de transacciones no enlazables, firmas de anillos, transacciones de menor tamaño y una seguridad reforzada.

Más tarde en el mes de marzo de dos mil trece, nacería la especificación completa de CryptoNight, el algoritmo de minería que dejaría hacer una realidad a CryptoNote. Tras este desarrollo están los desarrolladores Seigen, Max Jameson, Tuomo Nieminen, Neocortex y Antonio M. Juarez.

El proyecto de CryptoNote y su algoritmo de minería fue tomado en un inicio por Bytecoin  (BCN) quienes lo aplicaron a su blockchain. Mas no fue hasta la creación de Monero (XMR) que este proyecto empezó a ser conocido extensamente en el criptomundo.

Whitepaper de CryptoNote el origen de CryptoNight

Funcionamiento de CryptoNight

El funcionamiento de CryptoNight se fundamenta en una serie de propiedades que lo hacen muy afable para la minería por GPU. Estas propiedades son:

  1. Utiliza cifrado AES nativo. Las CPU con capacidad de aceleración por hardware para cálculos AES pueden verse con fuerza favorecidas por este hecho y tener un potencial de minería superior.
  2. Uso de funciones hash seguros, como Keccak y Blake-doscientos cincuenta y seis.
  3. Utiliza un conjunto de multiplicadores veloces de sesenta y cuatro bits. Debido a esto, las arquitecturas de CPU de sesenta y cuatro bits puras, son enormemente eficaces. Asimismo es posible emplearlo sobre CPUs del tipo VLIW de ciento veintiocho a quinientos doce bits, donde el algoritmo podría sacar partido de conjuntos de minería paralelas incrementando el desempeño.
  4. Utilización intensiva de memorias caché de la CPU. El algoritmo de CryptoNight ajusta su empleo de cache para sacar el máximo al mismo. En verdad, cuanto más caché tenga el CPU mejor desempeño va a tener.

Si observamos estos 4 pilares, vamos a ver que todos están muy centrados en la CPU. En verdad, ciertas de esas funciones son considerablemente más eficaz sobre un CPU que sobre cualquier otra estructura computacional, entre ellos los ASIC. Esto es lo que deja que CryptoNight sea resistente a exactamente los mismos.

Pero claro, esto son solo los pilares y no la manera en de qué forma marcha el algoritmo, eso lo vamos a explicar ahora.

Iniciando el sistema de hash

El trabajo de CryptoNight empieza con la inicialización de su espacio de trabajo. Para esto CryptoNight usa una serie de primitivas criptográficas que son:

  1. Cifrado AES
  2. Función hash Keccak, que es utilizada como vehículo primordial de generación de hash en el algoritmo.
  3. Función hash SHA-tres. SHA-tres es una función hash derivada de Keccak, y es empleada al lado de BLAKE-doscientos cincuenta y seis, Groestl-doscientos cincuenta y seis, JH-doscientos cincuenta y seis y Bobina-doscientos cincuenta y seis para robustecer la generación de los hash del espacio de trabajo criptográfico de CryptoNight.

Creación de la clave AES y cifrado del hash Keccak

La parte más esencial del proceso es la creación de la clave AES. Esto es posible a lo largo de la primera ronda de funcionamiento de las funciones hash. Primeramente, CryptoNight toma una entrada de datos y lo lleva a la función Keccak. Para esto, prepara una función Keccak-mil seiscientos de mil seiscientos bits de ancho.  En comparación, Bitcoin y su función hash SHA-doscientos cincuenta y seis utiliza palabras de doscientos cincuenta y seis bits o bien sesenta y cuatro caracteres. Al paso que Keccak-mil seiscientos genera hashes considerablemente más grandes, de mil seiscientos bits o bien de cuatrocientos caracteres en su totalidad, con un tamaño de doscientos bytes.

Luego toma los primeros treinta y uno bytes de este hash Keccak-mil seiscientos, y los convierte en la clave de cifrado para un algoritmo AES-doscientos cincuenta y seis, el de mayor valor en la familia AES. Para esto este pequeño fragmento de datos es cifrado en diez rondas. El resto del hash se cifra utilizando AES-doscientos cincuenta y seis y se somete asimismo a una ronda de diez ciclos de cifrados.

Posteriormente se toma el resto de información del hash Keccak y se cifra utilizando AES-doscientos cincuenta y seis. Este proceso produce una gran cantidad de datos que entonces son mandados al espacio de trabajo o bien scratchpad de CryptoNight. Al acabar con este proceso, el espacio de trabajo de CryptoNight se ha preparado y empieza el ciclo de generación del hash.

Generación del hash final

Ahora bien los datos recogidos por estas acciones nutren el core o bien núcleo de funciones hash. Como afirmamos la primordial es Keccak, a las que se les une BLAKE-doscientos cincuenta y seis, Groestl-doscientos cincuenta y seis, JH-doscientos cincuenta y seis y Bobina-doscientos cincuenta y seis.

Lo que hace CryptoNight es tomar todo el conjunto de datos creado por las funciones AES-doscientos cincuenta y seis y Keccak en el paso precedente, y lo pasa por el resto de funciones hash. Al final se consigue un hash final, que es el resultado de la prueba de trabajo de CryptoNight. Este hash tiene una extensión de doscientos cincuenta y seis bits o bien un total de sesenta y cuatro caracteres.

Pros y contras del algoritmo

Pros

  1. Altamente personalizable. Datos como el objetivo de minería y la complejidad pueden ser ajustados entre bloques sin que signifique un riesgo para la seguridad de la red.
  2. Se centra en la CPU. Esto causa que la minería utilizando ASIC sea compleja y costosa de efectuar.
  3. Es exageradamente seguro a nivel criptográfico. El empleo de AES-doscientos cincuenta y seis y la unión de técnicas de cifrado y funciones hash de forma determinas aseguran que siempre y en toda circunstancia se conseguirá un elevado nivel de seguridad.
  4. Es eficaz energética y computacionalmente hablando.
  5. Para el nivel de seguridad proporcionado, el tamaño de los resultados de las pruebas criptográficas de CryptoNight es pequeño. Esto deja aumentar al máximo el número de transacciones en los bloques.
  6. Dada la manera en como CryptoNight maneja la información para minar bloques, existe la posibilidad de crear transacciones no rastreables de forma nativa. En verdad, Monero pudo edificar estas transacciones merced a CryptoNight.

Contras

  1. La capacidad de resistencia a ASIC ya no es factible. Esto es dado a que los ASIC pudieron amoldarse para conseguir minar para este algoritmo con gran eficacia.
  2. CryptoNight es exageradamente complejo y bastante difícil de auditar. Por tal razón, los desarrolladores tienen una enorme curva de dificultad para comprobar los posibles fallos de este algoritmo.
  3. El empleo de instrucciones CPU concretas como AES, puede llevar a que el algoritmo pueda ser atacado lateralmente. Existe la posibilidad de explotar vulnerabilidades en el procesador que puedan romper la seguridad del algoritmo.

¿Cuánto sabes, criptonauta?

¿El abandono del desarrollo de CryptoNight quiere decir que dejase de ser un algoritmo seguro?

Evolución de CryptoNight

CryptoNight es de los pocos algoritmos criptográficos que ha sufrido grandes cantidades de modificaciones durante su historia. Desde la aparición de la versión 1, probada en su whitepaper, hasta la creación de CryptoNight-R, la última versión de CryptoNight desarrollada por Monero.

Pese a ello, los cambios y nuevas versiones de CryptoNight se dirigen a eludir que la minería por ASIC echase por tierra el ahínco del algoritmo por ofrecerle resistencia. Mas cada nuevo cambio en la estructura con ese fin, añade más dificultad y más puntos de fallos. Esta fue la primordial razón por la que su desarrollo se detuvo (cuando menos por la parte de Monero, su más esencial miembro en la comunidad).

Así que de momento podemos decir que CryptoNight es un algoritmo que ha llegado al punto máximo de su evolución para eludir que los ASIC puedan explotar este algoritmo de manera abierta.

Blockchains que emplean el algoritmo

Bytecoin (BTN) es la primera blockchain en emplear CryptoNight. La próxima blockchain en utilizarlo fue Monero, y en verdad, es donde más se ha desarrollado este algoritmo. No obstante, Monero ha descuidado este algoritmo a favor de RandomX, una evolución completa de CryptoNight que es enormemente resistente a ASIC, y que lo va a ser por por lo menos un buen tiempo.

Otra blockchain que emplea CryptoNight es Electroneum (ETN), la que está concebida para que los dispositivos móviles puedan servir de nodos completos y nodos de minería.