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.
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.
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.
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.
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.
Creamos nuevos productos y servicios superiores hibridando la tecnología con los modelos de negocio
¿En que estás interesado?
¡Ya has completado el formulario!
¡Ya has completado el formulario! Revisaremos tu solicitud y nos pondremos en contacto contigo lo antes posible.
Gracias por confiar en nosotros.