Entiendo que las direcciones son hashes de las claves públicas. ¿Pero por qué? ¿Cuál es la razón detrás de esta decisión de diseño?
¿Y por qué 160 bits? ¿Por qué no usar el hash directamente? ¿Se garantiza que 160 bits serán suficientes en el futuro para la compatibilidad y la seguridad?
Ethereum se ha creado para el "futuro" teniendo en cuenta la resiliencia. Para la generación de direcciones (es decir, par de claves públicas y privadas), se utiliza la criptografía de curva elíptica (ECC) y, entre otras razones, su rendimiento es muy superior a otros algoritmos existentes (por ejemplo, basados en RSA).
Aunque no se ha encontrado ninguna falla en el algoritmo de curva elíptica utilizado en Ethereum, los diseñadores fundadores querían mantener el sistema resistente en caso de que se detecte una falla/vulneración en el algoritmo para que nadie pueda realizar ingeniería inversa de la clave privada a partir de la clave pública. . Debido a que ya se ha demostrado que el algoritmo hash es inmune a la ingeniería inversa, agregar esto en la parte superior significa que nadie puede volver a la clave privada desde la dirección (incluso si el algoritmo ECC fuera explotable).
Las direcciones son más pequeñas que las claves públicas, son identificables a partir de las direcciones de otras criptomonedas, algunas direcciones como bitcoin tienen una suma de verificación incorporada, mientras que las direcciones de ethereum son números de cuenta IBAN válidos.
lz96
Richard Horrocks
xiao jia