Multihash | Lección 2 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
Ocasionalmente, un algoritmo de hashing puede demostrarse como inseguro, lo que significa que ya no cumple con las características que definimos anteriormente. Esto ya ha sucedido con sha1. Con el tiempo, otros algoritmos pueden demostrar ser insuficientes para el direccionamiento de contenido en IPFS y otros sistemas de información distribuidos. Por esta razón, y para apoyar múltiples algoritmos criptográficos, necesitamos poder saber qué algoritmo se utilizó para generar el hash de un contenido específico.
Entonces, ¿cómo podemos hacer esto? Para admitir múltiples algoritmos de hashing, usamos multihash.
Un multihash es un hash auto-descriptivo que contiene metadatos que describen tanto su longitud como el algoritmo criptográfico que lo generó. Los CIDs de Multiformats son a prueba de futuro porque utilizan multihash para admitir múltiples algoritmos de hashing en lugar de depender de uno específico.
Los multihashes siguen el patrón TLV (tipo-longitud-valor). Esencialmente, al "hash original" se le antepone el tipo de algoritmo de hashing aplicado y la longitud del hash.
tipo: identificador del algoritmo criptográfico utilizado para generar el hash (por ejemplo, el identificador de sha2-256 sería 18 - 0x12 en hexadecimal) - ver la tabla de multicodec para todos los identificadores.
longitud: la longitud real del hash (usando sha2-256 sería de 256 bits, lo que equivale a 32 bytes) -
valor: el valor real del hash
Para representar un CID como una cadena compacta en lugar de binario plano (una serie de 1s y 0s), podemos usar codificación base. Cuando IPFS fue creado inicialmente, utilizó la codificación base58btc para crear CIDs que se veían así:
QmY7Yh4UquoXHLPFo2XbhXkhBvFoPwmQUSa92pxnxjQuPU
El formato multihash y la codificación base58btc habilitaron esta primera versión del CID, ahora referida como Versión 0 (CIDv0), y sus caracteres iniciales Qm... siguen siendo fáciles de reconocer.
Sin embargo, con el tiempo, surgieron dudas sobre si este formato multihash sería suficiente:
¿Cómo sabemos qué método se utilizó para codificar los datos?
¿Cómo sabemos qué método se utilizó para crear la representación de cadena del CID? ¿Siempre estaremos usando base58btc?
Para abordar estas preocupaciones, fue necesaria una evolución a la próxima versión de un CID. En las siguientes lecciones exploraremos lo que se agregó a la especificación para llevarnos a la versión actual del CID: CIDv1.