Blog técnico

Blockchain: Contratos Inteligentes – Smart Contracts I

COMPARTE ESTE POST

¿Qué es un Smart Contract?

Es un acuerdo entre dos o más partes que permite el traslado de contratos o cláusulas contractuales en lenguaje natural a código informático siendo capaz de autoejecutarse sin necesidad de intermediarios.

Los contratos inteligentes o Smart Contracts se desarrollan mediante scripts, es decir, mediante documentos que contienen instrucciones, escritos en códigos de programación. Es importante separar dos ámbitos de un contrato inteligente: el tecnológico y el legal.

Partes de un Smart Contract

Las partes que debe incluir todo contrato inteligente para que este se considere como tal y tenga validez son las siguientes:

Sujeto del contrato

El Smart Contract debe tener acceso a bienes o servicios bajo contrato para bloquearlos y desbloquearlos automáticamente.

Términos y condiciones

Los términos de un contrato inteligente toman la forma de una secuencia exacta de operaciones.

Firmas digitales

El inicio del acuerdo se establece cuando todos los participantes firman el contrato con sus claves privadas.

Plataforma descentralizada

El contrato inteligente se implementa en la Blockchain y se distribuye entre los nodos de la misma.

Ámbito tecnológico

¿Qué tecnología hay detrás de los Smart Contracts?

La información de los contratos inteligentes queda almacenada en miles de ordenadores o servidores que actúan como nodos en la red Blockchain, en los que se duplica la información con la seguridad de que nadie pueda alterarla. Cada vez que un bloque se confirma y se añade a la cadena se comunica a todos los nodos y este se añade a la copia que cada uno almacena.

La cadena de bloques es una red P2P en la que todos los nodos son iguales entre sí dando como resultado un sistema distribuido resistente a ataques informáticos, fallos o falsificaciones. La siguiente imagen establece el tipo de red óptimo para la tecnología Blockchain, desde un punto de vista teórico.

Los contractos inteligentes pueden aplicarse en las Blockchains privadas, públicas e híbridas. Una Blockchain pública permite el acceso a cualquier usuario en el mundo. Lo único que se necesita es un ordenador y una conexión a Internet. Por ejemplo, la Blockchain pública de Bitcoin se compone del protocolo Bitcoin, la unidad de cuenta o token bitcoin y la Blockchain la base de datos en la que se registran las transacciones.

Una Blockchain privada, a diferencia de una Blockchain pública, no está abierta al público, sino que solo se puede acceder a ella por invitación. Algunas de las más famosas son Hyperledger, R3 o Ripple.

Las Blockchain híbridas son una combinación de las públicas y privadas. En una Blockchain híbrida los nodos participantes son elegidos o restringidos por una persona o grupo de personas, pero todas las transacciones son públicas. Eso quiere decir que los nodos participan en el mantenimiento y seguridad de esta Blockchain, pero que todas las transacciones son visibles para usuarios en todo el mundo y que no tienen que conocer el contenido de la Blockchain, a diferencia de las Blockchains privadas en la cual las transacciones son privadas también.

¿Cómo se generan los Smart Contracts?

El primer paso es programar el código que da forma al contrato inteligente. Al utilizar un lenguaje de programación permite codificar exactamente lo que las partes del contrato desean que este haga. Cuanto más complejas son las condiciones, menor es la capacidad del contrato para ejecutarlas, al menos, hasta que esta tecnología madure. Los contratos inteligentes se ejecutan mediante condiciones cumplidas o no cumplidas que establecen el resultado.

El segundo paso es publicar el contrato en la Blockchain, ya sea en una Blockchain pública o privada. El hecho de que el contrato se publique no quiere decir que pueda ser leído por agentes externos al contrato, esto se debe a que los contratos están encriptados.

Una vez se publica el contrato, este queda almacenado en la Blockchain y puede ser ejecutado. Dado que está en la Blockchain, el contrato puede ser ejecutado por los nodos y es necesario que se llegue a un consenso sobre el resultado. Según lo definido en el contrato, puede ser necesario actualizar la cadena.

