¿Se puede transformar cualquier desafío computacional en prueba de trabajo?


20

La aparente inutilidad de la minería de criptomonedas planteó la cuestión de alternativas útiles, vea estas preguntas en Bitcoin , CST , MO . Me pregunto si existe un algoritmo que pueda convertir prácticamente cualquier desafío computacional (cuya solución se puede verificar eficientemente) en otro desafío \ Psi (\ mathcal C) (que se utiliza para la prueba de trabajo) de tal manera queCC Ψ ( C )Ψ(C)

  1. La función ΨΨ es aleatorizada, usando alguna secuencia aleatoria (pública) rr .
  2. La solución de Ψ ( C )Ψ(C) es típicamente tan duro como la solución de CC .
  3. Si una solución Xx se encuentra para Ψ ( C )Ψ(C) , y luego una solución de Ψ - 1 ( x )Ψ1(x) se puede calcular de manera eficiente para el desafío original de CC .
  4. Conocer una solución para CC no ayuda a encontrar una solución para Ψ ( C )Ψ(C) .

4 '(Actualización). Como señaló Noah en un comentario, la condición previa debe fortalecerse para requerir que el preprocesamiento CC tampoco dé ninguna ventaja en la resolución de Ψ ( C )Ψ(C) .

Esta última condición es necesaria para que nadie se puede poner en una posición ventajosa simplemente porque saben que una solución de CC . Usando este método, las personas pueden presentar problemas computacionales que desean que se resuelvan y una autoridad central puede elegir algunos que sean dignos de resolver (como encontrar extraterrestres versus romper contraseñas). Tenga en cuenta que no parece ser un problema si el problema tarda incluso una semana en resolverse (supongo que esos alienígenas no pueden ser tan buenos para esconderse;), ya que esto podría resultar en una recompensa más grande por una solución. De todos modos, estos temas no están relacionados con la solución de mi problema teórico, pero por supuesto estoy feliz de discutirlos en los comentarios / en el foro.

Una posible solución sería la siguiente: ΨΨ asigna CC en ( C , H A S H r )(C,HASHr) , es decir, para resolver CC y algún otro desafío computacionalmente difícil. Un problema con esto es que conocer una solución a CC hace que resolver Ψ ( C )Ψ(C) sea ​​algo más fácil (cuánto más fácil depende de la dificultad de H A S H rHASHr ). Otra cuestión es que Ψ ( C )Ψ(C) se hizo más difícil de lo que CC .


3
Quizás esto podría ser relevante: eprint.iacr.org/2017/203.pdf
Andreas Björklund el

3
¿Cuál es la diferencia entre un "desafío computacional" y un "desafío de prueba de trabajo"?
O Meir el

2
Claro, pero la definición misma de las pruebas de trabajo generalmente requiere considerar varios desafíos, ya que la propiedad central que los define es la no amortización. Esta es la razón por la cual se han realizado trabajos como eprint.iacr.org/2017/203.pdf: necesita garantías de no amortización para casi todas las aplicaciones de PoW, especialmente las criptomonedas. De todos modos, ¿está buscando una solución verificable públicamente, o sería suficiente una verificación privada? ¿Quieres un esquema prácticamente eficiente, o estás de acuerdo con una solución teórica?
Geoffroy Couteau

55
@domotorp ¿por qué cree que eprint.iacr.org/2017/203.pdf no es relevante para su pregunta?
Alon Rosen

55
A pesar de que no proporciona una reducción de cualquier problema en el peor de los casos en P, el documento proporciona un PoW útil basado en un amplio conjunto de problemas. Específicamente, cualquier problema reducible a vectores ortogonales (OV), incluidos todos los problemas de gráficos que son estables en la lógica de primer orden. También se aplica al problema k-OV (conjeturado que requiere aproximadamente n ^ k tiempo), así como a otros problemas del mundo de la complejidad de grano fino. Entonces, aunque quizás no sea tan general como cabría esperar, los resultados siguen siendo bastante generales. Y para los problemas que mencioné anteriormente, las propiedades 1-4 están realmente satisfechas.
Alon Rosen

