# Contrato inteligente

Un contrato inteligente (en inglés smart contract) es un programa informático que facilita, asegura, hace cumplir y ejecuta acuerdos registrados entre dos o más partes (por ejemplo personas u organizaciones). Como tales ellos les ayudarían en la negociación y definición de tales acuerdos que causarán que ciertas acciones sucedan como resultado de que se cumplan una serie de condiciones específicas.
Un contrato inteligente es un programa que vive en un sistema no controlado por ninguna de las partes, o sus agentes, y que ejecuta un contrato automático el cual funciona como una sentencia if-then (si-entonces) de cualquier otro programa de ordenador. Con la diferencia de que se realiza de una manera que interactúa con activos reales. Cuando se dispara una condición pre-programada, no sujeta a ningún tipo de valoración humana, el contrato inteligente ejecuta la cláusula contractual correspondiente.
Tienen como objetivo brindar una seguridad superior a la ley de contrato tradicional y reducir costos de transacción asociados a la contratación. La transferencia de valor digital mediante un sistema que no requiere confianza (ej. bitcoins) abre la puerta a nuevas aplicaciones que pueden hacer uso de los contratos inteligentes.
Es veloz, eficiente y preciso. Realiza toma de decisiones de mejor manera de la que la realizaría un humano convencional. Además es seguro, pues debe estar planeado con encriptación para poder garantizar un nivel de seguridad. De igual modo, fomenta el ahorro ya que busca la manera más económica de hacer el negocio.
Un contrato inteligente, también se puede definir como un protocolo de transacción computarizado que ejecuta los términos de un contrato, en donde pueden existir tantas estipulaciones como sea necesario para satisfacer las necesidades de los participantes, con la seguridad de que la tarea se completará satisfactoriamente.
Los contratos inteligentes normalmente también se componen de una interfaz de usuario y a veces emulan la lógica de las cláusulas contractuales.

## Propiedad inteligente

Una propiedad inteligente (en inglés smart property) es un derecho de propiedad controlado usando contratos inteligentes. Es la afirmación digital de derechos de propiedad de un activo a través de su entrada en una cadena de bloques, usando la clave privada del propietario. El propietario del activo puede probar a otros individuos la propiedad con la correspondiente clave pública. Cuando el propietario decide vender el activo, el contrato inteligente completa el proceso entregando la clave privada del propietario al comprador. Algunos tipos de propiedades como marcas, derechos de autor y patentes pueden ser fácilmente propiedades inteligentes ya que pueden ser fácilmente codificados y procesados como documentos digitales. Sin embargo, con los activos físicos, es donde los propietarios están más expuestos a fraudes. De hecho para registrar en la cadena de bloques algo físico, como un coche, necesitamos adherirle una etiqueta única o chip. Si la información contenida en la etiqueta o chip puede ser alterada, o puede ser arrancada, la propiedad inteligente puede no estar garantizada.

## Ejemplos

Digamos que usted quiere apostar 2500 euros (o su correspondiente valor en bitcoin) a que la Real Sociedad va a ganar, mientras que su amigo está apostando la misma cantidad a que el Atlético de Madrid ganará el partido. El primer paso es que usted y su amigo coloquen los bitcoin en una cuenta neutral controlada por un contrato inteligente. Cuando el juego haya terminado y el contrato inteligente sea capaz de verificar a través de un sitio de noticias quién ganó, el contrato inteligente depositaría automáticamente los euros o bitcoins en la cuenta del acertante.
Supongamos que quiero vender una producción de arte digital a un coleccionista. El precio de la compra se acuerda realizarlo en cuotas. El esquema de pago es introducido en un contrato inteligente y, cuando los plazos se cumplen, los pagos pasan a mi cuenta. Después de cierta cantidad de pagos satisfechos, la propia producción digital pasa al coleccionista (hay una transferencias del activo digital). ¿Por qué usar un contrato inteligente y no por ejemplo que el coleccionista haga pagos automáticos desde su banco y que un sistema transfiera la producción digital cuando en mi cuenta se reciban los ingresos? La diferencia es que sin contratos inteligentes cada parte realiza transacciones independientes. En nuestro caso el coleccionista puede llamar a su banco para cancelar los pagos. Yo siempre puedo cambiar mi sistema para que la transferencia de la producción digital no ocurra. Para evitar estas posibilidades en el mundo real es necesario establecer un contrato legal en el que nos comprometamos a cumplir nuestra parte del trato. Si uno de los dos falla en sus compromisos el contrato legal nos dará derecho para ejecutar las disposiciones contractuales en un juicio. Sin embargo no se puede físicamente parar el que una de las partes se eche atrás, Mientras que en un contrato inteligente idealmente tanto el activo digital a ser transferido como la moneda/activo usado para el pago viven en el sistema. El contrato en sí es una transacción autoejecutada entre partes, disparada por eventos que determinan de forma definitiva para que sucedan o no.
Múltiples partes colaboran para crear una grabación de sonido. Están el compositor de la música, un letrista, músicos, cantantes, productores y otros. Las partes que hacen la creación pueden embeber los términos de licenciamiento en un contrato inteligente, y cuando un consumidor compra la música, las regalías pueden fluir inmediatamente a cada una de las partes participantes. No se necesitan intermediarios para procesar las transacciones, o distribuir el contenido. Este tipo de sistemas permite un flujo más transparente de regalías con menos intermediarios entre los derechos de autor de los propietarios/artistas y los consumidores. Imogen Heap y Ujo están trabajando en un sistema de este tipo.

