¿Que son los contratos inteligentes?
Para empezar, los contratos inteligentes no son, ni particularmente inteligentes, ni, estrictamente hablando, contratos.
A parte de eso, sí proporcionan una metáfora aproximada de lo que realmente son: programas o instrucciones informáticas alojados en Blockchain que representan promesas unilaterales para proveer una determinada tarea informática
¿Qué quiere decir esto? Una persona (o máquina) se compromete a hacer algo a cambio de otra cosa. Blockchain comprueba que la persona que promete su cálculo cumple. Si no lo hiciese… dejaría de recibir la contrapartida de dicho contrato.
Estos guiones se compilan a bajo nivel y se almacenan en el Blockchain bajo una dirección. Cuando se envía una transacción a dicha dirección, los nodos de la red se encargan de ejecutar el programa o las instrucciones informáticas. Dicha transacción lo que hace es “activar” el contrato, además, puede proporcionar una entrada, lo que podría hacer que la ejecución del contrato se efectuara de manera diferente en base a ese dato de entrada.
Los contratos inteligentes son modulares, repetibles, autónomos. Pueden ser incluso usados para construir aplicaciones por sí mismos, para una sociedad, como recompensa o incluso por diversión. Pueden ser mezclados o emparejados y son fáciles de iterar, es como si fueran bloques de lego combinados con plantillas predefinidas.
Los contratos inteligentes pueden ser codificados para reflejar cualquier tipo de negocio o lógica ingenieril que maneje datos: desde acciones tan simples como votar positivo un post de un foro, acciones algo más complejas como contratos de préstamos y pago a plazos, hasta acciones altamente complejas como fijaciones en la priorización de pago o una nota estructurada.
Ejemplos de usos de los contratos inteligentes
Préstamos: podrían almacenarse como contrato inteligente en la cadena de bloques junto con la información de las garantías de la propiedad. Si el deudor no efectúa un pago, el contrato automáticamente podría revocar las claves digitales que le dan acceso a las garantías.
Herencias y donaciones: Las herencias podrían automatizarse estableciendo la asignación de activos tras el fallecimiento. Una vez que el contrato inteligente puede verificar la condición de activación, en este caso el fallecimiento, el contrato entra en vigor y los activos se reparten. También podrían crearse contratos con donaciones para ejecutarse en un determinado momento, por ejemplo, cuando tu hijo sea mayor de edad
Beneficios de usar contratos inteligentes
Ahora que empezamos a vislumbrar el significado de los contratos inteligentes, ¿por qué deberíamos usarlos?
Existen múltiples beneficios, entre ellos el aumento de necesidad de verificación en nuestras relaciones dirigidas por datos y los efectos en cadena que estos generan.
Los contratos, en el fondo, son simples instrucciones de ejecución informática, no muy distintos a los que puedan ejecutarse diariamente en nuestras aplicaciones habituales. Sin embargo, poseen una cualidad única y es que son capaces de aportar certeza.
Los contratos inteligentes son visibles en toda la cadena de Blockchain. Así pues, si alguien desea ver el código compilado del contrato, puede hacerlo sin problemas. Esto es algo bastante diferente de ciertos tipos de ejecuciones que se produces en servidores de nuestras aplicaciones y que no podemos observar.
7 mitos sobre los contratos inteligentes
1. Los contratos inteligentes son lo mismo que los contratos contractuales
No. Porque los contratos inteligentes pueden controlar propiedades del mundo real mediante medios digitales. Reduciendo el coste de un incumplimiento.
Así que los contratos inteligentes pueden implementarse si cierto requisito se cumple y saber cuándo o cuando no lo hace.
Esto puede ser puesto en práctica con casos bastante estrictos, por ejemplo, si el pago de un coche no se hace a tiempo, bloquear dicho coche hasta que se reciba el pago.
2. Los contratos inteligentes tienen aplicación legal
Aun no, pero puedes representar piezas de acuerdos legales, es algo en lo que se está trabajando.
Un contrato inteligente se podría usar para probar que los términos de un contrato legal se han cumplido.
3. Incluyen inteligencia artificial
No son inteligente por sí mismo. Los programas que contienen se lanzan cuando son activados por acciones externas, lo que les permite modificar otros datos. Por lo que son más bien eventos dirigidos que inteligencia artificial.
4. Los contratos inteligentes son difícil de programar
Sí y no. Escribir un contrato sencillo es bastante fácil y mas si usamos lenguajes específicos de programación de contratos, que están empezado a parecer (ej. Ethereum’s Solidity).
También existen implementaciones más complejas, que usan “oráculos”. Los oráculos son fuentes de datos que envían información que accionan los contratos.
5. Los contratos inteligentes son solo para desarrolladores
Hoy sí, pero pronto veremos aplicaciones que facilitarán la ayuda de la creación de contratos a través de una interfaz gráfica (el navegador de Ethereum’s Mist es un paso hacia ello).
6. Los contratos inteligentes no son seguros
No es cierto. Se ejecutan casi como programas de Turing completo, lo que significa que acabarán su ejecución y no corren el riesgo de entrar en un bucle.
7. Los contratos inteligentes tienen poca utilidad
No es verdad. Como HTML, las aplicaciones están limitadas a aquellos que las escriban. Los contratos inteligentes son ideales para interactuar con activos del mundo real, propiedad inteligente, internet of things e instrumentos de servicios financieros
Se aplica casi a cualquier cosa que pueda cambiar su estado a lo largo del tiempo y pueda tener un valor adherido a sí mismo.
¿Cuando empezaremos a usarlos?
Hasta hace poco, los contratos inteligentes eran poco más que teoría. En general, hay dos retos fundamentales que han de ser abordados antes de utilizarlos en el mundo real.
En primer lugar: ¿Cómo un contrato inteligente puede controlar realmente activos reales en orden de cumplir un contrato? Una máquina expendedora, por ejemplo, tiene la propiedad de asegurar físicamente que el dinero introducido es válido. Pero, ¿cómo podría el simple código hacer lo mismo?
En segundo lugar: ¿Qué ordenador podría ser de confianza para las dos partes a la hora de “ejecutar” los contratos? Las partes no solo deben acordar el código de ejecución sino tambien la computadora que interpreta y ejecuta el código. Debe haber cómo mínimo un estandar verificable por cada parte, a poder ser, de forma distribuida.
Referencias
- https://docs.erisindustries.com/explainers/smart_contracts/
- https://coincenter.org/2014/12/smart-contracts/
Imagen script from: http://www.coindesk.com/blockchain-smarts-contracts-real-world-law/
Autor: Pablo Sánchez