Respuestas:


8

( Nota : Andreas Björklund sugirió una solución en los comentarios que creo que es mejor que la que se describe a continuación. Ver http://eprint.iacr.org/2017/203 , por Ball, Rosen, Sabin y Vasudevan. En resumen, dan pruebas de trabajo basadas en problemas como vectores ortogonales cuya dureza se entiende bien y a los que muchos problemas (p. ej., k-SAT) se pueden reducir de manera relativamente eficiente. Su instancia PoW es tan difícil como los vectores ortogonales en el peor de los casos, incluso si la instancia de entrada es fácil, de modo que eviten un inconveniente importante de la solución que se describe a continuación.Ψ ( C ) CΨ(C)C

La solución que se describe a continuación podría beneficiarse de su simplicidad, se puede describir a un no experto, pero me parece mucho menos interesante en teoría.

Una solución es posible si uno asume que "el algoritmo más rápido para está fundamentalmente aleatorizado" (y si modelamos una función criptográfica hash como un oráculo aleatorio). Una forma de formalizar esto es decir queCC

  1. CT F N PF PCTFNPFP (de lo contrario, supongo que no es realmente un desafío válido);
  2. el algoritmo aleatorio más rápido para ejecuta en el tiempo esperado en una instancia típica; yC TCT
  3. existe una función eficientemente computable desde hasta el dominio de soluciones a para manera que siempre exista una con una solución a .f { 0 , 1 } k C k log 2 T s { 0 , 1 } k f ( s ) Cf{0,1}kCklog2Ts{0,1}kf(s)C

Observe que la suposición de que implica que la búsqueda de fuerza bruta de es esencialmente el algoritmo óptimo para . Entonces, esta es una suposición bastante fuerte. Por otro lado, si no satisface estas propiedades, entonces es difícil para mí imaginar que satisface sus condiciones (2) y (4).k log 2 T { 0 , 1 } k C Cklog2T{0,1}kCC

Luego, dada una función hash , que como un oráculo aleatorio, definimos como sigue, donde para algunos es la entrada aleatoria de . El objetivo es generar modo que sea ​​una solución para . En otras palabras, debería ser hash a "buenas monedas aleatorias" para el algoritmo anterior.H : { 0 , 1 } { 0 , 1 } k Ψ H ( C ; r ) r { 0 , 1 } k Ψ H x { 0H:{0,1}{0,1}kΨH(C;r)r{0,1}kΨH , 1 } f ( H ( r , x ) ) C ( r , x )x { 0 , 1 }F( H( r , x ) )C(r,x)

Veamos que esto satisface todas sus condiciones.

  1. "La función es aleatorizada, usando alguna secuencia aleatoria (pública) ". ¡Cheque!Ψ rΨr
  2. "Resolver suele ser tan difícil como resolver ". Observe que el algoritmo aleatorio simple para ejecuta en el tiempo esperado como máximo más la sobrecarga polinómica, y suponiendo que es esencialmente el tiempo de ejecución del algoritmo óptimo para .Ψ ( C )Ψ(C) C Ψ H ( C , r ) 2 k 2 kT CCΨH(C,r)2k2kTC
  3. "Si se encuentra una solución para , entonces se puede calcular eficientemente una solución para el desafío original ". Esto se puede hacer calculando , que es una solución a por suposición.x Ψ ( C )xΨ(C) Ψ - 1 ( x ) C f ( H ( r , x ) ) CΨ1(x)CF( H( r , x ) )C
  4. "Conocer una solución para no ayuda a encontrar una solución para ". Por definición, resolver requiere encontrar tal que sea ​​una solución para . Dado que modelamos como un oráculo aleatorio, podemos reducir el tiempo de ejecución esperado de cualquier algoritmo que resuelva este problema mediante la complejidad óptima de consulta esperada del problema de consulta en el que está dado por un cuadro negro y se nos pide encontrar un Solución al mismo problema. Y, de nuevo porque es un oráculo aleatorio, la complejidad de la consulta esperada es solo la inversa de la fracción de elementosC Ψ ( C ) Ψ H ( C ; r ) x f ( H ( r , x ) ) C H H H x { 0 , 1 } k C T 2 k 2 - kk r { 0 , 1 } H C r CCΨ ( C)ΨH( C; r )XF( H( r , x ) )CHHHx { 0 , 1 }k que son soluciones (hasta un factor constante). Por supuesto, el tiempo de ejecución óptimo esperado de cualquier algoritmo para es , lo que implica que esta fracción no puede ser mucho mayor que . Dado que y se eligen uniformemente al azar, esto es incluso cierto con el preprocesamiento que puede depender de y (pero no ) , y en particular es cierto incluso si conocemos una solución a de antemano.CT2k2kkr{0,1}HCrC

Esta es una muy buena solución. El único lugar donde veo una posibilidad de mejora es la condición (2). Para muchos problemas en , hay algoritmos en tiempo para algunos . Sería bueno si se pudiera preservar algo como esto, pero no estoy seguro de si se puede hacer. ¡Seguramente su método es superior a los utilizados actualmente para las criptomonedas! N P c n c < 2NPcnc<2
domotorp

De hecho, tal vez ni siquiera sea necesario cambiar mucho en la cadena de bloques. Solo la comunidad puede aceptar que en algún momento se debe una a la cadena de bloques cuyo hash resuelve cualquier problema práctico. De hecho, tal vez la cadena de bloques estándar puede continuar, y esto podría ser un desafío independiente y en solitario. Posiblemente en el mercado, una instancia tan individual valdrá más que las monedas tradicionales, al igual que Rogue One es mejor que sw7 o sw8. Xx
domotorp

Me alegro de que te guste :). Solo quiero aclarar que si bien mis condiciones en implican que "la búsqueda de fuerza bruta en algún espacio de búsqueda es esencialmente óptima", no implican que la búsqueda de fuerza bruta en el espacio de búsqueda original sea esencialmente óptima. Por ejemplo, para SAT, esto no es lo mismo que requerir que el algoritmo más rápido se ejecute en tiempo. C 2 nC2n
Noah Stephens-Davidowitz

