¿Por qué estudiar a los smart contracts?
Los smart contracts son una parte fundamental para entender cómo se viene desarrollando la expansión acelerada de los metaversos, las finanzas descentralizadas (DeFi), los mercados NFT, los centros de arbitraje descentralizados como Kleros e incluso videojuegos play2earn, los cuales sirvieron como sustento económico a personas con escasos recursos durante la cúspide de la pandemia. Sin duda la utilización de smart contracts implementados en redes blockchain conciernen al ámbito jurídico al tener un impacto significativo en el comercio y en la sociedad en general.
¿Desde cuando existen los smart contracts?
El término "smart contract" fue acuñado por el jurista y criptógrafo informático Nick Szabo en 1994, quien lo define como un programa informático capaz de ejecutar los acuerdos de un contrato con el objetivo de minimizar el incumplimiento y la necesidad de contar con intermediarios de confianza. Fue recién con la red Ethereum, en el año 2015 cuando se pudieron implementar por primera vez los smart contracts en una blockchain, situación que permitió otorgarle inmutabilidad y mayor seguridad a la ejecución de los acuerdos celebrados.
¿En qué se diferencian los smart contracts con los contratos tradicionales?
En el contexto de una contratación tradicional, las partes formalizan los acuerdos pactados en documentos públicos o privados como prueba de haber celebrado un contrato; así, en caso de que surja una controversia, podrán acudir a tribunales judiciales o arbitrales para exigir el cumplimiento de obligaciones o una indemnización de ser el caso.
La siguiente figura muestra el proceso de contratación tradicional de manera general:
Por su parte, los smart contracts son un programa informático que ejecuta de manera automática los acuerdos de un contrato, razón por la cual requieren de un programador informático para codificar- esto es, traducir al lenguaje computacional- los acuerdos pactados; además de ello y de ser el caso, también se requerirá de un abogado que asista al programador informático para traducir la prosa legal al código informático como se muestra en la siguiente figura:

De esa manera, un contrato ejecutado a través de un smart contract puede reducir considerablemente por sí solo el incumplimiento de obligaciones e, implementado en una red blockchain, evita que se modifiquen de forma unilateral la ejecución de los acuerdos; llegando todo a ello a generar que los tribunales judiciales y arbitrales se pueden ser potencialmente prescindibles para exigir el cumplimiento de obligaciones contractuales; de hecho, incluso si alguien obtuviera un fallo judicial a su favor por algún conflicto surgido en una transacción efectuada en una red blockchain, la situación no podrá ser revertida.
Veamos a continuación un ejemplo simple de un contrato implementado en un smart a través de la siguiente figura:
Ante lo expuesto, podemos afirmar que un smart contract no comparte las características de un contrato tradicional ni consideramos adecuado equipararlo a su concepción jurídica.
¿Cómo se verifica el cumplimiento de obligaciones en un smart contract?- Los oracles como mensajeros del "mundo exterior"
Para que un smart contract pueda ejecutar de manera automática los términos de un contrato necesita verificar que las obligaciones se cumplan; sin embargo, al tratarse básicamente de un programa informático, los smart contracts no pueden realizar por cuenta propia dicha tarea. Por tal motivo, los smart contracts se valen de los oracles, cuya función principal es la de portar información desde el "mundo real" a la red blockchain y viceversa por ello los oracles pueden presentarse hasta el momento de las siguientes formas:
Como programa de software capaz de recolectar información de Internet:
Como hardware a través de sensores capaces de captar información en un espacio físico:
En la figura vemos un ejemplo de contrato de suministro codificado en un smart contract donde se utiliza un oracle en forma de sensor para verificar el cumplimiento por parte del proveedor y liberar automáticamente el pago.
Como un tercero de confianza mediante una persona o institución que pueda brindar información certera:
Los oracles pueden jugar un papel muy importante en el compliance.
Nota: En los ejemplos precedentes se utiliza de manera ilustrativa un solo oracle; sin embargo, lo ideal es siempre contar con más de uno para evitar el Punto Único de Fallo y la centralización en la red.
Una vez recolectada la información, corresponde ser verificada por los usuarios de una blockchain para que pueda ser integrada en la red. Aquello puede lograrse de manera automática dependiendo del grado de confianza que le tengan los usuarios al oracle, a través de un mecanismo para poner a prueba la información que porta el oracle o a través de un sistema de votación entre los usuarios con mejor reputación en la red. La figura mostrada a continuación muestra el proceso de validación e integración de la información proveída por un oracle:
-Abra la imagen en una pestaña nueva para poder visualizarla en su tamaño original-
¿Puede cualquier contrato implementarse en un smart contract?
Actualmente los smart contracts presentan limitaciones respecto a la posibilidad de implementar todos los acuerdos posibles en un código informático, algunas de las más relevantes son las siguientes:
- El lenguaje legal necesita ser flexible y genérico para poder abarcar situaciones imprevistas; por el contrario, el código informático está dotado de una lógica condicional que se puede resumir en: "si ocurre 'x' entonces ejecuta 'y'", además de basarse en categorías bien definidas y métodos precisos. De esa manera, no sería posible que un código informático pueda contener cláusulas con los términos "con la debida diligencia" o "realizando su mejor esfuerzo para...".
- Se elimina la posibilidad de cubrir el incumplimiento por caso fortuito o fuerza mayor.
- A pesar de facilitar transacciones directas y prescindir de la intermediación, existen costos de transacción como la necesidad de contar con la labor de un programador informático para codificar los acuerdos y el pago de una tarifa a los validadores de una red para registrar las transacciones.
- El código informático que contiene los acuerdos no está exento de errores de programación, aunque se pueden realizar simulaciones antes de incorporar el smart contract a una red blockchain.
Cabe mencionar en este punto que recientemente se vienen desarrollando los llamados contratos ricardianos los cuales vendrían a ser un tipo de smart contract que contiene: el contrato tradicional contenido en un documento, el código informático implementando los acuerdos que serán autoejecutados y los parámetros que determinarán la ejecución del código. En adición a ello, una vez que el contrato ricardiano se implemente en una blockchain, todo el contenido antes mencionado se encontrará encriptado mediante un hash, como corresponde a cada bloque. ¿Será posible que puedan ser implementados en la próxima versión de Ethereum o en otras redes con mayor escalabilidad?.
Llegado a este punto podemos empezar a percibir el vínculo que se crea entre los smart contracts y las redes blockchain el cual ha hecho posible la creación de aplicaciones de software descentralizadas (DApps) que permiten la materialización de las finanzas descentralizadas, la venta de parcelas virtuales en un metaverso o la de inmuebles reales a través de la tokenización de activos. Temas que abarcaremos en próximas entradas.
Preguntas frecuentes sobre smart contracts:
¿Un smart contract es un contrato?
Consideramos que no por cuanto un contrato es el acuerdo de dos o más partes que deciden crear, modificar o extinguir una relación jurídica patrimonial y; por su lado, un smart contract es básicamente un programa informático programado para ejecutar automáticamente los acuerdos de un contrato. Es decir, un smart contract solo contiene los términos del contrato, de una manera similar a la que podrían estarlo en un documento impreso, en un correo electrónico, en una conversación telefónica o incluso en una servilleta. La diferencia principal entre un contrato tradicional contenido en un documento impreso y un smart contract radica en que el smart contract va a autojecutar las obligaciones acordadas mientras que el contrato celebrado de manera tradicional asegura el cumplimiento de obligaciones en el sentido de servir esencialmente como instrumento probatorio en sede judicial o arbitral de los actos celebrados.
¿Un smart contract es un contrato informático?
Es fácil caer en la confusión pero en base a la respuesta precedente no sería considerado como un smart contract debido a que los contratos informáticos son una especie de contrato cuyo objeto recae en bienes informáticos como pueden ser: la compra de un hardware o software, servidores, computadoras, etc y/o servicios informáticos como podrían ser la instalación de equipos, la asistencia técnica, el desarrollo de software, la instalación de programas, entre otros; sin importar la forma en que se celebre. En ese sentido, un smart contract incluso podría contener los términos de un contrato informático.
Bibliografía
Fecha de publicación: 24 de marzo de 2022.
¿Tiene alguna pregunta adicional que desee agregar? Escríbala en los comentarios o mándeme un mensaje directo en la sección Contacto.
Próxima entrega:
Abarcaremos el tema de la gobernanza en redes blockchain, donde profundizaremos sobre el mecanismo de consenso al descubrir cómo se lleva a cabo un gobierno descentralizado entre sus integrantes y hasta qué punto supera los límites de la tecnología.
Vea también: ¿Qué es una blockchain?
0 Comentarios