La tecnología Blockchain es famosa por su enfoque financiero. Desde su creación, podemos encontrarnos aplicaciones y estudios en ámbitos como seguridad, privacidad, IoT, etc. Para aprovechar sus ventajas surgieron los contratos inteligentes (o smart-contracts) mediante los que diferentes modelos de negocio operan sobre las redes DLT (Distributed Ledger Technology). El objetivo del proyecto ÉPSILON es aprovechar las ventajas que puede ofrecer un ledger inmutable y sus contratos inteligentes en diversos entornos de computación. Para lograrlo, el proyecto consta de dos ramas diferenciadas, que se describen a lo largo de esta publicación.
Las virtudes de las DLTs han llevado a ampliar el abanico de sus escenarios de aplicación y a que cada vez sea más común su implantación en sistemas de ámbito empresarial, en los que un consorcio de organizaciones opera de acuerdo a una lógica de negocio común e inequívoca. Sin embargo, uno de los aspectos clave que penaliza la implantación de las DLTs es la complejidad de la interacción con ellas: a la implementación de los contratos inteligentes se suma la necesidad de desarrollar una aplicación cliente específica que, además de gestionar la autenticación ante los nodos de la red en nombre de una organización, sea capaz de interactuar correctamente con el código de los contratos inteligentes.
Ante esta dificultad, la primera línea de trabajo de ÉPSILON propone la utilización de un lenguaje de manipulación de datos para interactuar directamente con la DLT, reduciendo la cantidad de componentes específicos a construir para cada nuevo desarrollo. Por una parte, se proporciona el código base de un contrato inteligente, extensible por el desarrollador, que implementa una interfaz CRUD sobre el estado del ledger. Esta interfaz puede ampliarse con métodos propios, que actúan de forma análoga a los procedimientos almacenados en una base de datos. Por otra parte, se proporciona un servidor GraphQL que expone a los usuarios las operaciones que se pueden ejecutar sobre cada contrato. El motor GraphQL, que se sustenta sobre la interfaz de especificación del servicio, define el modelo de datos del contrato y garantiza que sólo se podrán ejecutar las operaciones permitidas, así como la validez de los parámetros recibidos.
De esta forma, la interacción con los nodos de la red se traslada a la simple operación con un servidor GraphQL, que tiene lugar mediante un lenguaje consolidado, sencillo y de alto nivel para la manipulación y consulta de datos. Con ello, se reduce el nivel de conocimiento necesario para operar con la red y la labor de los desarrolladores se simplifica en gran medida.
Por otra parte, los contratos inteligentes abren un abanico de posibilidades para la adopción de la tecnología Blockchain en diversos ámbitos. Para que este entorno sea sostenible, se han creado diferentes estándares relativos a los contratos inteligentes. Un estándar simplemente indica una serie de normas, en concreto, un conjunto de métodos y parámetros que debe cumplir la implementación del contrato. Además de los métodos predefinidos, el código puede contener cualquier lógica adicional, siempre y cuando no interfiera con la manera de trabajar especificada por el estándar. De este modo, los desarrolladores pueden incrementar las funcionalidades de la red blockchain, creando aplicaciones distribuidas y descentralizadas (DApps) que funcionarán sobre los contratos ya existentes, siempre que éstos respeten el estándar.
Con las mejoras e innovaciones en el ámbito de las DLTs han aparecido nuevos estándares con nuevas propiedades. El caso más visible es el de la red Ethereum, donde podemos encontrar diferentes estándares: ERC20, ERC721, ERC1155, etc. Estos estándares son los más extendidos y los más utilizados para los intercambios de tokens, debido a que Ethereum es la primera red que implementó los contratos inteligentes. Una vez el usuario deposita sus cripto-activos en un contrato inteligente, pierde el control sobre éstos. A partir de esta interacción, la lógica del contrato toma el control, estando sujeta a posibles vulnerabilidades en su implementación. Un claro ejemplo es el caso del robo de 50 millones de dólares en Ethereum debido a un error de programación.
A este respecto, en la segunda línea de trabajo de ÉPSILON se ha diseñado un protocolo para pagos fraccionados, con el objetivo de que la custodia de los cripto-activos no dependa de la implementación del contrato que presta el servicio. El protocolo se basa en bloqueos temporales y el uso de criptografía asimétrica, reduciendo las interacciones de los usuarios con la red blockchain durante el periodo de pago. El proceso se asemeja a un pago por consumo, donde el usuario compromete una cantidad de activos durante un lapso temporal y emite autorizaciones de pago off-chain a la entidad que le presta un servicio, el detalle del funcionamiento se puede observar en la siguiente imágen. Dichas autorizaciones deben remitirse a la red blockchain para obtener el pago. En caso de que el contrato quedara comprometido, no sería posible manipular los activos sin la autorización del propietario. Se ha decidido contribuir a la comunidad proponiendo este trabajo como una mejora del estándar ERC20, el más utilizado para la gestión de pagos fraccionados en la red de Ethereum
Desde ITI, seguimos trabajando en la identificación de escenarios donde la aplicación de la tecnología Blockchain permita desarrollar mecanismos de confianza para evitar problemas de disputa, estableciendo un árbitro imparcial en la forma de un registro inmutable, liberando así al usuario de tener que depositar su confianza en terceros. Igualmente, perseguimos facilitar la adopción de esta tecnología, su accesibilidad a los usuarios finales y el pleno aprovechamiento de su gran potencial.
Autores:
Javier Fernández-Bravo Peñuela – Investigador en Sistemas Distribuidos -ITI
Yuriy Yatsyk- Investigador en Sistemas Distribuidos -ITI