¿Hay alguna manera de configurar sistemas de prueba de trabajo para que sean aún más útiles?

Uno de los argumentos en contra de las opciones de diseño de Bitcoin es que desperdicia recursos al autenticar transacciones. En particular, encontrar pequeños hashes es completamente inútil para el mundo.

¿Existen enfoques (u otras criptomonedas) que utilicen la prueba de trabajo al trabajar en algún problema útil y difícil? Hay muchos proyectos como SETI@home o Folding@home que distribuyen cálculos difíciles pero potencialmente útiles entre diferentes usuarios, ¿hay alguna manera de usar cálculos tan útiles para construir un sistema de prueba de trabajo en una moneda criptográfica, o es ¿Existe una razón fundamental (económica o computacional) por la que una prueba de trabajo debe implicar trabajo inútil?

Esta pregunta no es válida; inútil es arbitrario. Lo que estás describiendo como inútil es útil. El sistema de prueba de trabajo en su lugar permite una distribución uniforme de bitcoins
@ user9704 Establecí un criterio claro de lo que entiendo por trabajo útil. Es decir, trabajo que proporciona utilidad fuera de las simples interacciones de autenticación.
@Serith No estoy de acuerdo con su cambio de título a esta pregunta. Hay algunos usuarios que se sienten ofendidos por mi uso de la palabra 'inútil', pero realmente la uso en el entorno de la computación que es inútil para cosas excepto bitcoin. Sería mejor editar mi pregunta para aclarar esto en lugar de hacer que la pregunta en sí sugiera que el sistema de prueba de trabajo actual está realizando un cálculo útil y no solo desperdiciando ciclos para autenticarse.
NooShare es una propuesta de este tipo: reddit.com/r/Bitcoin/comments/pve08/…
@ripper234: considere poner esta respuesta como respuesta, con un poco más de detalle. Esta es, con mucho, la mejor respuesta, que responde correctamente a la pregunta. Es una pena que esté escondido en los comentarios.
@RaphaelJolivet - hecho. bitcoin.stackexchange.com/a/9395/78

Respuestas (13)

Creo que la premisa de la pregunta no es correcta. El trabajo no es inútil, asegura las transacciones. La cadena de hash pública garantiza que los Bitcoins solo se pueden gastar una vez. El mecanismo acumula cálculos sobre transacciones legítimas para que el destinatario sepa que un atacante necesitaría al menos la misma capacidad informática para "deshacer" la transacción.

Actualmente no existe una forma conocida de hacer que el trabajo sea más útil. El problema es que el objetivo principal de asegurar las transacciones impone una serie de requisitos en el trabajo realizado:

  1. El trabajo debe ser mucho, mucho más fácil de verificar que de hacer. Así que básicamente tiene que consistir en buscar algo raro, haciendo miles de millones de búsquedas para probar si una entrada tiene una característica particular. De esa manera, la verificación simplemente requiere confirmar que la entrada que encontró tiene esa característica.
  2. De hecho, la obra debe asegurar las transacciones y no ser separable de ellas. Si veo que me envió 10 Bitcoins y luego se acumulan miles de millones de cálculos encima de eso, no debe ser posible eliminar esa transacción y luego acumular esos mismos cálculos encima de una transacción en conflicto. Por lo tanto, no puede usar el resultado de un trabajo arbitrario para probar el trabajo en la cadena de Bitcoin.

Es difícil imaginar cualquier trabajo útil adicional que pueda realizarse sin dejar de cumplir estos requisitos.

Creo que el título de la pregunta es un poco engañoso y debería cambiarse a "¿Hay alguna manera de configurar sistemas de prueba de trabajo para que sea aún más útil?"
¿Qué hay de encontrar números primos? Eso debería al menos cumplir con el criterio 1. Sin embargo, no sé qué tan útil es.
@David: ¿Cómo es útil encontrar números primos adjuntos a las transacciones de Bitcoin?
@DavidSchwartz Me refería a encontrar nuevos números primos, que no se habían descubierto anteriormente.
Encontrar números primos es la base detrás de Primecoin. Encontrar números primos es útil hasta cierto punto.
No puedo responder porque no tengo suficiente reputación, pero hay este artículo sobre el tema: eprint.iacr.org/2017/203.pdf

Primecoin es el primero:

Se introduce un nuevo tipo de prueba de trabajo basada en la búsqueda de números primos en los diseños de criptomonedas peer-to-peer. Tres tipos de cadenas principales conocidas como cadena Cunningham de primer tipo, cadena Cunningham de segundo tipo y cadena bi-gemela se califican como prueba de trabajo. La cadena principal está vinculada al hash de bloque para preservar la propiedad de seguridad de Bitcoin de Nakamoto, mientras que un esquema de evaluación de dificultad continua está diseñado para permitir que la cadena principal actúe como prueba de trabajo de dificultad ajustable en una criptomoneda similar a Bitcoin.