Es común que los contratos necesiten información externa a su propio contenido, esto se debe a que no toda la información necesaria para el cumplimiento de las cláusulas está integrada en los contratos. Los oráculos u oracles proporcionan los datos necesarios para desencadenar contratos inteligentes para ejecutarse cuando se cumplan los términos originales del contrato. Estas condiciones podrían ser cualquier cosa relacionada con el contrato inteligente: temperatura, finalización del pago, cambios de precios, etc.

Estos oráculos son la única forma en que los contratos inteligentes interactúan con datos fuera del entorno de Blockchain. Los oráculos u oracles proveen información externa a la que el contrato inteligente no puede acceder y actúan en representación suya para ejecutar acciones externas fuera de su alcance. No siempre es más eficiente usar oráculos externos, porque pueden incorporarse al propio contrato inteligente.

Parte de un Smart Contract de un arrendamiento de coche a cambio de ethers. (github.com/magonicolas/Ethereum-Solidity)

 Ámbito legal

El término Smart Contracts puede designar desde contratos o cláusulas contractuales en el lenguaje natural trasladados a código informático hasta casos más complejos representados y ejecutados directamente por scripts.

Para que un contrato inteligente pueda ser considerado un acuerdo legalmente vinculante y exigible ante los tribunales es necesario que reúna los requisitos legales esenciales de todo contrato: que concurra el consentimiento de las partes, que tenga un objeto lícito y una causa (motivo válido, incluyendo la contraprestación).

Los límites legales a la libertad de contratación deberán incluirse también en el Smart Contract para que este se considere válido y legalmente exigible. En algunos casos será necesario recurrir a soluciones mixtas que combinen parte en código con otras en lenguaje natural.

 Beneficios de los Smart Contracts

Cuando se habla de beneficios del uso de contratos inteligentes frente a los contratos tradicionales se tiene en cuenta tanto los beneficios de los contratos inteligentes como los beneficios de la tecnología que sustenta a estos.

Los contratos inteligentes además de tener la capacidad de autoejecutarse y por ende reducir tiempos y costos en recursos, tienen la ventaja de estar integrados en la Blockchain. Esto permite que toda la información quede registrada, sea inmutable, segura y accesible.

Como conclusión se puede extraer los siguientes beneficios de los Smart Contracts y la Blockchain:

  • Transparencia
  • Trazabilidad
  • Integridad
  • Autoría
  • Seguridad
  • Optimización de recursos
  • Elimina burocracia
  • Elimina figuras autoritarias

Contratos Inteligentes en la Industria 4.0

La Industria 4.0 concibe un nuevo paradigma en los sistemas de producción, pasando de la producción en grandes lotes hacia la personalización. Para ello, la digitalización se erige como piedra angular de esta revolución industrial, apoyándose en tecnologías como Industrial Internet of Things (IIoT), impresión 3D, comunicaciones entre máquinas (M2M), sensores inteligentes, etc.

Los datos como se ha comentado en Post anteriores cobran gran importancia. Dejarán de ser un mero resultado del proceso de fabricación y se convertirán en la base del producto o servicio.

Un sistema distribuido como el que proporciona Blockchain, permitirá la identificación, autentificación y la propia comunicación entre dispositivos. Por lo tanto, será posible registrar la actividad de cada sensor/actuador en la red industrial y garantizar así la integridad de los datos generados por la IIoT, sin miedo a la manipulación de registros y sus consecuencias.

Las fábricas inteligentes estarán compuestas por dispositivos IIoT y/o por módulos de fabricación conectados entre sí y que funcionarán de forma autogestionada o autosuficente. De esta forma, y mediante el uso de tecnologías como Blockchain, surgirá una nueva economía en la que los propios dispositivos, mediante comunicaciones M2M, serán capaces de llegar a acuerdos de suministro de materias primas, piezas, mantenimiento, energía y delegación y coordinación de la producción, e incluso también logísticos que, quedarán reflejados en los Smart Contracts y cuyo pago se ejecutará automáticamente cuando se cumplan las condiciones establecidas en el contrato.

Fuentes: Alex Preukschat (2017),Blockchain: La Revolución Industrial de Internet