## Historia

En las décadas de 1970 y 1980 un movimiento informático se propuso implantar los mecanismos de mercado como las subastas o las ventas al campo de la informática. Mientras tanto la criptografía de clave pública revolucionó en aquel entonces lo que era posible en cuanto a seguridad en la red.
El término "smart contracts" fue acuñado por el informático Nick Szabo, probablemente alrededor de 1993, para enfatizar el objetivo de llevar lo que el llamaba las prácticas "altamente evolucionadas" de la ley de contratos y las prácticas comerciales relacionadas hacia el diseño de protocolos de comercio electrónico entre extraños en internet. Szabo, inspirado por investigadores como David Chaum, también creía que la especificación a través de una lógica clara, y una verificación o ejecución a través de protocolos criptográficos y otros mecanismos de seguridad digital, podrían constituir una mejora importante sobre los contratos legales tradicionales. Mark Miller y otros han subrayado la utilización de otro tipo de seguridad como base de los contratos inteligentes, a diferencia de Chaum y otros investigadores en criptografía financiera los cuales ponen énfasis en utilizar protocolos criptográficos avanzados para mejorar la seguridad y la privacidad del dinero digital, la firma de contratos, las subastas y otros mecanismos comerciales. La mayoría de los anteriormente citados ejemplos, tienen, probablemente líneas de desarrollo independientes, y de hecho muchos defensores ven los contratos inteligentes como el resultado inevitable de muchos esfuerzos independientes para mejorar las operaciones en varias industrias que utilizan la tecnología digital. Actualmente, varios lenguajes formales se han desarrollado, especificado o propuesto para especificar las cláusulas contractuales de este tipo de contratos. El IEEE tiene dos grupos de trabajo especializados en contratos digitales, los cuales promueven que esta investigación continúe en el futuro.
En el 2014 con la publicación del whitepaper: A next generation smart contracts & decentralized application platform, escrito por Vitalik Buterin el concepto de los contratos inteligentes retomó su importancia, puesto que propone agregar la propuesta desarrollada por Satoshi Nakamoto.
Antes de la aparición de la cadena de bloques no existía ninguna plataforma que pudiera hacer realidad los contratos inteligentes, por lo que solo estaba definida conceptualmente. Bitcoin en sí misma es un ejemplo de un contrato inteligente, donde las reglas de juego están codificadas y aceptadas por sus participantes. Ethereum entre otras plataformas, permite crear contratos inteligentes Turing completos (significa que cualquier programa que se pueda crear en un computador estándar, es también posible de ser programado aquí) y almacenar el código fuente en su cadena de bloques. De esta manera es posible crear una infinidad de programas que serán ejecutados en cada computador de la red y que tendrán todos los beneficios de la tecnología Blockchain. Aparece la idea de crear distintos programas basados en la tecnología de cadena de bloques dando lugar a una nueva descentralizada Internet llena de aplicaciones descentralizadas. La cadena de bloque asegura que todas las transacciones son verificadas por múltiples participantes, y sólo transacciones que siguen las reglas del contrato inteligente serán confirmadas.
En febrero de 2021 el Consejo General de la Abogacía Española en colaboración con la empresa CTI soluciones s.l. y Caixabank lanzaron una plataforma de contratación digital asociada y condicionada a un evento de pago para facilitar los acuerdos judiciales y extrajudiciales entre letrados. Dicha plataforma permite formalizar y dejar firmado un contrato entre ambas partes y condicionar su eficacia a que se haga un ingreso bancario en la cuenta asociada a dicho contrato. La iniciativa fue desarrollada basándose en la idea del abogado español José Enrique Rodríguez Zarza

