¿Cómo tenemos un mapeo uno a uno dadas las diferencias de tamaño de clave?

Si las claves públicas tienen 34 caracteres y las claves privadas tienen 61 caracteres, entonces las combinaciones de 34 caracteres no son suficientes para dar a cada combinación de 61 caracteres un par único.

Mis cálculos muestran 8,6 * 10^89 combinaciones para una clave privada.

Y 9.0 * 10^59 combinaciones para una clave pública.

Entonces, ¿cómo tenemos un mapeo uno a uno?

(Por favor, corríjame si estoy equivocado).

Debe revisar sus preguntas anteriores y marcar las respuestas correctas.
¿Sus cálculos tienen en cuenta que Base58 no permitirá ciertos caracteres en el hash?

Respuestas (1)

No tenemos un mapeo uno a uno en el sentido del que estás hablando. Pero, a efectos prácticos, tenemos un mapeo uno a uno. Sí, si alguien intentara mapear cada clave, después de unos pocos millones de siglos, tendría un problema. Pero no tendremos que preocuparnos por eso hasta mucho después de que las estrellas se apaguen.

Para encontrar dos claves que tengan el mismo ID, tendrías que probar un promedio de 2^80 claves. Si tuviera un millón de computadoras, cada una capaz de probar 1,000 claves por segundo, tomaría 380,000 siglos encontrar una sola coincidencia. Y todo lo que podía hacer con esas dos claves era reclamar el dinero enviado a la misma identificación con cualquiera de las dos, lo que no causaría ningún daño.

Ahora, si desea encontrar una clave que coincida con una clave que ya tiene Bitcoins, esa es una tarea mucho más difícil. Digamos que hay 10.000.000 de identificaciones que tienen monedas. Las probabilidades de que una sola clave coincida con una de estas 10.000.000 es de 2^160/10.000.000; incluso con 1.000.000 de computadoras, cada una intentando 1.000 claves por segundo, tomaría miles de millones de miles de millones de siglos.

Entonces, para fines prácticos, es uno a uno.

En la primera parte de la respuesta dices 2^80 llaves y en la segunda parte dices 2^160, pero no explicas como pasar de una a otra. Además, calculé 10 ^ 89 y tienes 2 ^ 80. Mi 10^89 es de 58 posibilidades de caracteres (az|AZ|0-9) X 61 dígitos.
¿Cuántas personas necesitas para tener una probabilidad del 50/50 de encontrar a una persona que cumpla años el 11 de mayo? ¿Cuántas personas necesitas para tener una probabilidad del 50/50 de encontrar a dos personas con el mismo cumpleaños? Esa es la razón de la diferencia. Tu cálculo es incorrecto porque parte de la información es redundante. El ID de la cuenta se deriva de un hash de 160 bits, por lo que solo hay 2^160 direcciones válidas posibles.