En el caso de la composición, por ejemplo, el problema computacional admite una definición de problema en la que el problema computacional puede estar compuesto de problemas más pequeños, cuya solución es más fácil, y hay una solución que no se basa en la composición, la no amortización explicaría esto ?
user3483902

Creo que otro problema con esta solución es lo que ha señalado en un comentario a mi pregunta, a saber, que si alguien puede preprocesar de manera eficiente, puede obtener una gran ventaja. Creo que este es un tema bastante delicado. Imagine que envío un problema cuya solución (en un formato estándar) se puede verificar en tiempo, pero tengo un método secreto para verificarlo en tiempo. Esto me da una gran ventaja para resolver . C n Cnn Ψ(C)nΨ(C)
domotorp

1

La siguiente técnica simple que llamo la técnica de lotería de solución (SLT) se puede usar junto con otras técnicas (como tener múltiples problemas de prisioneros de guerra, la técnica mencionada en la respuesta de Noah Stephens-Davidowitz, etc.) para ayudar a transformar los desafíos computacionales en pruebas viables de problemas laborales. El SLT ayuda a mejorar problemas con problemas de minería de criptomonedas que no sean las condiciones 1-4.

Suponga que es un desafío computacional de la forma "encontrar un hash adecuado junto con una cadena tal que ".C k x ( k , x ) DCkx(k,x)D

