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)
- 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)
- Ψ ( 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.
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
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).
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 .
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