¿Hay alguna forma de hacer que la criptomoneda del algoritmo de prueba de trabajo haga algo útil como la simulación de plegado de proteínas?

Esta es una de las buenas preguntas relacionadas con las criptomonedas que se preguntan aquí. Después de todo, ¿por qué gastar tanta energía haciendo un cálculo aleatorio para obtener una prueba de trabajo en lugar de hacer un cálculo que en realidad puede ayudar a encontrar el (los) número (s) primo (s) más grande (s), digamos? Respondería esto de manera superflua para que la gente tome conciencia de las posibles implicaciones y aplicaciones de la tecnología blockchain más allá de la criptomoneda trillada.

Primero veamos qué es exactamente la prueba de trabajo . Prueba de trabajo simplemente es información que es difícil de producir pero fácil de verificar. Bitcoin blockchain usa un tipo específico de algoritmo de prueba de trabajo conocido como hashcash [1].

Funciona como este ejemplo a continuación. Existe un concepto de nonce criptográfico que es un número único que se utilizará de forma incremental para la generación de hash y la prueba subsiguiente. Digamos que generó un hash usando el algoritmo SHA256 (ya que bitcoin usa SHA256 – también puede usar otros algos) para ‘mi nombre es abhinav’ y obtiene ‘d2666cfe170b1a4ffcc006c0f6ee7fa45668284265be293ef5a0a66971397431’. Usted puede verificarlo aquí [2]

El problema que estos mineros están resolviendo detrás de la escena para blockchain es similar a encontrar el nonce que cuando se agrega a ‘mi nombre es abhinav’ (= ‘mi nombre es abhinav < nonce >’) produce SHA256 hash que contiene 5 ceros al inicio. Si intenta lo siguiente, obtendrá SHA256 hash como:

  • ‘mi nombre es abhinav1’ -> 0b8526f87955c4cf29d26c4b53c1954ffe20075cd3eb5028f676ada547e248e1
  • ‘mi nombre es abhinav2’ -> 7a70d878130126267164ff5239fc84a562b996d85b6344557b46895b557cbadb
  • ‘mi nombre es abhinav3’ -> e44b6b0a4f978a4af6b396f13df4ad8ac18cad135eb6c638c47765a53fb29878

Tienes que mantenerte en esta generación aleatoria y validación hasta el momento en que obtengas 5 ceros en el hash, como algo como ‘00000cfe170b1a4ffcc006c0f6ee7fa45668284265be293ef5a0a66971397431’.

Cuando su computadora puede hacer eso, usted como minero le ha dado la prueba del trabajo. Te llevaría una cantidad de intentos llegar allí.

Ahora observe el tipo de tarea que es congruente con la tecnología blockchain, una tarea que es repetitiva ( básicamente una tarea en la que debe someterse al mismo tipo de trabajo que con toda probabilidad tiene un nivel de dificultad similar para que sepa cuánto tiempo se necesita resolver ), y una tarea que tiene un bajo nivel de comunicación entre procesos para que los nodos puedan trabajar independientemente al hacerlo. Para bitcoin, el tiempo de resolución es de alrededor de 10 minutos y para Ethereum es de alrededor de 15 segundos, si no estoy equivocado.

Por lo tanto, según la lógica actual detrás de blockchains, tales tareas deben tener factibilidad de paralelización como SETI [3] (Búsqueda de Inteligencia Extraterrestre), tareas relacionadas con algoritmos genéticos, etc. De hecho, estas organizaciones (como SETI) sí usan lógica de computación distribuida en la que se basa la tecnología blockchain, es decir, puede descargar su software y buscar vida extraterrestre con ellos. De hecho, algunos de ellos también recompensan los nodos participantes si su nodo (computadora) pudo resolver algún problema.

Sin embargo, antes de instituirse el blockchain, el problema del doble gasto no se resolvió, por lo que los tokens, incluso si pudieran haberse generado en estas organizaciones informáticas distribuidas, nunca se habrían convertido en una criptomoneda que ahora es toda una locura.

De hecho, creo que usando la plataforma de Ethereum [4] dapps actualmente es factible construir un sistema de tokens que permita cálculos genuinos de los mineros y puntos de control seleccionados al azar como prueba de los cálculos correctos.

Y, por supuesto, sí, si actualmente observa el trabajo de computación distribuida que simula la proteína [5] está en línea con el tipo de tareas que pueden reemplazar el proceso de prueba de trabajo tal como está constituido. Incluso si tales tareas realmente útiles no estuvieran completamente en línea con la predictibilidad de la dificultad de cálculo, también puede haber una combinación de varias tareas de este tipo combinadas al azar con prueba de trabajo / prueba de participación que se puede hacer funcionar con blockchain y hacer maravillas para la humanidad también.

Gracias por hacer esta pregunta.

Notas a pie de página

[1] Hashcash – Wikipedia

[2] Calculadora hash SHA-256

[3] SETI @ home

[4] Proyecto Ethereum

[5] https://www.google.co.in/url?sa=…

Depende de si “algo útil” requiere una comunicación rápida entre los procesadores y si el tiempo de ejecución del trabajo en el mundo real es importante.

Para el plegamiento de proteínas específicamente, el trabajo se realiza en sistemas que utilizan miles de núcleos de cómputo (hoy en formato GPU, con menos CPU que manejan múltiples GPU de computación científica de alto rendimiento, generalmente compatible con NVIDIA CUDA) que requieren una transferencia de datos muy rápida. Así que los sistemas dedicados para esta aplicación ganan y son más baratos y más potentes que nunca.

Pero si la computación no necesita hablar rápidamente entre procesadores, y usted no es quisquilloso acerca de cuándo se hace el trabajo, entonces tal vez.

probablemente sí, pero el problema en cuestión debe ser difícil de resolver pero fácil de verificar, tener una dificultad ajustable, y la distribución del nuevo trabajo debe hacerse de una manera segura y justa. Ha habido monedas que utilizan el cálculo de primos largos como prueba de trabajo, como Primecoin, pero realmente no captaron …

Además, la naturaleza competitiva de la prueba de trabajo tendrá un montón de trabajo desechado, por lo que no será tan económico como contratar / comprar la cantidad equivalente de potencia de procesamiento.