## Aplicaciones

Los smart contract pueden ser empleados en una amplia variedad de escenarios. Son ideales para realizar simples transacciones, en cuyas partes deban estar obligados a un conjunto de requisitos verificables por la red, tanto dentro del blockchain como variables externas mediante APIs.
Ejemplos de aplicación de los contratos inteligentes
* La Gestión digital de derechos de autor o DRM por sus siglas en inglés consiste en el uso de contratos digitales para gestionar licencias de derechos de autor
* La criptografía financiera proporciona contratos inteligentes para realizar contratos financieros.
* Algunas redes de intercambio de archivos P2P necesitan mecanismos para asegurar que el cliente remoto contribuye ofreciendo recursos al sistema de la misma manera que los consume, todo esto sin requerir los gastos que puedan ocasionar la tramitación de un contrato tradicional al uso. Un ejemplo de esto puede ser flud.
* En el Internet de las cosas hay varios proyectos para que las cosas realicen contratos inteligentes entre ellas. Por ejemplo hay proyectos para electrodomésticos y para redes de telemetría.
* Para desarrollar aplicaciones descentralizadas el código de estas está escrito en smart contracts ejecutándose en una red descentralizada y no en un servidor centralizado. Las aplicaciones descentralizadas o dApps utilizan cadenas de bloques como Ethereum para el almacenamiento de datos y contratos inteligentes para la lógica de su aplicación. Las Dapps se pueden descentralizar porque están controladas por la lógica escrita en el contrato, no por un individuo o una empresa y además son ejecutadas sobre una cadena de bloques, que por naturaleza es inmutable.
* Para automatizar y agilizar los servicios que ofrecen administraciones gubernamentales, como el voto electrónico, subastas electrónicas de inmuebles embargados, registros de nacimiento, verificación de identidad etc.

## Actualidad

Actualmente hay dos grandes proyectos de código abierto que trabajan con contratos inteligentes, los cuales han tenido grandes saltos hacia delante. Uno se llama Codius y el otro es Ethereum. Codius fue desarrollado por Ripple Labs, que también creó su propia moneda digital llamada Ripple. Codius pretende ser interoperable entre una variedad de criptomonedas, como Ripple y bitcoin, a pesar de que es administrado por la empresa privada. En contraste, Ethereum es una moneda totalmente nueva con contratos inteligentes horneados en su sistema de pago. Reemplazaría otras «monedas» como bitcoin, pero parece ser más de un proyecto comunitario. Las criptomonedas como bitcoin ayudarán a los contratos inteligentes a hacerse realidad. Pero el efecto también puede ser recíproco. Algunos defensores piensan que nuevos usuarios serán atraídos a las monedas virtuales solamente por el beneficio de los contratos inteligentes.

## Ejecución de los contratos

