CIDv1: Prefijo Multibase
Así que ahora nuestro CIDv1 en binario (0s y 1s) nos da esta información:
<versión-cid><multicodec><multihash>
Dado que los CIDs en binario no son muy amigables para los humanos, podemos representar estos CIDs binarios en forma de cadena (datos binarios representados como texto). Ejemplo:
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
Convertir datos entre formatos binarios y de cadena requiere codificación base, así que cuando trabajamos con CIDs en forma de cadena es importante que sepamos el tipo de codificación base que se aplicó a los datos binarios. Pero, ¿cómo podemos identificar esto?
En el CIDv0, los hashes siempre están codificados con base58btc. Siempre. Esto significa que podemos interpretar con seguridad los hashes CIDv0 asumiendo que están usando base58btc. Sin embargo, debido a restricciones del entorno (por ejemplo, nombres de DNS), necesitamos la capacidad de soportar otras codificaciones base también. Para eso, lo adivinaste, ¡podemos agregar otro prefijo!
Prefijo Multibase
Los prefijos Multibase, que representan la codificación base utilizada al convertir CIDs entre formatos de cadena y binario, solo se usan en la forma de cadena del CID:
Examinemos dos ejemplos de CIDs en su forma de cadena:
Sabemos que el primero es un CIDv0 porque comienza con Qm... Todos los hashes que comienzan con Qm se pueden interpretar de manera segura como base58btc como un CID de la Versión 0.
El segundo ejemplo comienza con b, el identificador de prefijo de codificación base para base32, que es utilizado por defecto por la mayoría de las implementaciones de IPFS.
Para la lista completa de identificadores multibase, consulta esta tabla.