¿El generador G del par de claves es siempre el mismo número para todos los mensajes tx diferentes en Bitcoin?

Si es así, ¿cuál es ese número y por qué no puedes dividir la clave pública por G para obtener la clave privada?

G no se publica.
¿Pensé que el punto generador G era conocido públicamente?

Respuestas (3)

"G" sin comprimir es 0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8

El "04" al principio simplemente se agrega (por qué razón no lo sé).

Los primeros 64 caracteres hexadecimales después de "04" supuestamente representan el valor "x" y los últimos 64 caracteres hexadecimales supuestamente representan el valor "y".

No sé los detalles de por qué no se puede revertir (también estoy buscando la respuesta a esa pregunta).

No se conoce ningún algoritmo suficientemente eficiente para la división. La multiplicación sobre un grupo cerrado es un proceso con pérdidas.

Para una analogía imperfecta, considere la multiplicación sobre el grupo de números de 100 dígitos donde solo mantiene los últimos 100 dígitos del resultado. Como no sabes qué dígitos se descartaron, no puedes revertir ingenuamente una multiplicación.

El algoritmo correspondiente en DSA es la exponenciación modular (G^X) mod n, que también es, para fines prácticos con números grandes, irreversible incluso si se conocen G y n.

La multiplicación en un grupo cerrado no tiene pérdidas. Es difícil volver atrás, pero con a*G = P, si conoces P y G, habrá exactamente una a (módulo del orden del grupo) que la satisfaga. Es muy difícil de calcular.

Tenga en cuenta que la "multiplicación" en cuestión no es una multiplicación de enteros ordinaria, sino una multiplicación de puntos de curva elíptica .

El objetivo de trabajar sobre una curva elíptica de esta manera es que la multiplicación es fácil, pero la división es difícil.