Fujitsu desarrolla tecnología para verificar los riesgos del Blockchain
Fujitsu Laboratories y Fujitsu Research and Development Center han anunciado el desarrollo de una tecnología que puede verificar, de antemano, los riesgos asociados con los contratos inteligentes, que son programas que ejecutan automáticamente las transacciones en las plataformas de blockchain. La tecnología también identifica ubicaciones relevantes en el código fuente.
Se espera que la tecnología Blockchain, que se desarrolló como la base para Bitcoin, tenga aplicaciones en una variedad de campos más allá de las finanzas, que incluyen el sector inmobiliario y el cuidado de la salud. Sin embargo, debido a que los riesgos de los contratos inteligentes están directamente relacionados con las pérdidas comerciales, ha habido problemas para mejorar su confiabilidad como sistema. Ahora, Fujitsu Laboratories y el Centro de Investigación y Desarrollo de Fujitsu han desarrollado algoritmos para identificar las secuencias de transacción afectadas por el riesgo en Ethereum (1), una plataforma para ejecutar aplicaciones de cadena de bloques, utilizando la tecnología de ejecución simbólica (2). Al usar estos algoritmos, han desarrollado una tecnología capaz de detectar integralmente seis tipos de riesgos en contratos inteligentes (figura 1), que pueden pasar por alto en una revisión manual, y luego pueden identificar las ubicaciones relevantes en el código fuente. Esta tecnología permitirá a los desarrolladores de blockchain desarrollar rápidamente contratos inteligentes aún más seguros.
Los detalles de esta tecnología se anunciaron en el Taller Blockchains and Smart Contracts 2018 (BSC 2018), una conferencia internacional que se celebró en París, Francia, del 26 al 28 de febrero.
Antecedentes de desarrollo
La tecnología de Blockchain puede garantizar que, incluso sin un intermediario de confianza, los datos no se hayan alterado, y se espera que tenga aplicaciones no solo en el campo de las finanzas, sino también en administración de valores, registro de bienes raíces, salud y gobierno electrónico.
Blockchain ofrece una funcionalidad conocida como contratos inteligentes, en la cual un contrato se puede formar automáticamente en el sistema, y al usarlos, los contactos se pueden verificar y ejecutar automáticamente. Debido a que los contratos inteligentes se copian en múltiples ubicaciones y se ejecutan de forma distribuida, una vez que se ha ejecutado un contrato, no se puede detener fácilmente, y no se puede revisar, incluso si se encuentran riesgos en el contrato inteligente. De hecho, ha habido un incidente en el que, debido a que un contrato inteligente para crear una aplicación de confianza de inversión automática en blockchain era defectuoso, una gran cantidad de capital se transfirió incorrectamente.
Cuestiones
Con Ethereum, una plataforma de ejecución de la aplicación blockchain, los riesgos del contrato inteligente se agrupan en seis categorías (figura 1), pero las tecnologías anteriores para detectar los riesgos del contrato inteligente por adelantado no pudieron detectar todos los diferentes tipos. Para la autenticación de llamadas de origen a través de llamadas indirectas a través de múltiples contratos inteligentes, se producen cambios en la información en la llamada de origen de la transacción debido a una especificación de Ethereum, que puede ser objeto de abuso para evadir ilícitamente la autenticación. Las tecnologías anteriores no podían detectar el riesgo, ya que no podían rastrear la información interna de la transacción.
Acerca de la tecnología recién desarrollada
Ahora, Fujitsu Laboratories y el Centro de Investigación y Desarrollo de Fujitsu han desarrollado tecnologías para detectar automáticamente los riesgos en contratos inteligentes para Ethereum que no pudieron detectarse previamente, y también para identificar las ubicaciones relevantes en el código fuente (figura 2).
Los detalles de la tecnología son los siguientes:
1. Tecnología para detectar riesgos de contratos inteligentes utilizando tecnología de ejecución simbólica
Fujitsu Laboratories y el Centro de Investigación y Desarrollo de Fujitsu han desarrollado un algoritmo para identificar integralmente errores en el código fuente que podrían generar el riesgo de que alguien abuse de las especificaciones del lenguaje de Ethereum para falsificar el origen de una llamada de transacción, mediante el uso de ejecución simbólica para ejecutar virtualmente transacciones bajo una variedad de circunstancias de acuerdo con el código fuente basado en la secuencia de procesamiento incorrecto hasta las reglas de autenticación establecidas de antemano, los resultados de una comparación con patrones de código exclusivos de Ethereum vinculados con fraude, y sobre la presencia o ausencia de acceso a registros de transacciones exclusivos de la tecnología blockchain. Esta tecnología proporciona una detección de riesgos completa y altamente precisa.
2. Tecnología para identificar con precisión lugares relevantes en el código fuente para riesgos descubiertos
Los Laboratorios Fujitsu y el Centro de Investigación y Desarrollo de Fujitsu han desarrollado tecnología para identificar a qué parte del código fuente se aplica con mayor precisión un riesgo recientemente descubierto. Esta tecnología hace posible la ejecución simbólica eliminando comandos no utilizados de un archivo de ejecución de depuración, con información de código fuente, que corresponde a los archivos de ejecución de Ethereum, lo que permite identificar las ubicaciones del código fuente que corresponden a los riesgos identificados en el archivo de ejecución estimando la relación correspondiente entre el archivo de ejecución y el archivo de ejecución de depuración usando información tal como los tipos y la secuencia de comandos de procesamiento ejecutados virtualmente.
Resultados
Usando esta tecnología recientemente desarrollada, las dos compañías encontraron que donde las herramientas de verificación previas (3) tenían una tasa de detección de alrededor del 67%, esta nueva tecnología era capaz de detectar el 100%, exceptuando unos pocos artículos, y que en términos de precisión lograba una tasa de precisión de hasta 88%, que permite tanto la detección de riesgos de alta precisión como la identificación de ubicaciones de riesgos del código fuente. Debido a que la identificación excesiva del riesgo es rara, esta tecnología permitirá un desarrollo de contratos inteligentes más eficiente y, combinado con la tecnología de identificación de ubicación de riesgo, también se espera que reduzca la carga de trabajo involucrada en tareas tales como comprensión de especificaciones, evaluación del código y corrección del código. Esta tecnología contribuirá a la aplicación eficiente de la tecnología blockchain en una amplia variedad de campos.
Planes futuros
En el futuro, Fujitsu Laboratories continuará desarrollando tecnologías de verificación, no solo para Ethereum, sino también para Hyperledger Fabric (4), una implementación de framework blockchain y uno de los proyectos de Hyperledger hospedados por The Linux Foundation, con el objetivo de comercializar esta tecnología durante el año fiscal 2018. Además, Fujitsu Laboratories no solo continuará desarrollando tecnología de verificación para contratos inteligentes, sino también un amplio desarrollo tecnológico relacionado con la construcción de sistemas seguros utilizando blockchain.
[1] Ethereum
Una plataforma de ejecución de aplicaciones blockchain principalmente orientada al público.
[2] Tecnología de ejecución simbólica
Tecnología para investigar exhaustivamente el funcionamiento de un programa en respuesta a cada variable posible de un valor.
[3] Herramientas de verificación anteriores
Verificación utilizando Oyente, una herramienta inteligente de análisis de contratos para Ethereum.
[4] Hyperledger Fabric
Una implementación de framework de blockchain y uno de los proyectos de Hyperledger que pretende ser una base para desarrollar aplicaciones o soluciones con una arquitectura modular. Hyperledger Fabric permite que los componentes, como el consenso y los servicios de membresía, sean plug-and-play y aproveche la tecnología de contenedor para alojar contratos inteligentes llamados "chaincode" que comprenden la lógica de aplicación del sistema.