Me di cuenta de que el mensaje hash para el hash etiquetado en BIP340 tiene el prefijo SHA256 (etiqueta) || SHA256 (etiqueta), que también describe el motivo
Debido a que se trata de una constante específica del contexto de 64 bytes de longitud y el tamaño del bloque SHA256 también es de 64 bytes, son posibles implementaciones optimizadas (idénticas al propio SHA256, pero con un estado inicial modificado). Usar SHA256 del nombre de la etiqueta en sí es razonablemente simple y eficiente para las implementaciones que no eligen usar la optimización.
pero tengo algunas confusiones
- "Las implementaciones optimizadas son posibles": ¿De qué se habla específicamente de la optimización aquí? ¿Se debe a que el prefijo tiene el mismo tamaño que el tamaño de bloque de SHA-256? Si es así, ¿se puede generalizar esta conclusión a todos los algoritmos de hashing de bloques? es decir, el mismo tamaño del prefijo y el bloque del algoritmo puede conducir a la optimización.
Sí, significa que el estado hash SHA256 SHA256(SHA256(tag)||SHA256(tag)||
se puede precalcular. Si la etiqueta tuviera solo 32 bytes, esto no funcionaría, ya que necesitaría saber 32 bytes de datos antes de poder procesar el primer bloque.
- "Usar SHA256 del nombre de la etiqueta en sí es razonablemente simple y eficiente para las implementaciones que no eligen usar la optimización".: ¿Significa esto que si la implementación no tiene la intención de adoptar la optimización, entonces no puede repetir la etiqueta? es decir, el hash etiquetado sería SHA256( SHA256(tag) || msg).
No, eso daría un resultado diferente. Todo esto dice que es una construcción simple para concatenar la etiqueta hash dos veces. Obviamente, no duplicarlo sería aún más simple, pero eso prescindiría de la optimización del punto anterior.
sphpmp
SHA256(SHA256(tag) || SHA256(tag)||
localmente? Entonces, en el futuro, ¿cada vez que se calcula el hash de la etiqueta a partir de la lectura del estado del caché? Para P2: lamento mucho haber entendido mal esta declaración antes, ahora entiendo que esta es la razón por la cual la etiqueta elige SHA256 directamente.pieter wuille
sphpmp