Guía de contratos inteligentes para principiantes: Todo lo que necesitas saber
Últimas actualizaciones:
6 nov 2023
Una de las tecnologías clave que potencian significativamente la utilidad y la demanda de la tecnología de cadena de bloques son los contratos inteligentes. Mientras que Bitcoin y otras criptomonedas se desarrollaron con el único propósito de ser monedas digitales P2P, Ethereum y otras redes de capa 1 se desarrollaron como plataformas para la ejecución de aplicaciones descentralizadas. En este artículo explicaremos en términos sencillos qué son exactamente los contratos inteligentes y por qué son tan revolucionarios.
¿Qué es un contrato inteligente? (Resumen)
Los contratos inteligentes son porciones de código informático escritas para crear un acuerdo entre contrapartes. Poseen condiciones definidas y una lógica incorporada que definen su resultado. Los contratos se ejecutan automáticamente cuando se cumplen las condiciones requeridas (funciones “si pasa esto, entonces pasa lo otro”). Por ejemplo, el código puede crearse para dos partes y ejecutarse automáticamente cuando ambas hayan activado su parte del acuerdo.
Los contratos inteligentes se ejecutan de forma descentralizada por los nodos (ordenadores) como un cálculo en una red. Los contratos inteligentes se almacenan y replican en la cadena de bloques (un registro distribuido digital).
Las características clave de los contratos inteligentes son:
Eficacia, rapidez y precisión: el contrato se ejecuta de forma digital y automática cuando se cumplen las condiciones.
Confianza y transparencia: no hay intervención de terceros en una red de cadena de bloques con un registro distribuido; además, las transacciones están cifradas y son inmutables.
Seguridad: la tecnología de cadena de bloques es segura ya que los registros están cifrados; por lo tanto, un hacker tendría que modificar toda una cadena para alterar un registro.
Ahorro: al no haber intermediarios, ahorra tiempo y costes.
Pros y contras de los contratos inteligentes
En esta era de la tecnología de la información, todas las empresas quieren y necesitan contar con procesos más eficientes y por ello muchas recurren a la tecnología de cadena de bloques de registro distribuido. Los contratos inteligentes son la respuesta a la necesidad de mejorar muchos aspectos de las prácticas empresariales. Los beneficios son múltiples y existen algunas limitaciones, así que exploremos los pros y los contras.
Pros de los contratos inteligentes:
Precisión: los términos se describen con precisión explícita.
Transparencia y confianza: las condiciones son accesibles a todas las partes contratantes.
Comunicación: debido a la precisión del código específico, es improbable que se produzcan interpretaciones o errores de comunicación.
Rapidez y eficacia: los contratos inteligentes permiten ahorrar tiempo ya que no hay procesamiento manual de documentos durante la ejecución del contrato; el código del software está activo y se ejecuta cuando se cumplen las condiciones.
Seguridad: los contratos inteligentes funcionan con un alto nivel de cifrado de datos lo que los hace excepcionalmente seguros.
Ecológicos: como los contratos inteligentes no contienen papel, sino que son un programa informático, contribuyen al medio ambiente, ya que sólo existen en el mundo digital.
Copias de seguridad y almacenamiento: los registros de transacciones llevan un sello de tiempo y se almacenan permanentemente; son fácilmente recuperables en caso de pérdida de datos.
Ahorro de costes: al no necesitar intermediarios, los costes de transacción son competitivos ya que no intervienen expertos en derecho contractual.
Contras de los contratos inteligentes:
Los contratos inteligentes tienen muy pocas limitaciones, pero debes tener en cuenta cinco de ellas:
El código es difícil de cambiar: por su propia naturaleza, cambiar el código es prácticamente imposible y potencialmente caro.
Lagunas: puede producirse una laguna legal al asegurarse de que los términos del contrato inteligente reflejan al 100% lo acordado por las dos partes.
Puede seguir requiriendo la participación de terceros: por ejemplo, los desarrolladores que creen el contrato inteligente pueden necesitar que alguien que entienda de derecho contractual les ayude a explicar los detalles para que puedan crear los códigos informáticos específicos.
Términos imprecisos: al igual que los contratos tradicionales, los términos pueden ser a menudo confusos y difíciles de entender; los contratos inteligentes no pueden ejecutarse sin códigos claros y específicos y no pueden manejar términos o condiciones vagos.
Falta de regulación: la industria de la cadena de bloques no está regulada y, como tal, no está reconocida por los ámbitos jurídicos tradicionales.
Antecedentes históricos de los contratos inteligentes
El concepto de contratos inteligentes surgió a principios de los años 90, propuesto por primera vez por Nick Szabo. Szabo, un informático de los EEUU, define los contratos inteligentes como “un conjunto de promesas, especificadas en forma digital, que incluyen protocolos dentro de los cuales las partes cumplen estas promesas” (Fuente: Wikipedia).
Szabo se adelantó mucho a su tiempo y definió el concepto mucho antes de la aparición de la tecnología de cadena de bloques y de registro distribuido. Su definición consistía en que los contratos inteligentes utilizan algoritmos matemáticos para transferir información. Como protocolo digital, los contratos inteligentes ejecutaban una transacción automáticamente cuando se alineaban las condiciones predefinidas.
A día de hoy, el concepto de Szabo sigue siendo la definición exacta de contrato inteligente. Sin embargo, en los años noventa, teníamos pocos programas informáticos, no había tecnología de cadena de bloques ni registros distribuidos, por lo que Szabo no pudo probar el concepto.
Las empresas aprecian la seguridad y la confianza de la tecnología de registro distribuido. Imagen vía Shutterstock
¿Cómo funcionan los contratos inteligentes?
Los contratos inteligentes son códigos informáticos o una serie de protocolos utilizados para crear las condiciones del acuerdo entre dos partes (o más), concluyendo la transacción en la cadena de bloques.
Un contrato inteligente funciona con un protocolo del tipo “si ocurre esto, entonces haz esto otro” y se genera con lenguajes de programación. Por ejemplo, si un inquilino transfiere dinero a un propietario, este último le entrega las llaves de la casa alquilada. Los particulares y las organizaciones pueden implementar un contrato inteligente, y una vez que se cumplen las condiciones, este ejecuta automáticamente una transacción, garantizando el cumplimiento de los términos acordados.
Los contratos inteligentes permiten diversos usos, como realizar intercambios de bienes inmuebles, dinero, valores, mercancías u otros activos. Los datos se cifran y almacenan en un registro distribuido descentralizado (cadena de bloques), garantizando el anonimato de las partes.
Los contratos inteligentes sólo pueden operar con activos dentro de su ecosistema digital, y ha habido desafíos a la hora de conectar el mundo virtual con los procesos del mundo real. Para superar estos problemas, se introdujeron programas especiales, los “oráculos“, que ayudan a los protocolos informáticos a acceder a la información del mundo real. Más adelante hablaremos más sobre los oráculos.
Ejemplos de usos de contratos inteligentes
Si no tienes experiencia o no entiendes los contratos inteligentes, pueden parecerte complejos. Sin embargo, no difieren mucho conceptualmente de un acuerdo escrito tradicional.
Las siguientes son algunas aplicaciones en las que los contratos inteligentes podrían ser más eficientes que una versión estándar en papel.
Legalidades
Para una persona normal, los acuerdos legales son tan desafiantes de entender como leer algo en swahili. Aun así, los contratos inteligentes pueden cambiar la forma en que se crean los acuerdos comerciales de venta. Por ejemplo, las condiciones de venta se basan en normas del tipo “si pasa esto, entonces haz aquello” (“if this, then that”), que son fáciles de programar.
Por ejemplo, un vendedor debe cumplir varias condiciones para la venta de una casa antes de que el comprador ejecute las transferencias de pago. Si alguna condición no se cumple, la venta no puede proseguir.
Una vez programados en el contrato inteligente, se ejecutan todos los términos del acuerdo en la red descentralizada y, afortunadamente, no están sujetos a matices lingüísticos.
Además, el hecho de que estos contratos inteligentes sean públicos y estén ampliamente distribuidos significa que existe un consenso con el código del contrato inteligente incorporado en el acuerdo. Ambas partes son conscientes al 100% de que el código del contrato inteligente incorporado se ejecutará en función de las condiciones acordadas.
Contratos inteligentes y cuentas bancarias
Si tienes una cuenta bancaria, tendrás pagos regulares mensuales por domiciliación bancaria, basados en fechas, a terceras entidades, como servicios públicos, servicios de streaming, tarjetas de crédito, un préstamo hipotecario o un alquiler, etc.
Si tienes fondos suficientes en la fecha asignada, el banco automatiza los pagos domiciliados tras comprobar que se cumplen todas las condiciones. Un simple contrato inteligente actúa de la misma manera, activándose cuando se cumplen las condiciones asignadas por las partes implicadas. No obstante, la entidad bancaria no determinaría la transacción de la moneda virtual, sino que la ejecutaría en la plataforma descentralizada.
Ejemplo de contratos inteligentes
Para despejar aún más el misterio de cómo funcionan los contratos inteligentes, veamos un ejemplo visual de su programación:
Imagen vía Ethereum.org
El anterior contrato inteligente de Ethereum:
Genera un conjunto con todos los monederos
El creador recibe el suministro inicial de tokens
Comprueba si el remitente tiene fondos suficientes
Comprueba posibles excesos
Ejecuta del contrato inteligente
Los desarrolladores utilizan el lenguaje de programación Solidity para crear los contratos inteligentes de Ethereum que se almacenan en la cadena de bloques. Solidity es un lenguaje de programación orientado a objetos muy popular, diseñado para su integración con la EVM (Máquina Virtual de Ethereum) e influenciado por lenguajes de programación como JavaScript, C++ y Python.
Ventajas de los contratos inteligentes descentralizados
Una de las ventajas esenciales de un contrato inteligente es su ejecución en una cadena de bloques pública y un registro distribuido. Esto significa que dos partes que normalmente no confían la una en la otra pueden ponerse de acuerdo sobre el estado actual del registro distribuido público.
Siempre que la mayoría de los participantes estén de acuerdo respecto al estado actual, se confía en el contrato ejecutado.
Un contrato inteligente podría ayudar a las transacciones OTC de derivados extrabursátiles. Las OTC suelen ser operaciones realizadas por dos participantes que acuerdan las condiciones de una operación. A diferencia de una cámara de compensación central que actúa como tercera parte en una operación, las transacciones OTC son directas y no disponen de cámara de compensación.
Las grandes instituciones de los mercados financieros suelen crear estas operaciones. Liquidan los términos del acuerdo OTC siempre que se cumplan determinadas condiciones. El acuerdo OTC se redacta en un acuerdo legal al que ambas partes pueden acceder. Por lo tanto, las condiciones deben aclarar quién paga a quién y cuándo en función de los resultados concretos de la operación.
No obstante, los contratos OTC tradicionales siguen teniendo margen para malentendidos y desacuerdos entre las partes. Por ejemplo, puede haber una interpretación errónea de determinadas cláusulas (por las que lucharán los abogados) o una disputa sobre si la operación ha cumplido las condiciones externas requeridas.
Contrato OTC inteligente
No obstante, con un contrato inteligente sólo se escribe el contrato en el código y, una vez desplegado, el contrato es inmutable. El código del contrato inteligente se ejecutará exactamente según lo previsto, y los términos no pueden malinterpretarse. Debido a la naturaleza de la ejecución del contrato inteligente, ambas partes son responsables del acuerdo.
Además, ninguna de las partes puede influir en que se alcancen los factores que desencadenan el pago del contrato OTC. Éste se determina únicamente en función de si se cumplen las condiciones codificadas en el contrato inteligente. Por ejemplo, el contrato se ejecutará si el precio de una acción alcanza un nivel predeterminado que se haya programado en el contrato.
Aparte de confirmar simplemente el resultado de la operación, el contrato inteligente también facilita el movimiento de fondos de la parte perdedora a la ganadora. Además, el contrato ejecuta el pago en la cadena de bloques, actuando como una cámara de compensación virtual descentralizada. Ambas partes inician las transacciones con el saldo inicial necesario con la garantía puesta en staking para la operación.
Otras ventajas de los contratos inteligentes
Precisión
No presentan errores y se describen con precisión explícita. El contrato inteligente se ejecuta según lo previsto sin malinterpretar la información de entrada y calcula el resultado exactamente como está programado. Las condiciones están directamente programadas en el contrato y se ejecutan con un 100% de eficacia.
Transparencia y confianza
Los términos son accesibles para las partes contratantes, lo que aumenta la confianza entre ellas. Además, los contratos inteligentes son autónomos y transparentes y, sin interacción humana, no se pueden manipular los datos.
Una autoridad central no controla los contratos lo que aumenta la confianza en que un contrato inteligente se ejecutará según lo previsto.
Comunicación
Debido a la precisión de un contrato inteligente, es poco probable que se produzcan interpretaciones o comunicaciones erróneas. Cuando la comunicación de los contratos es clara, se crea un entorno de confianza y eficacia.
Velocidad y eficacia
La elaboración de contratos tradicionales en papel es un suplicio en el que las partes tienen que dar muchas vueltas antes de cerrar un contrato impreso. La belleza de los contratos inteligentes es que se ejecutan en fracciones de segundo, lo que ahorra potencialmente días, semanas o meses de esfuerzo, elaborando un contrato en papel a satisfacción de todas las partes.
Como los contratos inteligentes son rápidos y precisos, la eficiencia es un subproducto positivo.
Seguridad
Los contratos funcionan con un alto nivel de cifrado de datos, lo que los hace excepcionalmente seguros. Su seguridad está garantizada por el sistema subyacente de cadena de bloques en el que reside, lo que hace que la manipulación del contrato inteligente sea excepcionalmente difícil.
Ecológicos
Los contratos inteligentes no utilizan papel y son muy beneficiosos para reducir nuestra huella de carbono. Además, contribuyen al medio ambiente, ya que sólo existen en el ámbito digital.
Copia de seguridad y almacenamiento
En la cadena de bloques, todos los ordenadores implicados tienen una copia del contrato, por lo que no hay necesidad de hacer copias de seguridad periódicas. No hay razón para que nadie que coloque datos en la cadena de bloques se preocupe por perder su información.
Las transacciones llevan un sello de tiempo y se almacenan de forma permanente. En caso de pérdida de datos, se pueden recuperar fácilmente y son auditables para siempre.
Bajo coste
En un contrato inteligente, dos partes pueden operar sin intermediarios, lo que ahorra tiempo y dinero. En la mayoría de los casos, no es necesario contar con un abogado para supervisar las transacciones.
Los contratos inteligentes se ejecutan automáticamente cuando se cumplen las condiciones. Imagen vía Shutterstock
Desventajas
Hay muy pocas limitaciones, pero a continuación te indicamos cinco a tener en cuenta:
Difíciles de modificar
En el apartado de los pros también figura la inmutabilidad. Una vez que un contrato está programado, es prácticamente imposible y potencialmente caro cambiarlo. Si más tarde, las partes deciden llegar a un acuerdo mejor, a diferencia de un contrato en papel, no podrán alterar el contrato y tendrán que ejecutar los acuerdos futuros en un nuevo contrato inteligente.
Lagunas legales
Un contrato inteligente se basa en el suministro de datos correctos al desarrollador y en la buena fe entre las partes implicadas para confiar en que el contrato inteligente se ha programado correctamente. Si el contrato no refleja el acuerdo explícito entre las dos partes, podría producirse una laguna inesperada. Ésta es una de las razones por las que son importantes las auditorías de los contratos inteligentes.
La participación de terceros puede seguir siendo necesaria
En el caso de acuerdos complejos, es posible que se requiera la intervención de un abogado para ayudar al desarrollador a comprender los detalles, de modo que el contrato pueda programarse correctamente.
Términos contractuales vagos
Para que un contrato inteligente se ejecute correctamente, no puede haber elementos de vaguedad. Si un acuerdo es especialmente complejo o detallado, es esencial que las partes colaboren estrechamente con un programador para que pueda escribir los códigos informáticos específicos correctos.
Falta de regulación
Actualmente, como la cadena de bloques es descentralizada y no está regulada, no está reconocida por los ámbitos jurídicos. Sin embargo, eso no impide la eficacia del contrato.
Es posible que hayas oído hablar de los datos oráculos fuera de la cadena, de los cuales, en la siguiente sección, hablaremos sobre su aplicación a los contratos inteligentes.
Los contratos inteligentes y la dependencia de los datos fuera de la cadena del oráculo
Los oráculos son fuentes de datos que actúan como puente para obtener, verificar y traer datos de fuera de la cadena (de las fuentes fuera de la cadena de bloques) y ponerlos en la cadena (a los contratos inteligentes dentro de la cadena de bloques).
¿Por qué son necesarios los oráculos?
Los contratos inteligentes de la cadena de bloques de Ethereum no pueden acceder a la información almacenada fuera de la plataforma basada en la cadena de bloques de Ethereum. Equivale a intentar conectar dos ordenadores de forma inalámbrica sin disponer de Bluetooth. Los datos no pueden transmitirse de un ordenador a otro mientras no estén conectados. Sí, es una explicación simplista, pero permite entender que un oráculo permite la ejecución de contratos inteligentes utilizando datos fuera de la cadena.
Los oráculos trasladan información de una cadena de bloques a sistemas externos. Sin oráculos, las aplicaciones de contratos inteligentes sólo podrían acceder a los datos dentro de la cadena. Los contratos inteligentes que pueden ejecutarse a partir de datos fuera de la cadena amplían el valor de las aplicaciones descentralizadas. Los oráculos suelen utilizarse para transmitir a la cadena de bloques datos meteorológicos, precios de activos y otra información que existe en el “mundo real”.
¿Por qué los contratos inteligentes necesitan de oráculos?
La cadena de bloques de Ethereum es un sistema determinista, lo que significa que, dada una entrada y un estado inicial concretos, la aleatoriedad o la variación de las entradas de cálculo a partir de las salidas no es posible en la cadena de bloques. Para que una cadena de bloques logre una ejecución determinista, las cadenas de bloques como Ethereum limitan sus nodos (Ethereum tiene muchos miles de nodos en todo el mundo) a alcanzar un consenso mediante preguntas binarias (verdadero/falso) utilizando los datos almacenados en la cadena de bloques de Ethereum.
Algunos ejemplos de preguntas binarias podrían ser los siguientes:
¿Tiene la cuenta fondos suficientes para completar la transacción?
¿La clave pública (perteneciente al titular de la cuenta) firmó la transacción con una clave privada (emparejada)?
La información externa del mundo real impediría que los nodos acordaran cambios en la cadena de bloques. Si el nodo X ejecuta el código y obtiene como resultado “5”, pero el nodo Y ejecuta la misma transacción y obtiene “7”, el consenso se derrumbaría y causaría estragos en la plataforma descentralizada de Ethereum. De ahí la necesidad de contar con oráculos en estos casos.
La información dentro de la cadena es transparente e inmutable, por lo que los nodos de Ethereum pueden lograr el consenso utilizando datos importados por el oráculo fuera de la cadena para calcular los cambios de estado de la red.
La cadena de bloques de Ethereum es un sistema determinista. Imagen vía Shutterstock
El gran futuro de los contratos inteligentes
Aunque los contratos inteligentes son, sin duda, revolucionarios, hay algunos posibles problemas que podrían derivarse de su uso. Por supuesto, siempre existe la posibilidad de que haya errores de programación y fallos imprevistos en el contrato. Esto podría conducir a resultados que ninguna de las partes esperaba. Del mismo modo… ¿cómo regularán los gobiernos estos contratos y cómo podrían limitar los abusos?
De hecho, hay otros elementos inherentes a los contratos tradicionales, como la Fuerza Mayor, que permite un margen de maniobra en caso de acontecimiento o circunstancia extraordinaria que no esté bajo el control de las partes. Con los contratos inteligentes, el código se ejecutará independientemente de estos acontecimientos.
No obstante, no hay razón para que estos posibles problemas no puedan superarse. Investigadores de Cornell Tech procedentes de numerosos campos están trabajando en soluciones para que los contratos inteligentes formen parte de nuestra vida cotidiana. Los abogados podrían colaborar con los desarrolladores para crear plantillas de contratos inteligentes para uso comercial. Sin duda, las oportunidades de colaboración hacia la adopción masiva son infinitas.
¿Qué es un contrato inteligente? (Conclusión)
Creemos que estarás de acuerdo con esto: entender los contratos inteligentes no es tan desafiante como podrías haber pensado. Las ventajas superan a los inconvenientes, y la inmutabilidad de un contrato inteligente ahorra un montón de papeleo con contratos en papel llenos de vaguedades y jerga de abogados.
A medida que la inteligencia artificial cobra fuerza y las monedas virtuales se hacen más comunes, ya nada parece imposible. Mover fondos sin demora se ha convertido en una característica de los tiempos modernos.
Además, el mundo empresarial de muchos sectores está adoptando la tecnología de registro distribuido, confiando en la seguridad de una cadena de bloques descentralizada. Gracias a los contratos inteligentes, muchas personas están satisfechas con el movimiento digital de dinero y el acuerdo de obligaciones contractuales sin los retrasos ni los intermediarios asociados a las instituciones tradicionales.
A medida que, con el tiempo, más gente en todo el mundo comprenda la eficacia, rapidez y bajo coste de crear un contrato inteligente, quizá el sistema judicial tradicional tenga motivos para reconocer estos contratos digitales como el siguiente nivel de cómo creamos acuerdos entre dos o más partes.
Aviso: Éstas son las opiniones del autor y no deben considerarse asesoramiento de inversión. Los lectores deben investigar por su cuenta.
El artículo Beginner’s Guide to Smart Contracts: Everything You Need to Know fue publicado por primera vez en Coin Bureau.