La función de prueba de trabajo de Nervos CKB – Nervos Network

Nervos CKB utiliza una variante del Nakamoto Consensus de Bitcoin para lograr un consenso sobre los derechos de gasto de los participantes de la red. Con este mecanismo, cualquier nodo puede proponer actualizaciones del estado del sistema, denominadas bloques, siempre que a) el bloque sea válido; yb) el proponente ha resuelto un acertijo computacionalmente difícil llamado prueba de trabajo. Los nodos que continuamente intentan resolver el enigma para proponer el siguiente bloque se llaman mineros, y son recompensados ​​cuando tienen éxito. El consenso de Nakamoto reduce la seguridad de la red frente a los ataques que implican volver a escribir la historia, a una suposición sobre la distribución del poder computacional, es decir, que más del 50% está en manos de mineros honestos.

El rompecabezas de la prueba de trabajo se define en términos del bloque que se propone; esto garantiza que la solución al rompecabezas identifique de forma única un bloque. Específicamente, cada bloque tiene un único block_header, que autentica una selección de transacciones y testigos en la cola para confirmar. Tradicionalmente, el rompecabezas de la prueba de trabajo consiste en encontrar un nonce válido tal que

H (nonce || block_header) <= t.

En esta expresión,

t es el parámetro de dificultad, que se ajusta periódicamente para regular el tiempo promedio hasta el siguiente bloque; || representa la concatenación de cadenas de bits; nonce es una cadena de bits aleatorios; H es una función criptográfica de hash unidireccional.

Esta función hash H sirve para varios usos.

Dado que H es público, cualquier nodo en la red puede verificar si un nodo propuesto es válido simplemente evaluando la desigualdad. Además, cualquier nodo puede optar por convertirse en un minero sin permiso autoritario. Como H es difícil de predecir, la mejor estrategia del minero es adivinar los factores aleatorios e intentar nuevamente con uno nuevo hasta que se satisfaga la desigualdad. El efecto es que las recompensas del minero están vinculadas a su participación en el poder computacional dedicado a proteger la red.

Para Bitcoin, la función hash H es SHA2–256 repetida dos veces. En retrospectiva, la opción de iterar esta función dos veces parece un poco paranoica: casi dos décadas de criptoanálisis no han producido ataques significativos. Sin embargo, en el momento en que se propuso Bitcoin, estaba claro que el SHA1 se estaba resquebrajando y estaba a punto de romperse, el SHA2 era mucho más nuevo, y la competencia de SHA3 estaba en marcha para reemplazarlo si también debía romperse.

Si bien la definición del rompecabezas de prueba de trabajo en términos de SHA2 fue una buena opción para Bitcoin, no ocurre lo mismo con las criptomonedas que vienen más adelante. Se desarrolló una gran cantidad de hardware dedicado para explotar Bitcoin, y desde entonces se ha vuelto obsoleto por un hardware mejorado. Una nueva criptomoneda que use el mismo rompecabezas de prueba de trabajo volverá a ser útil para el hardware obsoleto. Incluso los equipos que no están obsoletos se pueden alquilar y reutilizar para extraer la nueva moneda. Como resultado, la distribución de la energía minera es muy difícil de predecir y es susceptible de cambios grandes y repentinos. El mismo argumento se aplica a las optimizaciones algorítmicas adaptadas a SHA2 que pueden hacer que el cómputo del software de la función sea más barato, en lugar de soluciones basadas en hardware para abaratar la evaluación basada en hardware.

Para una nueva criptomoneda, tiene sentido definir el rompecabezas de la prueba de trabajo en términos de una función de prueba de trabajo que aún no ha sido utilizada por otras criptomonedas. Para Nervos CKB, fuimos un paso más allá y decidimos definirlo en términos de una función de prueba de trabajo que no podría haber sido objeto de una optimización prematura porque es nueva.

La indisponibilidad prevista del hardware de minería solo debe describir la situación inicial. A largo plazo, la presencia de hardware de minería dedicado es algo bueno porque ayuda a dificultar un ataque de red. Una buena función de prueba de trabajo para una nueva criptomoneda es, por lo tanto, nueva y simple; La segunda propiedad reduce la barrera para el desarrollo de hardware.

La seguridad es el tercer objetivo de diseño obvio. Si bien una vulnerabilidad conocida podría ser explotada por todos los mineros por igual y solo se traduciría en una mayor dificultad, una vulnerabilidad no revelada podría llevar a una optimización de la minería, proporcionando a los descubridores de la vulnerabilidad una ventaja en exceso de su cuota de poder minero contribuido. La mejor manera de evitar esta situación es hacer un fuerte argumento para la invulnerabilidad.

Aquí es donde entra la canción de Águila.

Eaglesong es una nueva función hash desarrollada específicamente para la prueba de trabajo Nervos CKB, pero también es adecuada en otros casos de uso donde se necesita una función hash segura. Los criterios de diseño fueron exactamente estos: novedad, simplicidad y seguridad. Queríamos un diseño que al mismo tiempo fuera lo suficientemente novedoso como para constituir un pequeño paso hacia adelante para la ciencia, así como lo suficientemente cerca de los diseños existentes para hacer posible un argumento de seguridad sólido y aceptable. Con este fin, decidimos crear una instancia de la construcción de la esponja (igual que Keccak / SHA3) con una permutación construida a partir de las operaciones ARX (adición, rotación y xor – ¡simple!), Y presentar un argumento para su seguridad basado en la estrategia de senderos amplios. (mismo argumento subyacente a la AES). Según nuestro conocimiento, Eaglesong es la primera función de hash (o función, en realidad) que combina con éxito los tres principios de diseño. Para más detalles sobre el diseño y las opciones de diseño de Eaglesong, nos remitimos al documento, que se publicará pronto. Tenga en cuenta que las especificaciones para Eaglesong como la función de prueba de trabajo para Nervos CKB difieren ligeramente (de una manera que no afecta el análisis de seguridad de la función); Para estas especificaciones nos referimos al RFC.

¿Qué significa seguridad exactamente? La propiedad que hace que una función hash sea adecuada para un rompecabezas de prueba de trabajo como el que se describe aquí se denomina unidireccional de objetivos múltiples. Esta propiedad se define con respecto a un juego en el que el adversario recibe una lista de objetivos, y gana si puede producir una única preimagen bajo H para cualquiera de los objetivos. Una función H tiene esta propiedad si ningún adversario puede hacerlo mejor que la prueba y el error. Sin embargo, las funciones hash generalmente poseen otras propiedades, como resistencia a la segunda imagen, resistencia a la colisión e intratabilidad de la correlación. Un ataque en una propiedad no se traduce automáticamente en un ataque en otra propiedad. Como resultado, es metodológicamente acertado crear una instancia de un rompecabezas de prueba de trabajo con una función que solo es un objetivo múltiple en un solo sentido. Sin embargo, en el diseño de Eaglesong, establecemos el número de rondas de tal manera que la permutación resultante sería indistinguible de una permutación aleatoria dada la cantidad permitida de trabajo. Una consecuencia del marco de la esponja es que la función resultante posee todas las propiedades de seguridad asociadas típicamente con las funciones hash.

Para obtener más detalles, consulte el RFC completo: https://github.com/nervosnetwork/rfcs/pull/129

Capturando la majestuosa llamada de un águila, este cuerno místico brinda una destreza ilimitada a quienes la escuchan.

A %d blogueros les gusta esto: