web-enzyme-v2-logo-white
logo-enzyme-2-blog

Blockchain 2.0: Los Smart Contracts

Casi todo el mundo ha oído hablar de Blockchain como un recurso tecnológico que permitirá generar, verificar y sincronizar entre los nodos de una red descentralizada de computadoras la información almacenada en archivos distribuidos, siendo esa información mayoritariamente transacciones de valor (comúnmente asociadas directamente al dinero). A este uso comúnmente se le llama Blockchain 1.0. Pero los protocolos blockchain se pueden utilizar para otros usos menos conocidos o menos utilizados, como puede ser la ejecución de pequeños scripts o programas (conocidos como Smart Contracts) en donde el registro de información no está directamente relacionado con dinero, sino que se almacena cualquier otro tipo de archivo o activo físico susceptible de ser representado digitalmente.

En las comunicaciones realizada por Satoshi Nakamoto en 2009 con la especificación de Bitcoin, se comentaba lo siguiente:

“…el diseño soporta una gran variedad de posibles tipos de transacción que diseñé hace años. Transacciones de fideicomisos, contratos, arbitrajes de terceras partes, firmas de varias entidades, etc. Esto son cosas que habrá que explorar con Bitcoin en el futuro, pero deberán estar diseñadas desde el principio para asegurarse que será posible hacerlas...”

Estas palabras de Satoshi Nakamoto en 2009 suponían el preludio a lo que hoy conocemos como Blockchain 2.0. Si se parte de la base que Blockchain 1.0 está pensado básicamente para las transacciones económicas y pagos, se puede pensar que Blockchain 2.0 está pensado para la gestión y transferencia de activos y cualquier otro tipo de bien que pueda estar en un registro público.

Si quieres saber cómo reducir costes y aumentar la facturación mediante  Blockchain, accede al Webinar aquí

Y es ahí donde reside su potencia: Blockchain 2.0 supone el paso de las criptomonedas al mundo de las aplicaciones reales. La base del Blockchain 2.0 son los Smart Contract que se encargan de ejecutar de forma automática acciones programadas sobre la blockchain en la que se ejecutan.

 

¿Qué es un Smart Contract?

Un Smart Contract, o contrato inteligente, es un trozo de código ejecutable en la blockchain que, dado unos parámetros de entrada, produce siempre el mismo resultado independientemente de quién lo ejecuta (concepto conocido como “determinismo”). Es un programa informático que ejecuta acuerdos establecidos entre dos o más partes, haciendo que ciertas acciones sucedan como resultado de que se cumplan una serie de condiciones específicas. Es decir, cuando se da una condición programada con anterioridad, el contrato inteligente ejecuta automáticamente la cláusula correspondiente (”si se cumple X entonces que se ejecute Y”).

La idea de un Smart Contract es la de poder tener aplicaciones programables que permitan la ejecución automática de tareas utilizando la blockchain en la que se ejecuten. Y ha sido en la blockchain de Ethereum en donde los Smart Contracts han alcanzado su razón de ser, su ecosistema natural de ejecución. Ahora bien, aunque normalmente se asocien los Smart Contracts solo a la blockchain de Etereum, lo cierto es que hay otras blockchain que permiten la ejecución de estos contratos, como por ejemplo Cardano, Tezos, EOS, etc. 

Al tratarse de programas informáticos, los Smart Contracts se pueden codificar en varios lenguajes de programación (siendo Solidity y Go los más comunes) y desencadenarán la lógica en ellos programada cuando se produzcan determinados eventos, utilizando la blockchain sobre la que se desplieguen como la fuente de datos para realizar las transacciones para las que están programados. Una vez compilados y enviados a la blockchain, quedarán vinculados a una dirección de esa blockchain, de manera que cuando se produzca cualquier evento que esté contemplado en el contrato, se enviará la transacción correspondiente a la dirección del contrato, y el protocolo de la blockchain ejecutará la programación asociada a dicho contrato utilizando los datos que hayan sido enviados.

 

¿Cómo funciona un Smart Contract?