Configuración del problema : suponga que es un conjunto, es una función de cifrado hash y es algo constante. Supongamos además que es una información que es fácil de obtener después de que se determina que pero que no se puede obtener de otra manera.Ψ ( C ) DΨ(C)D H C Datos ( k , x ) ( k , x ) DHCData(k,x)(k,x)D

Problema objetivo: encontrar un par tal que sea ​​un hash adecuado y donde , y donde .Ψ ( C ) ( k , x ) k ( k , x ) D H ( k | | x | | Datos ( k , x ) ) < CΨ(C)(k,x)k(k,x)DH(k||x||Data(k,x))<C

Investiguemos ahora cómo el problema satisface los requisitos 1-4.Ψ ( C )Ψ(C)

  1. Tenemos que asumir que ya está aleatorizado para que el SLT satisfaga esta propiedad.CC

2-3. generalmente se volverá más difícil que y esto es algo bueno. La dificultad de un problema de prueba de trabajo debe ser finamente ajustable, pero el problema original puede o no tener un nivel de dificultad finamente ajustable (recuerde que la dificultad para extraer Bitcoin se ajusta cada dos semanas) . La dificultad del problema es igual a la dificultad de encontrar algo adecuado multiplicado por . Por lo tanto, dado que la constante es finamente ajustable, la dificultad de también es finamente ajustable.Ψ ( C ) C C Ψ ( C ) ( k , x ) D 2 nΨ(C)CCΨ(C)(k,x)DC CΨ(C)2nCCΨ(C)

Aunque el problema es más difícil que el problema original , casi todo el trabajo para resolver el problema dedicará simplemente a encontrar un par con lugar de calcular hashes (no se puede calcular si o no hasta que uno ha calculado y uno no puede calcular menos que uno verifique que ).Ψ ( C ) C Ψ ( C ) ( k , x ) ( k , x ) D H ( k | | x | | Datos ( k , x ) ) < C Datos ( k ,Ψ(C)CΨ(C)(k,x)(k,x)DH(k||x||Data(k,x))<C x ) Datos ( k , x ) Datos ( k , x ) DData(k,x)Data(k,x)Data(k,x)D

Por supuesto, el hecho de que es más difícil que presenta algunas preocupaciones nuevas. Para un problema útil, lo más probable es que uno quiera almacenar los pares donde en alguna base de datos. Sin embargo, para recibir la recompensa de bloque, el minero solo debe revelar un par donde y lugar de todos los pares independientemente de si o no. Una posible solución a este problema es que los mineros simplemente revelen todos los pares dondeΨ ( C ) C ( k , x ) ( k , x ) D ( k , x ) ( k , x ) D H ( k | | x | | Datos ( k , x ) )Ψ(C)C(k,x)(k,x)D(k,x)(k,x)D < C ( k , x ) D H ( k | | x | |H(k||x||Data(k,x))<C(k,x)DDatos ( k , x ) ) < C ( k , x ) ( k , x ) D ( k , x ) D ( k , x ) D Ψ ( C ) CH(k||x||Data(k,x))<C(k,x)(k,x)Dpor cortesía. Los mineros también tendrán la capacidad de rechazar cadenas si los mineros no han publicado su parte justa de los pares . Quizás, uno debería contar el número de pares para el cálculo de quién tiene la cadena válida más larga también. Si la mayoría de los mineros publican sus soluciones, entonces el proceso de resolver producirá tantas soluciones como el proceso de resolver .(k,x)D(k,x)DΨ(C)C

En el escenario donde los mineros publican todos los pares , satisfarían el espíritu de las condiciones 2-3.( k , x ) D Ψ ( C )(k,x)DΨ(C)

  1. Ψ ( C ) 4Ψ(C) puede o no satisfacer la condición dependiendo del problema específico.4

Otras ventajas de esta técnica:Other Advantages of this technique:

El SLT ofrece otras ventajas que las condiciones 1-4 que son deseables o necesarias para un problema de prueba de trabajo.

  1. Mejora del equilibrio de seguridad / eficiencia: el SLT ayudará en el caso de que sea ​​demasiado fácil de resolver o demasiado difícil de verificar. En general, es mucho más difícil de resolver que , pero es tan fácil de verificar como .C Ψ ( C ) C Ψ ( C ) C

  2. Eliminación de un problema roto / inseguro: el SLT podría usarse para eliminar algorítmicamente problemas POW malos en una criptomoneda con un problema POW de respaldo y múltiples problemas POW. Suponga que una entidad encuentra un algoritmo muy rápido para resolver el problema . Entonces, tal problema ya no es un problema de prueba de trabajo adecuado y debe eliminarse de la criptomoneda. Por lo tanto, la criptomoneda debe tener un algoritmo que elimine de la criptomoneda cada vez que alguien haya publicado un algoritmo que resuelva el problema demasiado rápido pero que nunca elimina el problema contrario. Aquí hay un resumen de un algoritmo de eliminación de este tipo de problemas que se utiliza para eliminar un problema que llamaremos ProblemaC C C C A .

a. Alice paga una tarifa grande (la tarifa cubrirá los costos en que incurren los mineros para verificar el algoritmo) y luego publica el algoritmo que llamaremos Algoritmo K que divide el Problema en la cadena de bloques. Si el algoritmo K se basa en una gran cantidad de datos , entonces Alice publica la raíz de Merkle de esta datos .A P C P C

si. Las instancias aleatorias del problema A son producidas por Blockchain. Luego, Alice publica las porciones de los datos precalculados que son necesarios para que el Algoritmo K funcione correctamente junto con su rama Merkle para demostrar que los datos realmente provienen de la . Si el algoritmo de Alice se alimentó rápidamente con la datos , entonces el problema se elimina y Alice recibe una recompensa por publicar el algoritmo que elimina el problema de la cadena de bloques.P C P C

Este procedimiento de eliminación de problemas es computacionalmente costoso para los mineros y validadores. Sin embargo, el SLT elimina la mayor parte de la dificultad computacional de esta técnica para que pueda usarse si es necesario en una criptomoneda (los casos en que se usa esta técnica probablemente serán bastante raros).

  1. Los grupos mineros son más factibles: en las criptomonedas, a menudo es muy difícil ganar la recompensa en bloque. Dado que las recompensas en bloque son muy difíciles de ganar, los mineros a menudo explotan en cosas llamadas grupos mineros en los que los mineros combinan sus recursos para resolver un problema y en los que comparten la recompensa en bloque en proporción a la cantidad de "casi accidentes" que han encontrado . Un posible problema para es que puede ser difícil producir una noción cualitativa de lo que constituye una "falta cercana" para el problema y el algoritmo para encontrar una falta cercana puede ser diferente del algoritmo para resolver . Dado que los mineros de la piscina buscarán casi accidentes, pueden no ser muy eficientes para resolverC C C C Ψ ( C ) ( k , x ) ( k , x ) D H ( k | | x | | Datos ( k , x ) ) C Ψ ( C ) Ψ ( C ) (y, por lo tanto, pocas personas se unirán a grupos de minería). Sin embargo, para , hay una noción clara de una falta cercana, a saber, una falta cercana es un par donde pero donde , y el algoritmo para encontrar casi errores para será el mismo que el algoritmo para encontrar soluciones a .

  2. Libertad de progreso: se dice que un problema de prueba de trabajo está libre de progreso si la cantidad de tiempo que le toma a una entidad o grupo de entidades encontrar el siguiente bloque en la cadena de bloques sigue la distribución exponencial donde la constante es directamente proporcional a la cantidad de potencia computacional que entidad está usando para resolver el Problema . Se requiere libertad de progreso para los problemas de minería de criptomonedas para que los mineros reciban una recompensa en bloque en proporción a su poder minero para lograr la descentralización. El SLT ciertamente ayuda a los problemas mineros a lograr la libertad de progreso.P e - λ x λ P

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.