¿Qué tan difícil es generar una firma ECDSA (o Schnorr) con una cierta cantidad de ceros a la izquierda?

Si tanto la clave pública como la clave privada se conocen de antemano (conocimiento público), y el objetivo es elegir un mensaje/nonce que genere una firma con, por ejemplo, una cierta cantidad de ceros a la izquierda, ¿es esto similar desde el punto de vista computacional? tarea desafiante para la prueba de trabajo tradicional en el sentido de que es "difícil de encontrar" pero "(relativamente) fácil de verificar"?

Parece que la respuesta debería ser "sí", porque si la respuesta es "no", entonces (¿creo?) implicaría que las firmas no son pseudoaleatoriamente uniformes para diferentes mensajes.

Dicho quizás de manera más sucinta, ¿puede una firma en sí misma servir para representar una prueba de trabajo específica?

Por último, ¿cambian las respuestas a cualquiera de las anteriores cuando el esquema de firma utilizado es Schnorr en lugar de ECSDA?

editar: parece que las firmas del adaptador [1] esencialmente pueden permitir esto, pero no sé lo suficiente sobre cómo funcionan para estar seguro. [1] https://github.com/ElementsProject/scriptless-scripts

Respuestas (1)

No si solo hace ceros a la izquierda o simplemente el valor más bajo cuando se interpreta como un número entero muy grande.

Para facilitar las cosas, supongamos que usa firmas compactas que son solo la firma Ry slos valores concatenados entre sí en lugar de otros formatos de firma que tienen bytes de formato circundantes adicionales que interferirían con una comparación directa.

El formato de firma compacto simplemente concatena los valores Ry s. Sin embargo, este sería un esquema de PoW trivialmente roto tan pronto como una persona encontrara un PoW válido, y esa persona siempre sería la ganadora. Esto se debe a que el Rvalor es solo la coordenada X de un nonce que se multiplica por el punto generador de la curva. Si alguien encuentra un Rvalor que funciona con PoW, puede seguir reutilizando ese nonce y siempre tener el mismo valor R válido. Así que esto obviamente está roto.

Pero si fuera más inteligente acerca de lo que se compara para el PoW al verificar que el svalor es más bajo que el objetivo. El svalor se calcula mediante una fórmula que incluye el nonce, el hash del mensaje y la clave privada. En Schnorr, también hay múltiples hashes y multiplicaciones de puntos de EC Curve, que ayudan a hacerlo más aleatorio. Entonces sdebería ser pseudoaleatorio.

Pero hay algunos otros problemas con un PoW basado en firmas, aunque estos están más dirigidos específicamente a ECDSA que a las firmas en general.

Se debe conocer la clave pública contra la que se debe verificar, y se debe saber que es "correcta". Esto significa que no puede hacer que cada persona que participe en el PoW proporcione su propia clave pública, debe ser una clave pública fija y todos deben conocer la clave privada.

Esto se debe a que, dada una firma ECDSA y un mensaje, puede calcular una clave pública que validaría esa combinación de firma y mensaje. Por eso es importante que se conozca la clave pública antes de validar la firma. Tenga en cuenta que esto no es posible para el esquema de firma de Schnorr propuesto, ya que no es posible recuperar la clave pública con él.

El mensaje que se verifica debe ser publicado y hash. Eso es bastante obvio ya que es una parte crucial de cualquier algoritmo PoW. Pero específicamente con ECDSA, dada una firma y una clave pública, puede calcular un hash de mensaje que daría como resultado una firma válida. Esta es la razón por la que es importante que el mensaje sea algo que se codifica y no solo el valor que se pone en el algoritmo de firma. Esto no debería ser posible con las firmas de Schnor.

Por lo tanto, podría usar firmas como un PoW siempre que esté verificando sy no Rpara el control de PoW real. Y sugeriría que use las firmas de Schnorr en lugar de ECDSA.

Gracias por la respuesta muy detallada. Me alegra que también haya aclarado los detalles sobre cómo los diferentes esquemas de firma se comportan de manera diferente para este propósito. Mi concepción original de "firma" era algo más parecido a lo que describe sen su respuesta. Examinaré las firmas de Schnorr como sugieres (¡y aparentemente también necesito entender mejor ECDSA!). Gracias de nuevo.