Lo mejor para entender el concepto de un Smart Contract es hacer una analogía con una máquina expendedora: cuando se introducen en la máquina monedas por el importe de un determinado producto (una lata de Coca-Cola, por ejemplo), la maquina ejecuta internamente un código que acaba finalmente con la provisión (o no) de la bebida. La máquina tiene programado que sólo puede lanzar el evento de suministrar la bebida si se ha introducido el precio de la bebida, y no hacerlo en caso contrario. Además, tiene programado que, en caso de haber introducido más dinero del que cuesta el producto, la máquina te devuelva el cambio y que en caso de no haber un producto seleccionado aparezca en la pantalla ‘Producto Agotado’. No hay intervención humana, no hay dialogo posible, no hay precio negociable: si se cumplen las condiciones la bebida se dispensará, si no se cumplen, no se obtendrá.

Esta programación interna de la máquina es lo que sería el Smart Contract, y las partes implicadas son la propia máquina y el usuario/cliente. Las reglas del contrato inteligente podrían ser las reglas que hemos mencionado anteriormente, y que se ejecutarán por sí solas si se cumplen las acciones correspondientes.

En el lenguaje informático esto funciona como una sentencia condicional llamada ‘if – then’, que significa “si… entonces…” y viene a simbolizar que “si se cumple la condición X… entonces que se ejecute Y…” En el ejemplo anterior, estos acuerdos serían algo así: 

“Si se cumple que el usuario ha introducido dinero suficiente y pulsa la combinación ‘027’, entonces saldrá la lata de Coca-Cola.  “Si se cumple que el usuario ha introducido más dinero que el necesario, entonces se le devuelve la diferencia.” “Si el usuario introduce el dinero y pulsa ‘027’ pero no hay artículo, entonces poner mensaje de ‘Producto Agotado’”.

Así funcionaría a grandes rasgos un contrato inteligente. Pero claro, este contrato se podría complicar aún más y programar por ejemplo nueva lógica que cubriera la eventualidad de que determinado producto se agote, algo del tipo “si se acaba el producto ‘027’  lanzar automáticamente un evento/alarma al proveedor de latas de Coca-Cola para que venga a reponer”. Esto eliminaría al intermediario que tuviera que estar vigilando la máquina, pues es la propia máquina expendedora la que podría llamar por sí mismas a los proveedores, eliminando así también los costes de tiempo y dinero en dicho proceso y simplificando mucho más la tarea. Es por ello que las aplicaciones y proyectos asociados a la tecnología IoT (Internet of Things) va tan de la mano a la evolución de los Smart Contracts y de sus posibilidades.

Entendida la idea y sus posibilidades podrían pensarse ahora nuevos casos de uso en los que aplicar un Smart Contract, pero ya no para programar una simple máquina expendedora sino para aplicarlos en situaciones cotidianas (en contratos de trabajo, contratos de alquiler de propiedades, contratos de compra-venta de bienes, etc).

Una vez establecidas las normas del contrato y puesto en marcha, éste actuará de forma autónoma y automática sin necesidad de que las partes implicadas en el mismo interactúen ni busquen mediación en caso de desacuerdo.

 

¿Cuáles son los beneficios de un Smart Contract?

  • Autonomía: Estos contratos se dan siempre entre una o varias personas o entes legales, pero sin ningún intermediario. No es necesario alguien que valide el contrato, como podría ser un abogado o un notario. Por ello reducen, e incluso pueden llegar a eliminar, cualquier persona extra que no esté implicada en el contrato.
  • Costes: Al ser contratos en los que no se depende de un tercero, se reducen los costes. Menos intervención humana resulta en costes reducidos.
  • No admiten interpretaciones: una de las grandes desventajas de los contratos tradicionales es la interpretación del mismo; en el caso de los contratos inteligentes las condiciones son totalmente claras y concisas.
  • Seguridad y transparencia: estos contratos inteligentes se basan en la tecnología blockchain, la cual permite registrar los acuerdos de manera invariable e inmutable. Nada ni nadie lo pueden hacer desaparecer y siempre se tiene acceso a ellos.
  • Confianza: Todos los contratos inteligentes van directos a la cadena de bloques. Esto hace que: 1) se pueda controlar los accesos, de manera que solo las personas implicadas puedan leerlo, y 2) permite la interacción entre personas que no se conocen entre sí, sin que haya riesgo de estafa.
  • Velocidad: Los contratos inteligentes utilizan código de software para automatizar las tareas que de otro modo se realizarían por medios manuales. Por lo tanto, aumentan la velocidad de los procesos de negocio y son menos propensos a errores manuales. Además, como los contratos se ejecutan automáticamente en el momento en que se alcanzan las condiciones pactadas, son muy rápidos a la hora de resolver el acuerdo. El proceso de ejecución descentralizado elimina el riesgo de manipulación, ya que la ejecución es gestionada automáticamente por toda la red, en lugar de por una parte individual.
  • Anonimato: dos personas pueden llegar a un acuerdo sin que una tercera persona tenga que enterarse; el contrato será un programa que ejecutará lo que se hayan pactado ambas partes.
  • Nuevos modelos de negocio: Los contratos inteligentes, a través de sus bajos costos para asegurar transacciones confiables, permiten nuevos tipos de negocios como el acceso automatizado a información de los bienes, su trazabilidad y su verificación de autenticidad. Esto puede abrir nuevas vías de emprendimiento si lo juntamos con otras tendencias emergentes como el Internet de las cosas (IoT).

 

