Muchas fuentes se refieren al uso de la función hash criptográfica "SHA3" dentro de Ethereum, pero el proyecto Ethereum comenzó antes de que se finalizara el estándar SHA3, y hubo cierta confusión/controversia en torno a los parámetros finales seleccionados para el estándar. ¿Con qué función específicamente terminó Ethereum? ¿Es lo mismo que el estándar SHA3 real o una de las variantes dentro del estándar? ¿O es una parametrización de Keccak que no coincide con ninguna de las variantes?
Ethereum usa KECCAK-256 . Cabe señalar que no sigue el estándar basado en FIPS-202 (también conocido como SHA-3), que se finalizó en agosto de 2015.
De acuerdo con esto , NIST cambió el relleno a SHA3-256(M) = KECCAK [512] (M || 01, 256).
Esto era diferente del relleno propuesto por el equipo de Keccak en la versión 3 de la presentación de Keccak SHA-3 (versión final ganadora) . La diferencia son los bits '01' adicionales que se agregan al mensaje. La gente ahora llama "Keccak" al hash SHA-3 Keccak de la "versión 3 enviada" y "SHA-3" al estándar NIST SHA-3 finalizado.
Usando este generador en línea y el Compilador en línea de Solidity , probé la diferencia entre Keccak-256 y SHA3-256. Hice el hash de la prueba de palabras usando Ethereum y los 2 algoritmos de hash SHA3:
Función Ethereum SHA3 en Solidity =5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02
Keccak-256 =5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02
SHA3-256 (estándar NIST) =7f5979fb78f082e8b1c676635db8795c4ac6faba03525fb708cb5fd68fd40c5e
Para dejar más claro que Ethereum utiliza KECCAK-256 en lugar de la función hash SHA-3 estandarizada por NIST, se ha introducido Solidity 0.4.3keccak256
. (Es un alias de sha3
, lo que significa que keccak256
produce resultados idénticos a sha3
, pero con la intención de evitar confusiones , especialmente para los desarrolladores nuevos en Ethereum). Se recomienda usar código nuevo keccak256
en lugar de sha3
.
jeff coleman
hudson jameson
jeff coleman
hudson jameson
jeff coleman
ética
keccak256
, un alias que se puede usar de forma segura como reemplazo desha3
.mattsayar
FRAGA
jbentley