Consulte http://ppcoin.org/primecoin

Uno puede cuestionar el uso de conocer las cadenas de números primos de Cunningham, pero podría decirse que es más útil que encontrar hashes con secuencias de ceros. Y, a menudo, con las matemáticas, el uso práctico solo se encuentra más tarde. (Incluso hay un premio en metálico involucrado: "$250,000 para el primer individuo o grupo que descubra un número primo con al menos 1,000,000,000 de dígitos decimales", de la EFF, nada menos, https://www.eff.org/awards/coop )

Aquí hay un artículo detallado sobre esta pregunta: Pregúntale a Ars: ¿Por qué gastar tiempo y dinero en encontrar nuevos números primos?

Sobre todo, ahora que hay una moneda matemáticamente útil, probablemente seguirán más.

Curecoin es otro enfoque muy interesante, con minería fusionada. 45 % de monedas nuevas para mineros SHA, para seguridad de cadena de bloques, 45 % para potencia de GPU/CPU de plegamiento de proteínas. 10% se destina al desarrollo.

¿Por qué es útil conocer una cadena de Cunningham?
@Nick, estoy totalmente de acuerdo contigo. ¿Cuál es el punto de? No veo cómo las cadenas de Cunningham son más útiles que los hashes SHA256.
Las cadenas @NickODell Cunningham ahora se consideran útiles en los sistemas criptográficos ya que "proporcionan dos configuraciones adecuadas simultáneas para el sistema criptográfico ElGamal... [que] se pueden implementar en cualquier campo donde el problema del logaritmo discreto es difícil". en.wikipedia.org/wiki/Cunningham_chain
@Janus Troelsen ¿Exactamente cuántos de estos serían útiles y para qué? ¿Los usaríamos para asegurar la comunicación? ¿Escribir artículos interesantes? No veo un argumento convincente aquí, pero estoy dispuesto a escuchar uno.
Un poco similar a Curecoin, también está Gridcoin , usando lo que ellos llaman " prueba de investigación ". A diferencia de Curecoin, Gridcoin permite no solo trabajar en el plegamiento de proteínas, sino también en múltiples tareas del proyecto de computación distribuida BOINC .

NooShare es una idea para:

un libro mayor descentralizado similar a Bitcoin con la característica novedosa de que sus pruebas de trabajo son iteraciones de cadenas Markov-Chain Monte-Carlo (MCMC) esencialmente arbitrarias, cuya programación se puede comprar utilizando la moneda misma. Es una base económica novedosa para compartir recursos computacionales en barbecho.

No sé si pasó la fase de diseño inicial, pero vale la pena leerlo.

Eso suena interesante, pero ¿son útiles las cadenas MCMC?
Parece que NooShare es inseguro y nunca despegó, ya que no puedo encontrar NooShare en uso en ninguna parte. NooShare fue solo una idea, pero no parece haber funcionado en la práctica.

El problema es que nadie ha ideado un sistema de prueba de trabajo basado en trabajo útil que también:

  • Genera soluciones fácilmente verificables
  • Puede tener la dificultad de encontrar una solución ajustada

Por ejemplo, si el sistema estuviera buscando números primos, las soluciones tardarían mucho tiempo en verificarse como primos. La dificultad de encontrar el próximo número primo tampoco se puede controlar, simplemente sigue aumentando.

cualquier problema NP-completo, por definición, tiene una solución fácil de verificar. Es relativamente fácil aumentar gradualmente la dificultad aumentando el tamaño de entrada. Además, en la ciencia abundan los útiles problemas NP-difíciles: por ejemplo, el plegamiento de proteínas o la optimización del diseño de circuitos.
El problema con la sugerencia de @ Artem es que puede calcular previamente las soluciones a muchos problemas. La cadena de bloques hace que el bloque N+1 dependa del bloque N, por lo que es imposible calcularlo por adelantado.
@ ripper234 mi sugerencia definitivamente es incorrecta, ya que de lo contrario estaría en uso. Sin embargo, el objetivo de mi comentario fue un contraejemplo de lo que Chris sugirió como respuesta. Sin embargo, a la gente parece gustarle su respuesta. Sin embargo, sería bueno si explicara cómo un problema general NP-difícil no califica. En cuanto a mi comentario, se puede hacer que dependa de bloques anteriores haciendo que la entrada al siguiente problema a resolver dependa del bloque anterior (digamos que hay una base de datos de instancias de problemas difíciles para resolver, luego se puede usar el hash del bloque N para elegir el siguiente problema a resolver).
Necesitarías tantos problemas como hashes. De lo contrario, la prueba de trabajo en realidad no prueba el trabajo. (Alguien puede simplemente elegir transacciones para obtener el hash que selecciona el problema que ya resolvió). La prueba de trabajo debe depender de manera concluyente de al menos el hash del bloque anterior y las transacciones en él, de modo que la prueba de trabajo sea probablemente poco práctica para adjuntar a cualquier otro trabajo.
Primecoin resuelve el problema de los números primos con las cadenas de Cunningham, donde la dificultad es controlable.

Supongamos por un segundo que encontramos un algoritmo de prueba de trabajo que tenía todas las buenas propiedades de sha256, pero que también era útil para SETI y para mantener la paz mundial.

Ahora supongamos que un grupo de mineros tienen colectivamente más del 51% del poder de hash. ¿En cuál de los siguientes escenarios es más probable que se confabulen para duplicar el gasto a través de un ataque del 51 %?

A) Cuando el algoritmo de prueba de trabajo es algo así como sha256 y solo es útil para asegurar la red bitcoin