¿Y cuáles son las desventajas?

  • Es una tecnología relativamente nueva, que no tiene aún la total confianza entre las personas o entidades que quieran utilizarlo. Y la tecnología subyacente es blockchain, difícil de entender y aún no de uso generalizado.
  • La dificultad que supone crearlos, ya que es necesario contar con conocimientos de programación para su elaboración. Por lo tanto, sería necesario recurrir a personas que tengan dichos conocimientos, y si los contratos son complejos y con implicaciones legales éstos deberán ser asesorados durante el proceso de creación por personal con conocimientos de leyes. No obstante, muchos proyectos como Ethereum han dado la posibilidad de crear los contratos con mayor facilidad y a través de una interfaz más amigable. Aunque a la vez, cabe señalar nuevamente que esta tecnología cuenta con pocos años en la práctica, por lo que posiblemente en un futuro crear un contrato inteligente sea tan fácil como hacer un blog en la actualidad. 
  • Las regulaciones y legislación de cada territorio: en la actualidad, debido al poco conocimiento que se tiene de éstos y la casi nula implementación, la mayoría de los países no poseen leyes que los impliquen. Además no están plenamente reconocidos por todos los organismos y las instituciones, por lo que su uso puede no estar autorizado para determinados trámites gubernamentales o jurídicos.
  • Un error de programación puede ocasionar una brecha de seguridad a través de la cual pueda robarse los fondos depositados en el acuerdo (si los hubiera).
  • El contrato no es modificable: A pesar de que la imposibilidad de modificación del contrato es un punto a favor en cuanto a seguridad, también es una desventaja ante determinadas situaciones. Y es que en muchas ocasiones pueden haber agentes externos que puedan/deban alterar el acuerdo por alguna razón (por ejemplo si sucede un desastre natural, o una situación de excepcionalidad, que debiera modificarse las condiciones pactadas caso de no estar recogida tal eventualidad en el propio contrato).
  • A pesar de que se está trabajando en una blockchain con la posibilidad de ser modificada, esto quitaría el aspecto más beneficioso de la misma, ya que al permitir dicha acción podría facilitar los ataques informáticos para alterarla. 

 

Ejemplos de casos de uso

Servicios financieros
  • Liquidación de operaciones: los contratos calculan importes de liquidación y transfiere fondos automáticamente.
  • Pagos de cupones y bonos: los contratos calculan y pagan automáticamente de forma periódica los cupones y devuelve el capital al vencimiento de los bonos.
  • Microseguros: el contrato calcula y realiza micropagos basados en datos de uso de un dispositivo conectado a Internet (por ejemplo, un seguro automotriz de pago por uso).
  • Depósito en garantía en el registro de la propiedad: el contrato supervisa la información externa a la cadena de bloques y una vez transferida la propiedad de un vendedor a un comprador, el contrato ingresa automáticamente los fondos al vendedor.
  • Préstamos: si la persona que contrata el préstamo no realiza el pago en el tiempo estipulado, se ejecutaría el contrato para retirarle las garantías.
  • Herencias: una vez que el contrato puede verificar el fallecimiento de la persona, automáticamente las propiedades quedan repartidas y asignadas entre los herederos.
  • Automatización de pagos y donaciones: se pueden acordar pagos o donaciones periódicas o puntuales a personas o entidades. El contrato inteligente lo que haría es verificar que se cumplen las reglas para realizar automáticamente la donación.
