Aprende como enviar archivos en Blockchain con IPFS

El interés en el blockchain ha alcanzado niveles febriles últimamente. Si bien gran parte del rumor ha estado relacionado con aplicaciones de la cadena de bloques, como las criptomonedas y los ICO, la tecnología en sí es igual de emocionante. La cadena de bloques proporciona un protocolo de validación y confianza democratizado que ya ha interrumpido la actividad bancaria y está a punto de revisar la atención médica, los servicios financieros, las aplicaciones sociales y más.

Sin embargo, desde una perspectiva tecnológica, el blockchain no está exento de verrugas. La prueba actual de los mecanismos de consenso en el trabajo ha reducido la velocidad de las transacciones hasta niveles casi paralizantes. La espera de que se completen las transacciones de Bitcoin hace que la plataforma sea casi inutilizable para algunos y los Cryptokitties casi hacen que la red Ethereum se detenga.

Esto hace que el almacenamiento de datos o archivos grandes en la cadena de bloques no sea un arranque. Si la cadena de bloques apenas puede sostener pequeñas cadenas de texto que simplemente registran una transferencia de saldo entre dos partes, ¿cómo demonios vamos a almacenar archivos grandes o imágenes en la cadena de bloques? ¿Tendremos que estar de acuerdo con limitar la utilidad de la cadena de bloques a cosas que solo se pueden capturar en pequeñas cadenas de texto?

ENTREGA IPFS

La solución más prometedora que está disponible en la actualidad es IPFS, o sistema de archivos interplanetario, creado por la gente en Protocol Labs. Es un protocolo de igual a igual en el que cada nodo almacena una colección de archivos con hash. Un cliente que desea recuperar cualquiera de esos archivos tiene acceso a una buena capa de abstracción donde simplemente necesita llamar al hash del archivo que desea. Luego, IPFS peina los nodos y suministra al cliente el archivo.

Puedes pensar que es similar a BitTorrent. Es una forma descentralizada de almacenar y hacer referencia a los archivos, pero le brinda más control y se refiere a los archivos mediante hashes, lo que permite interacciones programáticas mucho más ricas.

Aquí hay algunos diagramas simples para que pueda ver el flujo de trabajo de IPFS.


  • Daniel quiere subir un archivo PDF a IPFS
  • Pone su archivo PDF en su directorio de trabajo.
  • Él le dice a IPFS que quiere agregar este archivo, que genera un hash del archivo (se puede decir que es IPFS porque el hash siempre comienza con Qm …)
  • Su archivo está disponible en la red IPFS.

Ahora supongamos que Daniel quiere compartir este archivo con su colega Fernanda a través de IPFS. Simplemente le dice a Fernanda el hash del paso 3 anterior. Luego, los pasos 1 a 4 anteriores solo funcionan a la inversa para ella.

Todo lo que ella debe hacer es llamar al hash desde IPFS y obtiene una copia del archivo PDF. Muy genial.

Agujero de seguridad

Hay un agujero de seguridad evidente aquí. Siempre que alguien tenga el hash del archivo PDF, puede recuperarlo de IPFS. Por lo tanto, los archivos confidenciales no son adecuados para IPFS en sus estados nativos. A menos que hagamos algo con estos archivos, compartir archivos confidenciales como registros de salud o imágenes no es un buen ajuste para IPFS.

Ingrese el cifrado asimétrico

Afortunadamente, tenemos herramientas disponibles que combinan muy bien con IPFS para asegurar los archivos antes de cargarlos en IPFS. El cifrado asimétrico nos permite cifrar un archivo con la clave pública del destinatario deseado para que solo ellos puedan descifrarlo cuando lo recuperen con IPFS. Una parte malintencionada que recupera el archivo de IPFS no puede hacer nada con él ya que no puede descifrarlo. Para este tutorial usaremos GPG para el cifrado asimétrico.

Vamos a editar un poco nuestro diagrama de flujo de trabajo para incluir el cifrado y descifrado:

  • Daniel quiere subir un archivo PDF a IPFS pero solo le da acceso a Fernanda.
  • Coloca su archivo PDF en su directorio de trabajo y lo cifra con la clave pública de Fernanda.
  • Él le dice a IPFS que quiere agregar este archivo cifrado, que genera un hash del archivo cifrado.
  • Su archivo cifrado está disponible en la red IPFS.
  • Fernanda puede recuperarlo y descifrar el archivo, ya que posee la clave privada asociada de la clave pública que se utilizó para cifrar el archivo.
  • Una parte maliciosa no puede descifrar el archivo porque carece de la clave privada de Fernanda.

Autores: Ingmar Frey y Raymundo Cámara Sánchez.
Patrocinado por: Consultores EMKT SA de CV.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.