Hyperledger Fabric es una red permisionada, es decir, las organizaciones que conforman la red Blockchain tienen el poder de decidir cuales son los Peers encargados de endosar y aprobar transacciones. En el caso que se quiera añadir un nuevo peer a la red, esta debe ser mediante invitación por parte del administrador de la red, a diferencia de las blockchain públicas en donde cualquier persona puede instanciar su máquina o pc como un peer ya sea para mantener una copia del Ledger o participar en el consenso minando bloques.
Una red en Fabric, tiene la flexibilidad de configurar la privacidad de su cadena de bloques, es decir, se puede tener un caso de uso donde se necesiten compartir de manera pública las transacciones que se guardan en la cadena de bloques (como lo son la mayoría de los casos de usos gubernamentales) o un caso de uso en donde se mantiene privada la data guardada en la blockchain entre dos o más organizaciones.
Para el caso de uso aplicado en esta memoria, tenemos dos organizaciones que comparten un información relacionada al transporte de alimentos perecibles en una
cámara de frío. Estas organizaciones representan al agricultor que produce en este caso la fruta y al transportista quien transporta la fruta hacia el cliente. Como se explicó anteriormente la idea es hacer un monitoreo del estado de la temperatura de una cámara de frío, aplicando sanciones económicas al transportista en caso de inclumplir el rango de temperatura óptimo estipulado en el contrato firmado por ambas partes. La privacidad de estas transacciones están 100% protegida para ambas organizaciones, es decir, ninguna persona ajena a estas dos organizaciones puede tener acceso a la data guardada en la red Blockchain.
Por otro lado, los canales en Hyperledger Fabric están configurados con políticas de acceso que restringen el acceso a los recursos del canal (chaincode, transacciones y estado del ledger), preservando así la privacidad y confidencialidad de la información exclusivamente dentro de los nodos que se encuentran en el canal. Los canales logran una mejor calidad de robustez cuando un nodo está inactivo, se les da rutas alternativas para llegar al destino, mientras que también proporciona una escalabilidad que permite el intercambio efectivo de grandes cantidades de datos. Cabe destacar que los canales son útiles en los casos en que un subgrupo de participantes de la red de blockchain tienen muchas transacciones en común (lo suficiente como para justificar la creación de un nuevo canal de orden de transmisión), y estas transacciones pueden procesarse sin depender del estado controlado por entidades ajenas a este grupo.
Otro mecanismo de confidencialidad que implementa Hyperledger es Identity Mixer que 15 está disponible en la versión 1.3 de Hyperledger Fabric ( Versión no ocupada para el caso de uso implementado en esta memoria). Aprovecha ZKP ( prueba de conocimiento cero es español) para ofrecer autenticación anónima para clientes en sus transacciones. Los protocolos ZKP tienen lugar entre el cliente Fabric cuyo secreto es su identidad real y cualquier atributo asociado con él, y el resto de las entidades de la red.
15 https://hyperledger-fabric.readthedocs.io/en/release-1.2/idemix.html Página 63 de 75
7 CONCLUSIONES
Con la implementación exitosa del caso de uso propuesto, podemos asegurar que la sinergia entre las tecnologías IoT y Blockchain es posible gracias a las Blockchain privadas. La solución diseñada logró alcanzar todos los objetivos propuestos en esta memoria, comenzando con la implementación de una solución blockchain para el IoT hasta la evaluación de la seguridad y privacidad de los datos en la cadena de bloques. Hyperledger Fabric junto a Hyperledger Composer resultaron ser los pilares fundamentales para validar la integración de estas dos tecnologías.
Específicamente se logró implementar una red blockchain privada en tres máquinas virtuales, junto a un contrato inteligente en el cual fueron programados todos los casos de negocio del caso de uso estudiado. Por otro lado, se estableció una API rest que expone todas las funcionalidades de la red Blockchain junto a una web AngularJS que permite visualizar toda la información que está almacenada en la cadena de bloques y también realizar transacciones en esta red. Por último se programó un dispositivo IoT (ESP32) el cual envía transacciones de lectura de temperatura a la red Blockchain por medio de la API REST para que sea procesada y almacenada de manera segura y distribuida esta información.
Dado a la implementación exitosa del trabajo de esta memoria, se puede concluir que existe un enorme potencial para desarrollar soluciones Blockchain en soluciones IoT con Hyperledger Fabric, framework que ofrece disminuir el problema del IoT que es la seguridad y la privacidad de los datos. Luego de la validación de la solución, se recomienda el uso de Hyperledger como blockchain para ser aplicado a casos de usos empresariales en donde se use IoT para optimizar y monitorizar procesos.
Es importante recalcar que el objetivo de Hyperledger Fabric es aprovechar la tecnología Blockchain para ser aplicado en casos de usos donde se requiera un nivel de confianza mayor entre dos partes. En otras palabras, la Blockchain de Hyperledger no debe usarse solamente como base de datos en una sola organización, ya que no se aprovecha el algoritmo de consenso que implementa este framework. Desde Hyperledger recomiendan tener al menos dos organizaciones diferentes las cuales realicen transacciones. Se recomienda revisar los casos de usos actuales en la sección del estado del arte de este documento.
7.1 IOT
Como se estudió en la literatura, existen varias formas de vulnerar un sistema en el internet de las cosas, que van desde un hackeo desde el dispositivo físico hasta la aplicación que recoge y procesa los datos. Es por esto que Blockchain no es la solución definitiva para la seguridad del IoT en todas sus capas de su arquitectura, no obstante Hyperledger Fabric añade una seguridad extra en la capa de aplicación donde los datos son procesados y almacenado. Respecto a la capa de aplicación de una solución IoT podemos aseverar que Blockchain es una solución efectiva para asegurar la seguridad y
privacidad de los datos, lo cual queda refutado con el nivel se seguridad que ofrecen los sistemas Blockchain más conocidos como Bitcoin o Etherium, sistemas que actualmente no han sido vulnerados gracias a la descentralización de sus nodos. Aún hay que buscar la solución definitiva para enfrentar el problema de la seguridad y privacidad en el campo del Internet of Things, lo cual es un reto difícil debido al alto nivel de vulnerabilidades mostrados en todas las capas de la arquitectura del IoT.
7.2 BLOCKCHAIN
Desde el éxito de la criptomoneda Bitcoin, el mundo volcó la mirada hacia la tecnología que está por debajo de esta cryptocurrency. Blockchain ha sido catalogado como una tecnología disruptiva, la cual rompe todo esquema en lo que se refiere al procesado de las transacciones. Durante el último tiempo las blockchain públicas han permitido utilizar esta tecnología en casos de usos que están fuera de las criptomonedas, lo cual si bien está en etapa prematura, funciona perfectamente en aplicaciones realices.
La cadena de bloques ha sido comparada con el nacimiento internet por muchos expertos en el área. “Blockchain ha sido para las transacciones como el internet lo es para las comunicaciones” . 16
7.3 HYPERLEDGER FABRIC
Hyperledger Fabric es un framework potente, capaz de montar una red Blockchain robusta en poco tiempo, considerando los demás frameworks Blockchain. Fabric posee un consenso más simplificado que Blockchain pública, lo que conlleva un mejor performance en cuanto al uso de hardware de la máquina Virtual. Dado esto, se puede montar una red Blockchain permisionada en una máquina virtual sin tanta configuración de hardware. Según la experiencia con la implementación del caso de uso, se recomienda instanciar una maquina con una configuración minima de 8GB de RAM, 4 vCPU y 80 GB de almacenamiento.
Una ventaja no menor de este framework, es que no se necesita instanciar una criptomoneda para transar assets, lo que trae como consecuencia un impacto en el tiempo de desarrollo y deployment de la red Blockchain.
No obstante, hay que considerar el hecho que este framework se viene desarrollando desde el año 2015, por lo cual es un framework prematuro pero con mucho futuro. Hyperledger dentro de su programa de actualizaciones tiene planificado el lanzamiento de una nueva versión de HF cada 3 meses. Durante el desarrollo de esta memoria, se empezó trabajando con la versión 1.0 de Hyperledger Fabric y la versión 0.16 de Composer y Durante el término de la implementación ya estaba disponible la versión 1.3 de HF y 0.20 de Composer, lo que demuestra un real compromiso de la organización Hyperledger. Sin embargo este hecho dificulto la implementación debido a que en cada nueva versión trae nuevas funcionalidades y pequeños cambios en la arquitectura la cual no traía soporte para la versión anterior.
16Jorge Vergara de IBM. Blockchain Summit Latam Conference 2018, Colombia. Página 65 de 75
7.4 CONSENSO
Las Blockchain privadas al ser permisionadas (con acceso restringido), otorgan un nivel de confianza extra en la red, debido a que todos los peer participantes son conocidos, por consiguiente es difícil que existen nodos maliciosos dentro de la red. No obstante para tener un nivel de confianza alto en el consenso de la red se recomienda instanciar la mayor cantidad de nodos con el fin de mitigar el problema de la desconfianza. Se pudo corroborar que el consenso de Hyperledger Fabric requiere mucho menos poder computacional que Bitcoin o Etherium. Esto se debe a que en las redes Blockchain Privadas no es necesario usar un algoritmo de “minado” para lograr un consenso, si no que se usa una política de aprobación simple para aprobar transacciones. A través de la implementación del caso de uso se corroboró que se pueden ejecutar muchas transacciones a mismo tiempo, lo cual no es posible en las blockchain públicas como Bitcoin, en la cual está programada para generar bloques cada 10 minutos.