Servicios de la salud
  • Expedientes médicos electrónicos: los contratos proporcionan transferencias y accesos a los historiales médicos tras la aprobación de múltiples firmas entre pacientes y proveedores.
  • Acceso a los datos sanitarios de la población: se conceden a las organizaciones de investigaciones sanitarias el acceso a determinada información sanitaria personal. A cambio, a través de los contratos, se realizan micropagos automáticamente al paciente para su participación.
  • Seguimiento de la salud personal: se realiza un seguimiento de las acciones relacionadas con la salud de los pacientes a través de dispositivos IoT (Internet of Things), dispositivos médicos conectados a Internet). Los contratos generan automáticamente eventos basadas en hechos específicos detectados por esos dispositivos.
Servicios de propiedad intelectual
  • Distribución de royalties: el Smart Contract calcula y distribuye los pagos de royalties a artistas y otras partes asociadas según los términos acordados.
Servicios energéticos
  • Estaciones autónomas de repostaje de vehículos: el contrato podría procesar de manera integral una estación de servicio, desde la gestión de las ordenes por parte de los clientes (autorizaciones de suministro, gestión integral de los pagos, etc) hasta desencadenar la alarma al suministrador ante escasez de combustible.
Servicios trazabilidad
  • Hoy día se utilizan ya los Smart Contracts para realizar una trazabilidad de algunos productos de comercio internacional como alimentos, medicamentos, vehículos e incluso contenedores llenos de mercancía. A modo de ejemplo el gigante danés Maersk (logística basada en el envío de contenedores) traza el envío de su cadena de suministro de envíos por todo el mundo a través de un protocolo Blockchain denominado TradeLens desarrollado e impulsado por IBM.
Servicios del sector público
  • Votación: valida los criterios del votante, registra el voto en la cadena de bloques e inicia acciones específicas como resultado del voto mayoritario. Esto es posible en una votación tanto a nivel de encuesta como a nivel estatal.
  • Apuestas: dos o más partes pueden apostar sin que se resienta su seguridad y sin necesidad de un tercero a través de un contrato inteligente que asegure unas condiciones concretas.
  • Propiedades inteligentes: todos los objetos que se puedan conectar a Internet se consideran propiedades inteligentes (del inglés, smart property), de manera que una casa, un coche, una nevera, una lavadora... todos pueden ser gestionados con contratos inteligentes para poder venderlos o alquilarlos de forma automatizada.

 

A modo de resumen, un contrato inteligente funciona de forma que las partes plasman en un programa informático los términos de su acuerdo, quedando éste almacenado en la blockchain (normalmente se suele utilizar la blockchain de Ethereum) y cuando se dan los términos descritos, el sistema ejecuta el contrato y se ejecutan las transacciones descritas en el mismo.

 Blockchain 2.0 se nos presenta como un nuevo marco para el desarrollo de contratos inteligentes y el desarrollo de mercados con aplicaciones similares a las que tenemos en la actualidad en los mercados digitales, pero utilizando la potencia del blockchain.

Muchos expertos sugieren que los contratos inteligentes entrarán gradualmente en nuestra vida cotidiana, sustituyendo muchos de los procedimientos actuales. La aportación más obvia es por supuesto la sustitución de los contratos tradicionales en papel, en donde intervienen notarios y abogados, transformándolos en plantillas estandarizadas de contratos inteligentes, o fusionándose en un híbrido de papel y contenido digital donde los contratos se verifican a través de blockchain y se corroboran mediante copia física.

Sin embargo, como hemos comentado en este artículo, sus usos se van a expandir a prácticamente todos los ámbitos de la vida diaria: en todas las áreas donde sea necesaria una comunicación entre dos o más partes (ya sean éstas entes vivos o máquinas) este tipo de contratos permiten que esa comunicación sea cien por cien veraz, segura, rápida y de bajo coste.

Posts relacionados
¡Comparte con tus contactos!
   

Comenta este artículo...

ebook blockchain

Suscríbete y no te pierdas ninguna novedad

New call-to-action

¡Comparte con tus contactos!

   
New call-to-action