Checksum
Datos extra que permiten detectar errores
Un checksum es un pequeño fragmento de datos que permite verificar si otro fragmento de datos coincide con lo esperado.
Se encuentra más comúnmente en direcciones para detectar errores de escritura, lo que ayuda a evitar enviar bitcoins a la dirección equivocada.
Se puede añadir un checksum al final de unos datos para crear un datos+checksum combinado. Cuando vuelves a introducir esos datos después, puedes asegurarte de que todo está correcto verificando si los datos siguen coincidiendo con el checksum.
Este tipo de checksum no ayuda a corregir errores. Detecta errores, pero no dice dónde está el error ni cómo corregirlo.
Ubicación
¿Dónde se usan los checksums en Bitcoin?
- Direcciones – Toda dirección Base58 (las que empiezan con 1 o 3) contiene un checksum.
- Claves privadas WIF – El formato WIF contiene un checksum.
- Claves extendidas – Toda clave extendida (xprv/xpub) contiene su propio checksum.
- Mensajes de red – Todo mensaje intercambiado entre nodos lleva un checksum adjunto para detectar corrupción en la transmisión.
Las direcciones Bech32 modernas también contienen checksums, pero son más complejos que los simples descritos en esta página.
Creando
¿Cómo creas un checksum?
Un checksum se crea tomando los primeros 4 bytes del HASH256 de unos datos:
hash256(datos) = 05c4de7c1069e9de703efd172e58c1919f48ae03910277a49c9afd7ded58bbeb
checksum = 05c4de7c
HASH256
Verificando
¿Cómo verificas un checksum?
Para verificar un checksum, solo tienes que recalcularlo a partir de los datos y comprobar si coincide con el checksum proporcionado. Si no coincide, los datos se introdujeron incorrectamente.