Antes de empezar a definirlos deberíamos destacar que, como el universo total de las criptomonedas, los smart contracts buscan eliminar intermediarios para simplificar los procesos y ahorrar costes al consumidor sin toda la burocracia a la que estamos acostumbrados.
¿Pero qué es un smart contract?
Un smart contract o contrato inteligente sería lo mismo que un contrato normal donde se especifica qué es, para qué sirve, qué se puede y no se puede hacer, pero de forma digital, automática y sin intermediarios. Pero para llevarlo a términos concretos lo definiríamos de la siguiente forma:
· Los smart contracts se tratan de “scripts” (códigos informáticos) escritos con lenguajes de programación. Esto quiere decir que los términos del contrato son puras sentencias y comandos en el código que lo forma
Puede ser creado por personas físicas o jurídicas, es válido sin necesidad de ser avalado por autoridad alguna, visible para todos e imposibles de modificar ya que están dentro del blockchain.
Al no estar custodiados por ninguna entidad gubernamental o privada y estar diseminados por ordenadores alrededor del mundo elimina la burocracia, censura y costes de custodia. Esto abre un mundo de posibilidades.
¿Cuáles son los orígenes de los smart contract?
La aparición de estos contratos inteligentes se remonta a 1995 cuando Nick Szabo, jurista y criptógrafo, mencionó el término en un documento bajo constancia pública. Luego, en 1997 desarrolló un documento más detallado al respecto.
En esa época no existía la infraestructura necesaria para llevarlos a cabo, por lo que hubo que esperar hasta 2009 con la aparición del Bitcoin para hacerlos realidad.
Bitcoin y los smart contracts
Bitcoin ya tiene aplicados algunos de este tipo de contratos que se ejecutan automáticamente y de forma transparente al usuario. Una de las funciones de estos en Bitcoin son los contratos de distribución para formar acuerdos entre dos personas dentro del blockchain. Es que una de las grandes ventajas que tiene el Bitcoin es programar el dinero y con un alto nivel de confianza durante todo el proceso de transacción.
Algunas de las funciones que podemos aplicar entre Bitcoin y smart contract son las siguientes:
· Mercados distribuidos que permitan contratos Peer to Peer o P2P y trading en los mercados con Bitcoin como competidor completo al sistema actual
· Propiedades como automóviles, teléfonos, casas o elementos no físicos controlados a través de la cadena de bloques conforman las nombradas smart property o lo que es un contrato de propiedad inteligente dentro del blockchain
· Automatización de herencias estableciendo la asignación de los activos tras el fallecimiento y activándose inmediatamente la persona fallezca distribuyendo los activos según se especificó en el contrato inteligente
· En el mercado de seguros simplificando y automatizando los partes y pagos para evitar el fraude
Los smart contracts se valen del ecosistema de bitcoin para atraer nuevos usuarios al sistema. Tenemos una transacción con unas instrucciones de forma distribuida e inmutable, dando una seguridad completa y sin interpretaciones.
Los smart contracts son programas en la nube que siempre actúan igual, y permiten almacenar información que no puede ser modificada. Son los programas más seguros jamás creados en la humanidad y solo fallan cuando están mal programados.
Pero no son infalibles a los errores humanos de cualquier programador y esto es importante porque estamos hablando de dinero. Si está mal programado puede tener fallos de seguridad o que generen errores en su ejecución o un comportamiento inesperado.
Hubo casos pero hasta que logremos dominarlo siempre existirá el riesgo de un fallo. Es importante prestar atención al desarrollo y testeo de cada uno para no llevarnos sorpresas.
¿Cómo se genera un contrato inteligente con Bitcoin?
Para cumplir su función correctamente deben seguir una serie de pasos como cualquier otro programa de ordenador o como cualquier wallet:
· El usuario y la web se envían entre sí una clave pública
· El usuario crea la primer transacción sin transmitirla aún y colocándola en un output que requieren ambas partes para concretar la transacción
· El usuario envía el hash de la primera transacción a la página web
· La web crea una segunda transacción correspondiente al contrato. En esta se gasta la primera y se devuelve al usuario a través de la dirección que proporcionó al principio
Para completar esta transacción se requieren las dos firmas, por lo que aparece un nuevo parámetro, “nLockTime”. Esto añade a la transacción un periodo de cobro y el sequence number del imput queda en cero.
· La transacción sin firmar vuelve completa al usuario de origen para comprobar que todo está correcto y las monedas volverían a su posesión hasta la fecha de ejecución de la transacción
Al quedar el sequence en 0, el contrato podría modificarse en un futuro si ambas partes lo creen conveniente.
Al quedar el script del input sin completar, el espacio reservado para la firma del usuario todavía está formado por un conjunto de ceros después de que el portal creará la segunda transacción a la espera de la firma del usuario. Si esto no se completa, se devuelven los bitcoins al usuario.
¿Cuál es la situación actual de los smart contracts de Bitcoin?
A medida que vamos descubriendo este nuevo universo financiero y digital van surgiendo nuevas posibilidades de uso:
· Monedero multifirma: Ambas partes deben aprobar la transacción
· Dobles depósitos: Ambas partes, comprador y vendedor, realizan una transacción ligada a un smart contract. Una vez expire el contrato inteligente sin haber sido resuelto, los fondos son quemados y enviados a una dirección de la que ninguna de las partes conoce la clave privada
Aunque el lenguaje de programación de Bitcoin permite añadir lógica, muchos expertos consideran que se queda corto. Es por eso que los smart contracts añaden un nuevo horizonte a Bitcoin.
Plataformas que introducen smart contract sobre Bitcoin
Podemos mencionar dos plataformas que incluyen los smart contracts sobre Bitcoins con lenguajes de turing completo:
· Counterparty: Es una plataforma open source que permite crear aplicaciones peer-to-peer o P2P. Inicialmente fue creada para el sector financiero sobre el blockchain para, por ejemplo, creación de activos y emisión de sus bonos, dividendos, comercio de activos en un mercado descentralizado, opciones binarias y CFDs. Pero su código abierto permite crear un sinfín de aplicaciones. Tiene su propio token llamado XCP para ofrecer algunas posibilidades que no son técnicamente compatibles con Bitcoin de momento. Se ha confirmado la introducción del EVM de Ethereum que permitirá ejecutar contratos inteligentes a los de Ethereum pero sobre el blockchain de Bitcoin
· RootStock: Es una plataforma open source para la creación contratos inteligentes que recompensará a los mineros que participen activamente. Su objetivo principal es el de añadir valor y funcionalidad al ecosistema Bitcoin activando smart contracts seguros en la red, añadiendo opciones para pagos instantáneos y una mayor escalabilidad. Para ello se sirve de cadenas laterales (sidechain) conectadas a la cadena de Bitcoin y su token (Roots), el cual servirá solo para ser intercambiado por bitcoins
Smart contracts en Ethereum
Aunque hemos destacado a los smart contracts relacionados con Bitcoin, todos sabréis que el rey de los mismos es Ethereum al entrar en la categoría de infraestructura. Al contrario de Bitcoin que se encuentra como medio de pago.
Es una plataforma de computación distribuida basada en una blockchain pública como Bitcoin y que además permite ejecutar contratos inteligentes P2P (entre los nodos, sin servidores centrales) en una máquina virtual descentralizada llamada Ethereum Virtual Machine (EVM).
Se basa en toda la teoría de Bitcoin en cuanto a estar distribuido, tener su propia criptomoneda, mineros e incluso su propio blockchain entre otras cosas pero, a diferencia de Bitcoin, Etherum ha creado un intérprete de lenguaje de programación mucho más extenso (Turing completo que Bitcoin no tiene), permitiendo añadir lógica mucho más compleja. Es como ordenador distribuido, el cual utiliza su criptomoneda (el ether) como la “gasolina” que necesitan los contratos para que los mineros puedan ejecutarlo. Los contratos inteligentes de Ethereum son programas con muchas más funcionalidades y posibilidades. Aunque para ello han tenido que crear toda una nueva red de cero, renunciando a la red de Bitcoin.
Como veis, el universo de los smart contracts es un gran universo del cual todavía queda mucho por explorar y experimentar esta nueva economía.
Javier Molina: “Los Smart Contracts permiten programar, por ejemplo, el dinero a nivel de protocolo”
Le consultamos a nuestro experto y profesor del curso de inversión sobre Bitcoin y otros criptoactivos, Javier Molina, algunos detalles sobre lo que ofrecen los smart contracts ofrecen actualmente.
-¿Podrían servir como puente los smart contracts para, en un futuro, conectar todos los blockchains y sus respectivas criptomonedas?
Los Smart Contracts permiten programar, por ejemplo, el dinero a nivel de protocolo. Si existe interoperabilidad entre distintas blockchains, como sucede entre Binance Smart Chain y Ethereum al ser sus unidades de cuenta totalmente compatibles, eso favorece el desarrollo de todas las soluciones.
-¿Qué otras plataformas de smart contracts existen?
Ethereum sigue siendo la mayor plataforma de Smart Contracts por volumen. Le siguen la Binance Smart Chain y están en desarrollo EOS, Neo, Dot,Tron o recientemente, Cardano.
-¿Podría Bitcoin pensar en remodelar su blockchain para asemejarse al de Ethereum?
Existen soluciones de capa 2 creadas sobre Bitcoin. No obstante, la red de Bitcoin está pensada para dar la máxima seguridad a su unidad de cuenta y tiene sentido que así sea pues es la forma de intercambiar valor en la red.
-¿Qué otras criptomonedas ofrecen las mismas posibilidades que Ethereum en cuanto a smart contracts?
Las arriba señaladas representan, a día de hoy, las mejores alternativas y en el futuro veremos si tienen capacidad para mejorar y superar a Ethereum