B) Cuando el algoritmo de prueba de trabajo ayuda a encontrar extraterrestres y mantener la paz mundial además de asegurar la red bitcoin.

En el Escenario B, si BTC perdiera todo su valor debido a un ataque/doble gasto del 51 %, el hardware de los mineros seguiría siendo valioso porque, aunque no podría minar bitcoin, aún podría encontrar extraterrestres y mantener la paz mundial.

En el Escenario A, si BTC perdiera su valor, el hardware de los mineros se hundiría con él, debido a la inutilidad de dicho hardware para otra cosa que no sea minar bitcoin.

En resumen, tener un algoritmo de prueba de trabajo "inútil" (donde "inútil" solo significa poder asegurar la red de bitcoin y nada más) es una ventaja (para la red de bitcoin) porque los mineros estarán menos tentados a destruir bitcoin, sabiendo que su hardware sería inútil si lo hicieran.

Interesante. No creo que fuera parte del concepto original. Pero interesante

La "minería fusionada" (minería simultánea en múltiples cadenas de bloques con la misma cantidad de trabajo) puede no ser útil en un sentido del "mundo real", pero al menos también produce Namecoins o Solidcoins o lo que sea que esté en el proceso de producir Bitcoins. .

No, porque hay una ventaja significativa en exigir que el trabajo se realice en el registro de transacciones reales y no en un problema arbitrario.

Al hacer que el problema incluya los datos del registro de transacciones, hace que cualquier cambio en el historial de transacciones requiera proporcionar una nueva solución, y esto evita que una parte "almacene" soluciones lentamente y las publique todas a la vez, ya que siempre hay nuevos bloques de las transacciones se agregan a la cadena de bloques, lo que significa que la solución requerida sigue cambiando, dependiendo de cuál sea el último bloque de transacciones.

Si hizo que el cálculo fuera "útil" en algún otro sentido, entonces, en principio, podría simplemente vender esa salida "útil" y, por lo tanto, disminuir el gasto económico neto que asegura la cadena de bloques, haciéndola menos segura. Entonces, el cálculo "inútil" de bitcoin es útil, tenga o no otro uso.

Recientemente respondí esta pregunta en mi blog, se pueden encontrar más detalles aquí: https://blog.sldx.com/is-bitcoins-proof-of-work-useless-work-a411480d3eb3

el contenido de la URL ya no está disponible.
¿Cómo te sientes acerca de aquellos que han extraído sal u oro? La sal y el oro son útiles además de ser una fuente de liquidez (para dar sabor a los alimentos y evitar que se pudran, o para hacer cosas bonitas). Pero no aseguran una cadena de bloques...

Pensé en dar la respuesta que sé a esta pregunta, y es económica.

Una de las razones para usar la prueba de trabajo (aparte de la utilidad técnica) es como una forma de dar inherentemente el valor de la moneda. Si el valor de la moneda es demasiado alto, hasta el punto de que cuesta menos comprar el poder de cómputo para falsificar moneda que comprar la moneda directamente, entonces existe un incentivo económico para falsificar y estabilizar el precio.

Si usamos un problema que no es inútil, entonces existe la posibilidad de que sea más útil para algunos que para otros. Como ejemplo, resolver una instancia del problema X podría generar un ingreso de $Y para la persona N y ningún ingreso para la persona M. (Digamos que estamos plegando proteínas y la persona N es una compañía farmacéutica que puede usar esto para construir un nuevo medicamento, mientras que la persona M es una persona aleatoria). Entonces, si cuesta $K falsificar la moneda comprando tiempo de computación, entonces para la persona N le costaría $(K - Y) mientras que para la persona M le costaría $K. Esto podría conducir a una desestabilización del valor de la moneda.

