2021-01-15 | 14 mins
Cómo usar Nasuni UniFS® como un sistema blockchain para resolver los problemas de regulación, escalabilidad y falta de almacenamiento de la cadena de bloques.
Hoy en día todo el mundo quiere tener un blockchain, sus virtudes son aclamadas mientras que sus limitaciones son poco conocidas. Resolver estas limitaciones para conseguir que el blockchain se aplique a un problema real ha llevado a una amplia variedad de implementaciones de blockchains y tipos de blockchains que de alguna manera se alejan de su enfoque inicial pero mantienen algunas de sus virtudes.
Ahora tenemos; blockchains públicas, blockchains federadas, blockchains de consorcio, blockchains privadas, blockchains de almacenamiento, blockchains con capacidad de computación limitada, blockchains con más capacidad de computación, blockchains inteligentes basadas en contratos, blockchains de permiso, blockchains sin permiso, blockchains de protocolo 2, blockchains con fragmentos, blockchains basadas en pruebas de trabajo, blockchains basadas en pruebas de apuestas, blockchains basadas en pruebas de espacio y así sucesivamente... Pero, ¿alguien puede decirme qué demonios es un blockchain?
El objetivo de este artículo es demostrar que Nasuni implementa un sistema de almacenamiento basado en los principios fundamentales de la tecnología blockchain mientras mejora o incluso elimina completamente sus problemas más importantes para el caso de uso de un consorcio o cadena de bloques privada.
Las estructuras de datos blockchain se popularizaron en 2009 con el documento de Satoshi Nakamoto titulado "Bitcoin: A Peer-to-Peer Electronic Cash System". En este paper Satoshi utiliza una estructura de datos de cadena de bloques como un libro mayor para almacenar de forma segura el historial de transacciones de bitcoin. Pero, las ideas detrás de la cadena de bloques son bastante viejas, y se remontan a un papel de Haber y Stornetta en 1991.
Su propuesta era un método para el sellado de tiempo seguro de los documentos digitales, en lugar de un esquema de dinero digital. El objetivo del sellado de tiempo es dar una idea aproximada de cuándo se creó un documento. Lo más importante es que la estampación de tiempo refleja con precisión el orden de creación de estos documentos: si uno llegó a existir antes que el otro, las estampaciones de tiempo lo reflejarán. Para que esto sea seguro, se requiere que la marca de tiempo de un documento no pueda ser cambiada después del hecho.
En resumen, los sistemas blockchain utilizan la criptografía de clave pública para crear una cadena de contenido sólo de apéndice, inmutable y con sello de tiempo. Se distribuyen copias de la cadena de bloques en cada nodo participante de la red.
Los sistemas de cadenas de bloques son teóricamente ideales para almacenar información altamente sensible por tres razones.
Dicho esto, hay una serie de cuestiones que hacen prácticamente imposible utilizar un sistema de cadena de bloques para almacenar información a escala de producción.
Consenso y prueba de trabajo: Las cadenas de bloques orientadas a las transacciones en efectivo fueron posibles gracias a la distribución, nadie tiene el control en sí mismo, y esta distribución se hizo realidad a través de algoritmos de consenso, y un mecanismo de reducción de ruido llamado prueba de trabajo.
En la propuesta de Satoshi, para ganar el derecho de proponer a otros nodos una nueva pieza de información que se guardará en la cadena, hay que resolver un puzzle (un puzzle hash) que es computacionalmente complejo y costoso, y poner en la propuesta la prueba de que se ha resuelto. Esta información es luego validada por cada nodo de la red en base a las reglas de un protocolo de consenso y todos los nodos que siguen el mismo protocolo eventualmente almacenarán la pieza de información y construirán la misma cadena.
Sin embargo, este mecanismo, que encaja perfectamente y que hizo posible los sistemas de dinero electrónico, es extremadamente lento y costoso para casi todo lo demás.
Costo de almacenamiento: Las redes de cadenas de bloques tratan de reunir los muchos nodos mejor para mejorar su fiabilidad. Además, tratan de mantener los almacenamientos de estos nodos tan pequeños como sea posible (la última tendencia es hacer funcionar los nodos en dispositivos de frambuesa pi). Todo lo que se escribe en una cadena de bloques se replica en cada uno de los nodos de la red, por esta razón, escribir más de 1 MB es extremadamente caro o simplemente no está permitido.
Escalabilidad de la operación: Este es probablemente el mayor problema y fuente de disputa e investigación con los sistemas de cadenas de bloques en este momento. Actualmente, en todos los protocolos de cadenas de bloques cada nodo almacena todos los estados y procesa todas las transacciones. Esto proporciona grandes niveles de disponibilidad y resiliencia, pero también limita enormemente la escalabilidad: una cadena en bloque no puede procesar más transacciones de las que puede procesar un solo nodo. En parte debido a esto, Bitcoin está limitado a ~3-7 transacciones por segundo, Ethereum a 7-15, etc. Esta proporción resulta insuficiente incluso para una sola empresa, donde puede haber fácilmente cientos de registros por segundo.
Cumplimiento de normativas: Si el sistema de cadenas de bloques va a almacenar datos sensibles o personales, la forma de instrumentar y gestionar este almacenamiento, acceso y recuperación de información tiene que estar alineada con regulaciones como GDPR, HIPPA, etc.
Difícil de integrar: Casi todas las aplicaciones utilizadas por las empresas hoy en día son compatibles con los protocolos de intercambio de archivos CIFS/SMB y NFS. Como resultado, las aplicaciones pueden leer y escribir en cualquier servidor de archivos o dispositivo NAS que admita estos estándares. Este no es el caso de la cadena de bloques.
El almacenamiento de objetos es una arquitectura de almacenamiento de datos informáticos que gestiona los datos como objetos, a diferencia de otras arquitecturas de almacenamiento como los sistemas de archivos que gestionan los datos como una jerarquía de archivos, y el almacenamiento en bloque que gestiona los datos como bloques dentro de sectores y pistas. Este almacenamiento de objetos trata cada pieza de información (el objeto) como una cadena de unos y ceros que puede tener un tamaño de hasta 5 TB y una serie de etiquetas o metadatos, incluido un identificador global y único, asociado a esa cadena. Estos objetos suelen ser archivos, aunque no se traten como tales, y una vez almacenados, la masa se denomina "datos de archivo no estructurados".
Simple, bello y altamente robusto.
Dada esa simplicidad, estos objetos son fácilmente replicables entre cabinas de discos, centros de datos o localizaciones, y como estos objetos no tienen relación entre sí, la infraestructura que los soporta es sencilla y altamente escalable.
Los proveedores de nubes públicas, típicamente ofrecen una gama de servicios de almacenamiento de objetos diseñados para una durabilidad de alrededor del 99.999999999% y una disponibilidad del 99.99% de los objetos durante un año determinado. Eso es enorme. Por lo general, los clientes deciden qué niveles de replicación y disponibilidad desean a través de diferentes clases o niveles de almacenamiento.
Adicionalmente ofrecen encriptar la información en reposo con claves proporcionadas por ellos, proporcionadas por el cliente o incluso el cliente puede encriptar la información antes de subirla y luego volver a encriptarla una vez allí.
Para nuestros propósitos, esto nos da un robusto backend para el almacenamiento de datos en bruto con altos niveles de replicación y confidencialidad, pero aún tenemos problemas por resolver; ¿cómo tratamos toda esta información de manera eficiente? ¿Cómo obtenemos las funcionalidades básicas de un sistema de archivos convencional? ¿Cómo hacemos que la información sea fácilmente integrable con las aplicaciones existentes u otros sistemas de archivos?
Añadamos un poco de azúcar en por lo alto.
Nasuni® Cloud File Services™ está fundamentado en UniFS®, un software descargable que es el primer sistema de archivos global diseñado para el almacenamiento moderno de objetos en nube, y que permite a los usuarios acceder a sus proveedores externos de almacenamiento de archivos desde cualquier lugar de forma rápida, segura y protegida. Mediante Nasuni Cloud File Services, las organizaciones pueden almacenar, proteger, sincronizar y colaborar en datos de archivos no estructurados, desde los que se utilizan activamente hasta los que están inactivos, en todas las ubicaciones.
UniFS está diseñado en torno a principios WORM y nunca sobreescribe un objeto una vez que está escrito. Esto significa que los archivos en el sistema de archivos se mantienen inmutables por UniFS. Esto también se aplica a las versiones de los archivos: cada cambio de archivo se marca con la hora así como su propio objeto para proporcionar una protección completa de los datos, eliminando la necesidad de herramientas o procesos de copia de seguridad y replicación de archivos por separado.
Cada nodo/dispositivo incluye Nasuni Continuous (e infinito) File Versioning, un software que es un caché de alto rendimiento que toma instantáneas periódicas del sistema de archivos. Esta instantánea continua captura los cambios de los archivos a medida que se producen y transmite sólo esos cambios al sistema de almacenamiento en nube de terceros, de modo que el sistema de almacenamiento en nube de terceros siempre contiene la última versión de cada archivo del cliente. También proporciona una protección de datos a nivel de archivo altamente granular que ofrece mejores puntos y tiempos de recuperación en comparación con la copia de seguridad de archivos tradicional, eliminando la necesidad de hardware, software y mantenimiento de copia de seguridad.
Cada cambio en cada archivo se transmite de forma segura al sistema de archivos nativo de la nube, UniFS, que mantiene el registro inmutable de cada versión de archivo en los almacenes públicos de objetos en la nube como Azure o Amazon Web Services.
Dicho esto, comparando a Nasuni con un blockchain tenemos:
Las cadenas de bloques blockchain, en su naturaleza más básica, son máquinas de estados de información de aplicación exclusiva que ultraproducen esta información almacenada para mejorar su disponibilidad y resistencia. Debido a este alto nivel de replicación, el almacenamiento de información tiende a ser muy caro o incluso imposible.
Con Nasuni en combinación con el almacenamiento de objetos en la nube, podemos aprovechar las ventajas fundamentales que hacen que las cadenas de bloques sean alabadas, al tiempo que nos libramos de los inconvenientes.
Al menos, no para los sistemas de dinero electrónico, sino para los sistemas de almacenamiento de información. Pero recuerden, la información hoy en día es incluso más valiosa que el dinero.
Así que tiene sentido almacenarla en una caja fuerte.
Muchas industrias con procesos de información altamente críticos y regulados, como la sanitaria, la farmacéutica, la bancaria, la automovilística, las infraestructuras o el transporte, pueden beneficiarse de un sistema de almacenamiento de información distribuido, seguro y altamente disponible, similar a una cadena de bloques, que les permita cumplir los requisitos normativos y evolucionar de forma sostenible y saludable.
También puedes leer este artículo en inglés en Medium
Por Javier Jiménez
Director General
© Grayhats | 2021-01-15
Buscamos reflejar nuestro compromiso y calidad a través de certificaciones reconocidas. Estándares rigurosos que garantizan nuestra excelencia operativa.