Hace unas semanas estuvimos hablando en este blog sobre blockchain. En esta ocasión, vamos un paso más allá y analizaremos una posibilidad de esta tecnología: los contratos inteligentes (smart contracts).

Aunque el término pueda parecer nuevo, los smart contracts llevan con nosotros ya más de veinte años. Por allá por los 90, Nick Szabo describió un smart contract como “a set of promises, specified in digital form, including protocols within which the parties perform on the other promises”. Lo cual puede ser traducido, más o menos, por: “Un conjunto de promesas, especificadas de manera digital, incluyendo protocolos mediante los cuales cada parte cumple las promesas”. Con esta definición, los contratos digitales presentan una ventaja enorme frente a los tradicionales pues es el mismo contrato el que se encarga de cumplirse sin necesidad de una entidad central que lo verifique.

Sin embargo, es ahora cuando los Smart Contracts están llegando a nuestra sociedad. La veracidad y seguridad de blockchain permite la fiabilidad necesaria para llevarlos a cabo. Pero ¿cómo funciona un Smart Contract?

Ethereum logo

Para conocer el funcionamiento de un Smart Contract nos centraremos en el modo que tiene Ethereum de llevarlos a cabo. Ethereum es una plataforma descentralizada que ejecuta Smart Contracts apoyándose en la tecnología que ya conocemos de Blockchain. Estos contratos están escritos en un lenguaje de alto nivel, siendo el más reconocido Solidity. Así bien, podemos definir un Smart Contracts como un fragmento de código donde se define el contrato, que será ejecutado por la infraestructura de Ethereum, y que se encarga de realizar las acciones pertinentes en caso de que se cumpla o de que no.

Además, como hemos comentado, los Smart Contracts se sustentan en la tecnología blockchain. Esto hace que los mismos eviten: la censura, el fraude o la interferencia de terceras partes. De esta manera, los contratos inteligentes nos permiten ejecutar un contrato automáticamente y sin riesgo. Todo ello de manera pública, totalmente transparente y veraz.

Un ejemplo práctico: la apuesta.

Veamos un ejemplo simple. Supongamos que tenemos que definir un contrato (no inteligente) entre dos partes: Juan y Manuel.

Juan apuesta 200 € a que Rafa Nadal gana el torneo, por otro lado, Manuel apuesta la misma cantidad a que pierde. Hecho de manera tradicional el sistema dependería de una tercera parte, que se encargaría de decidir quién de los dos ha ganado la apuesta y le transferiría el dinero. Sin embargo, normalmente esta tercera parte se queda con una comisión y sus procesos para decidir el ganador pueden ser opacos (no en este caso pero en uno más complejo sí). Además, esta tercera parte, puede ser vulnerable a ataques, lo que compromete todo el sistema.

Por otro lado,  de la manera tradicional, Juan y Manuel tendrían que ver quién ha ganado y el perdedor tendrá que pagar para resolver el contrato. Pero ¿quién no conoce al típico que se echa atrás tras una apuesta? ¿qué seguridad hay en que se cumpla? ¿y si uno de los dos no dispone del dinero?

Supongamos que lo hacemos mediante un Smart Contract. El sistema se asegura que los dos disponen del dinero y retiene esa cantidad hasta que el contrato se cumpla. Una vez se ha jugado la final, se comprueba quién ha sido el ganador y resuelve el contrato. ¿Simple, verdad? Y además seguro y transparente: la gente conoce las reglas del contrato y todos los registros pueden comprobarse. El propio sistema se encarga de gestionar el contrato durante todo el proceso hasta su resolución. Todo ello de manera transparente, puesto que todas las operaciones quedan registradas en la base de datos de blockchain. Como sabemos, de manera inalterable y segura.

handshake

En resumen, los Smart Contracts permiten de manera sencilla contratos transparentes sin intermediarios. Además, estos garantizan la seguridad de las partes comprometidas, pues en el momento de su definición se declaran los posibles del mismo y los requisitos para que se cumpla.