Por lo tanto, si hay un problema útil, debe ser igualmente útil para TODOS los usuarios de la moneda.

¿alguien podría comentar sobre los votos negativos? ¿Es por auto-responder o dije algo falso en mi respuesta?
No voté en contra, pero tu respuesta no me parece del todo correcta. En realidad, no puedes falsificar bitcoins. Sin embargo, si controla la mayoría de la potencia de procesamiento de la red, puede realizar un ataque de doble gasto. Sin embargo, no estoy seguro de cómo se relaciona esto con el costo de encontrar soluciones. ¿Los mineros que no tienen que pagar por la electricidad tienen más incentivos para atacar la red que los que sí tienen que pagar?
Los mineros que no tienen que pagar por la electricidad tienen más probabilidades de continuar con la minería incluso si no es rentable cuando se tiene en cuenta el costo de la electricidad. Por esta razón, es probable que la minería tienda a no ser rentable para todos excepto para aquellos que necesitan convertir electricidad para calentar de todos modos o tienen un exceso de electricidad que no tienen forma de almacenar.
@DavidSchwartz: ¿Cómo es posible que los mineros no tengan que pagar la electricidad? ¿Se lo están robando?
@Hans-PeterStricker: muchas energías renovables producen energía independientemente de la demanda. Por ejemplo, Sudáfrica invirtió mucho en energía hidroeléctrica para una industria siderúrgica que no floreció. La energía eólica aún no se puede almacenar, por lo que las turbinas se detienen, lo que puede causar problemas, o la energía se usa para un disipador de calor u otro vertedero, como la minería de Bitcoin. El uso de energía es una de las principales críticas a Bitcoin, pero la economía impulsa la energía inútil, no útil, y los ingresos pueden respaldar las energías renovables.

Otra excelente razón para seleccionar un algoritmo que no es útil en ningún otro contexto que no sea solo bitcoin es que la infraestructura preparada con el propósito de asegurar bitcoin solo sea compatible con incentivos para asegurar bitcoin.

Considere la reciente introducción de numerosas altcoins que comparten los mismos algoritmos de PoW, si el trabajo que se realiza es significativo en varios contextos, entonces los mineros no se dedicarán a asegurar bitcoin, ya que existen consideraciones económicas sobre en qué se debe gastar el trabajo para contribuir. . Por ejemplo, debido a que Bitcoin Cash y Bitcoin comparten el mismo algoritmo SHA256d PoW, ha habido una mayor volatilidad en la tasa de hash en ambas criptomonedas, lo que debilita indirectamente la seguridad, ya que una parte del trabajo debe redirigirse a otra parte y también reduce la experiencia de uso a debido a una mayor variación en los tiempos entre llegadas de los bloques.

Esta publicación es antigua, pero fui redirigido aquí y leí muchos comentarios.

Muchos argumentos sobre por qué el algoritmo no debería hacer nada fuera del sistema tienen una solución alternativa.

Algunos dicen que la solución que tiene un valor extrínseco podría desestabilizar el sistema debido a las soluciones útiles que tienen un valor intrínseco.

Me refiero a que las personas están especializadas en tareas y agrupadas por su especialización, un grupo sabe poco sobre el otro y luego las soluciones multiplataforma son escasas.

Para empezar, hay oro y tiene usos, por lo que también tiene un valor intrínseco, hay oro en nuestras computadoras, nuestros dientes y muchas cosas destinadas a ser duraderas, aunque no es útil como un automóvil o un kilogramo de papas.

Un equivalente de oro en los cálculos sería cualquier problema que no tenga una aplicación directa y que posiblemente nunca la tendrá, pero sigue siendo útil para el conocimiento solo para satisfacer la curiosidad, creo que hay muchos problemas matemáticos de este tipo sin aplicar y no valen nada porque a nadie le importaría, sin embargo, es un problema interesante para los humanos que tiene una solución.

Otra cosa para agregar es que la potencia de la computadora aumentó desde que esta publicación y bitcoin de alguna manera operaron para mantener el valor al agregar dificultad, por lo tanto, que yo sepa (no mucho), mantener las transacciones es un problema fácil ahora, por lo que una tarea adicional de resolver los hawkings la radiación sería una dificultad añadida que os aseguro tiene un valor económico.

Puedo cuestionarme a mí mismo si el problema real es que el economista conoce pocas soluciones poco prácticas fuera de su propio sistema, y ​​​​que hay un milagro en el que algunos piratas informáticos se involucraron para crear el bitcoin.