La infraestructura de los contratos inteligentes pueden ser implementados por registros de recursos replicados y la ejecución de los contratos puede llevarse a cabo usando Árboles Merkle los cuales funcionan mediante funciones hash criptográficas y la replicación de tolerancia a fallos bizantinos los cuales son una generalización del problema de los dos generales. Cada nodo en la red p2p actúa como un registro de propiedad y de fideicomiso o garantía, ejecutando los cambios de los titulares del contrato y comprobando automáticamente las reglas que impone la transacción, y comprueba también el mismo trabajo de los otros nodos. Criptomonedas como Bitcoin tienen implementado casos especiales para esos registros o nodos, donde la propiedad y el núcleo de la transacción es el dinero. Bitcoin y muchos de sus derivados contienen mecanismos más generalizados para título de propiedad y ejecución de contratos. El mantenimiento de código es una parte muy importante y latente del protocolo de Bitcoin, basado en replicación Bizantina (Sistema de prueba de trabajo) probabilística y anónima. Una de las propuestas para usar Bitcoin como registros de replicación y ejecución de contratos es la denominada "monedas coloreadas". Algunos ejemplos de aplicaciones que usan este tipo de ejecución de contratos pueden ser Ripple, Mastercoin, Ethereum y RSK. NXT
Las aplicaciones pueden incluir instrumentos financieros como pueden ser las acciones, los bonos y otros elementos financieros donde los nodos pueden supervisar los eventos en los que se condicionaron las reglas del smart contract asociado.
Para desarrollar smart contracts se han inventado lenguajes de programación especiales para responder a las necesidades de un programa que se desplegará en una blockchain y resolverá problemas distintos que se suelen tratar en la programación tradicional. Solidity, Yul, Vyper, son ejemplos de lenguajes que se han creado específicamente para desarrollar smart contracts y otros más se han adaptado como Rust. En cualquiera de los dos casos, los lenguajes están en constante actualización para responder a la evolución que está teniendo esta tecnología.

## Agentes autónomos

Los contratos inteligentes no requieren la interpretación o la intervención humana para llevarse a cabo. Se pueden realizar de forma automática al ejecutar un programa de ordenador. Una de estas aplicaciones son los agentes autónomos, programas de ordenador creados para una tarea específica. Un ejemplo es un programa que se ejecuta en la nube y que alquila espacio de almacenamiento y ofrece a sus clientes finales un servicio de almacenamiento de archivos. Con la introducción de Bitcoin, los programas de ordenador pueden controlar sus propios fondos y firmar contratos con proveedores de servicios en la nube

## Diferencia de los contratos legales inteligentes

Los contratos legales inteligentes son distintos de los contratos inteligentes. Un contrato inteligente no es necesariamente aplicable legalmente como contrato. Por otro lado, un contrato legal inteligente tiene todos los elementos de un contrato legalmente exigible en la jurisdicción en la que puede ser exigido y puede ser exigido por un juzgado o tribunal. Por lo tanto, si bien todo contrato legal inteligente contendrá algunos elementos de un contrato inteligente, no todo contrato inteligente será un contrato legal inteligente.
No existe una definición formal de un contrato legal inteligente en la industria legal.

## Regulación en México

La Ley General de Mecanismos Alternativos de Solución de Controversias,publicada en México el 26 de enero de 2024, prevé los siguientes conceptos y definiciones:
* Solución de Controversias en Línea (Resolución de disputas en línea): "Procedimiento no jurisdiccional para llevar a cabo electrónicamente los mecanismos alternativos de solución de controversias...; los que utilicen sistemas automatizados y sistemas de justicia descentralizada" (artículo V, fracción XXII).
* Sistemas de justicia descentralizada: "Protocolo que se basa en la participación directa de la comunidad a través de esquemas de incentivos, colaboración abierta, votación descentralizada y elementos de automatización como contratos inteligentes y cadena de bloques, para la Solución de Controversias en Línea" (artículo 87, fracción IV).
* Contrato inteligente: "Código digital o informático que se ejecuta en la parte superior de una cadena de bloques que contiene un conjunto de reglas bajo las cuales las partes acuerdan interactuar entre sí. Si se cumplen las reglas predefinidas, el acuerdo se ejecuta automáticamente. Un contrato inteligente es capaz de facilitar, ejecutar y hacer cumplir la negociación o la ejecución de un contrato usando la tecnología de cadena de bloques" (artículo 87,fracción II).
Es la primera regulación en dicho país que prevé, a nivel legislativo, aspectos como los contratos inteligentes, los sistemas de justicia descentralizada y los sistemas automatizados (inteligencia artificial). El proyecto de esta ley fue redactado por el Grupo de Trabajo en Materia de Mecanismos Alternativos de Solución de Controversias, convocado por el Congreso de la Unión mexicano e instalado el 22 de agosto de 2023. En específico, la novedosa regulación de la Solución de Controversias en Línea estuvo a cargo del abogado Gustavo Cárdenas Soriano, miembro de dicho Grupo de Trabajo, cuyo proyecto se presentó en el Senado de la República el 15 de noviembre de 2023.