¿Qué es un CID? | Lección 1 de 6
Explora los detalles de los CIDs (Identificadores de Contenido), las etiquetas únicas utilizadas para señalar datos almacenados en sistemas de información distribuidos, incluye IPFS, IPLD y Filecoin.
Last updated
Explora los detalles de los CIDs (Identificadores de Contenido), las etiquetas únicas utilizadas para señalar datos almacenados en sistemas de información distribuidos, incluye IPFS, IPLD y Filecoin.
Last updated
Cuando intercambiamos datos con pares en la web descentralizada, dependemos del direccionamiento de contenido (a diferencia del direccionamiento de ubicación de la web centralizada) para localizar e identificar de manera segura los datos. Si aún no lo has hecho, por favor revisa nuestras lecciones sobre Direccionamiento de Contenido en la Web Descentralizada para aprender sobre los conceptos básicos importantes de la web descentralizada como el direccionamiento de contenido, el hashing criptográfico, los identificadores de contenido (CIDs) y la compartición con pares. En esta lección profundizaremos en la anatomía de los CIDs, que están construidos a partir de una variedad de valores auto-descriptivos definidos por el proyecto Multiformats.
La especificación de CID, que se originó en IPFS, ahora reside en Multiformats y apoya una amplia gama de proyectos incluyendo IPFS, IPLD, libp2p y Filecoin. Aunque compartiremos algunos ejemplos de IPFS a lo largo de nuestras lecciones, esta se trata sobre la anatomía del CID en sí, que es utilizado por cada uno de estos sistemas de información distribuida como el identificador principal para referenciar contenido.
Un identificador de contenido, o CID, es un identificador auto-descriptivo direccionado por contenido. No indica dónde está almacenado el contenido, pero forma una especie de dirección basada en el contenido mismo. El número de caracteres en un CID depende del hash criptográfico del contenido subyacente, en lugar del tamaño del contenido en sí. Como la mayoría del contenido en IPFS se hash usando sha2-256, la mayoría de los CIDs que encuentres allí serán del mismo tamaño (256 bits, lo que equivale a 32 bytes). Esto los hace mucho más fáciles de manejar, especialmente al tratar con múltiples piezas de contenido.
Por ejemplo, si almacenáramos una imagen de un cerdo hormiguero en la red IPFS, su CID se vería así: QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF
El primer paso para crear un CID es transformar los datos de entrada, usando un algoritmo criptográfico que mapea la entrada de tamaño arbitrario (datos o un archivo) a una salida de tamaño fijo. Esta transformación es conocida como digestión hash criptográfica o simplemente hash.
El algoritmo criptográfico utilizado debe generar hashes que tengan las siguientes características:
Determinista: La misma entrada siempre debe producir el mismo hash.
No correlacionado: Un pequeño cambio en la entrada debe generar un hash completamente diferente.
Unidireccional: Debe ser inviable reconstruir los datos a partir del hash.
Único: Solo un archivo puede producir un hash específico.
Nota que si cambiamos un solo píxel en nuestra imagen del cerdo hormiguero, nuestro algoritmo criptográfico generará un hash completamente diferente para la imagen. Cuando recuperamos datos usando una dirección de contenido, estamos garantizados a ver la versión intencionada de esos datos. Esto es bastante diferente del direccionamiento de ubicación en la web centralizada, donde el contenido en una dirección dada (URL) puede cambiar con el tiempo.
El hashing criptográfico no es único de IPFS, y hay muchos algoritmos de hashing por ahí como sha2-256, blake2b, sha3-256 y sha3-512, el ya no seguro sha1 y md5, etc. IPFS utiliza sha2-256 por defecto, aunque un CID admite virtualmente cualquier algoritmo de hash criptográfico fuerte.