¿Qué es un contrato inteligente en blockchain?
Los contratos inteligentes son esencialmente programas que se ejecutan cuando se satisfacen criterios específicos y se mantienen en una blockchain.
Los contratos inteligentes suelen utilizarse para automatizar la ejecución de un acuerdo, de modo que todas las partes puedan estar seguras de la decisión al momento, sin intermediarios ni pérdidas de tiempo. También pueden automatizar un flujo de trabajo, iniciándose cuando se satisfacen determinadas circunstancias.
Se escriben simples líneas «si/cuando… entonces…» en el código de una cadena de bloques para que los contratos inteligentes funcionen. Cuando se satisfacen y validan las circunstancias preestablecidas, las actividades son llevadas a cabo por una red de ordenadores.
Estas actividades podrían incluir la transferencia de pagos a las partes correspondientes, el envío de alertas, el registro de un vehículo o la emisión de un billete. Cuando la transacción se construye, la cadena de bloques se actualiza. Esto significa que la transacción no puede ser modificada, y los resultados sólo son visibles para aquellos a los que se les ha concedido acceso.
Ethereum (ETH) es el blockchain de contratos inteligentes más utilizado para ejecutar acuerdos automatizados. Los contratos inteligentes en Ethereum suelen estar escritos en Solidity, un lenguaje de programación Turing-completo, y luego se compilan en bytecode de bajo nivel que la máquina virtual de Ethereum puede ejecutar.
Polkadot es otro ecosistema de contratos inteligentes creado por Gavin Wood, uno de los cofundadores de Ethereum. Tras comprender que ETH está todavía muy lejos de alcanzar su potencial como sistema seguro y escalable, optó por lanzar su red de blockchain.
Las aplicaciones financieras como el comercio, la inversión, los préstamos y los empréstitos son ejemplos de casos de uso de contratos inteligentes. Pueden utilizarse en diversos sectores, como la sanidad, el juego y el sector inmobiliario, así como para construir estructuras empresariales completas.
¿Qué sirve de base para los contratos inteligentes DeFi?
Los libros de contabilidad distribuidos y las criptomonedas son dos tecnologías que sirven de base para los contratos inteligentes descentralizados.
En primer lugar, los datos contenidos, es decir, las transacciones, deben almacenarse de forma segura para formar un libro de contabilidad digital. Esto significa que la clasificación general y el contenido de las transacciones deben ser preservados. Las transacciones individuales se agrupan en bloques en cadenas de bloques, que luego persisten en orden secuencial.
El dinero virtual desarrollado y comercializado en plataformas digitales, como Bitcoin (BTC), se caracteriza como una «criptodivisa digital no regulada y descentralizada» según el Banco Central Europeo. En la década de los 90 ya hubo iniciativas para establecer una moneda digital. Esos intentos, sin embargo, requerían el uso de un banco (custodio del libro de contabilidad) para llevar el control de las cuentas de los propietarios del dinero.
Hoy en día, las cadenas de bloques proporcionan una solución técnica para distribuir este libro de contabilidad, o registro de transacciones, a través de una red de pares, manteniendo la integridad del registro de transacciones. Los mercados de criptomonedas no regulados son ahora posibles gracias a este avance.
¿Qué fases tiene el ciclo de vida de los contratos inteligentes?
La formación de un contrato inteligente, la congelación del contrato inteligente, la ejecución del contrato inteligente y la finalización del contrato inteligente son los cuatro pasos significativos del ciclo de vida de un contrato inteligente. Es diferente del ciclo de vida de desarrollo de la blockchain, que comienza con la definición del problema que se quiere resolver con el producto de la blockchain y termina con un producto mínimo viable.
Crear
La negociación iterativa del contrato y una fase de implementación conforman la fase de creación. En primer lugar, las partes deben acordar el contenido y los objetivos generales del contrato. Esto es similar a las negociaciones de contratos tradicionales y puede hacerse en línea o fuera de línea. En la plataforma del libro de contabilidad subyacente, todos los participantes deben tener un monedero. Su identificador es seudónimo en la mayoría de las circunstancias, y se utiliza para identificar a las partes y transferir los pagos.
El contrato debe convertirse en código una vez acordados los objetivos y el contenido. La expresividad del lenguaje de codificación del contrato inteligente subyacente limita la codificación del contrato. La mayoría de los sistemas de contratos inteligentes proporcionan la infraestructura para construir, mantener y probar los contratos inteligentes para validar su comportamiento y contenido de ejecución.
El paso de los requisitos a código, como se ve en los lenguajes de programación tradicionales, requiere múltiples iteraciones entre las partes interesadas y los programadores. Los contratos inteligentes no serán diferentes, y es probable que se produzcan varias iteraciones entre las fases de negociación e implementación.
Durante la fase de publicación, una vez que las partes se han puesto de acuerdo sobre la forma codificada del contrato, éste se carga en el libro de contabilidad distribuido. Durante esta fase, los nodos del libro contable distribuido reciben el contrato como parte de un bloque de transacciones. El contrato está disponible para su ejecución una vez que la mayoría de los nodos han confirmado el bloque. Dado que los contratos inteligentes descentralizados no pueden modificarse una vez que la cadena de bloques los ha aceptado, cualquier cambio en el contrato inteligente requerirá el desarrollo de uno nuevo.
Aunque un contrato inteligente se coloca en la blockchain, este hecho por sí solo no debe interpretarse como un acuerdo de las partes para entrar en el contrato, ya que cualquiera puede enviar un contrato inteligente a la blockchain, lo que implica una obligación para cualquier propietario de una cartera aleatoria. Del mismo modo, los contratos inteligentes descentralizados pueden beneficiar a cualquier participante de la blockchain, independientemente de que elija o no recibir los beneficios por adelantado.
Congelar
Tras su presentación en la blockchain, el contrato inteligente es confirmado por la mayoría de los nodos participantes. Se debe pagar un precio a los mineros a cambio de este servicio para evitar que el ecosistema se inunde de contratos inteligentes.
El contrato y sus partes están ahora abiertos al público y disponibles a través del libro contable público. Durante la fase de congelación, cualquier transferencia a la dirección del monedero del contrato inteligente se bloquea, y los nodos operan como un consejo de gobierno, verificando que se cumplen las condiciones previas del contrato para su ejecución.
Ejecutar
Los nodos participantes leen los contratos almacenados en el libro contable distribuido. ¿Cómo se ejecuta un contrato inteligente? Se verifica la integridad del contrato y el motor de inferencia del entorno del contrato inteligente (compilador, intérprete) ejecuta el código. Las funciones del contrato inteligente se llevan a cabo cuando se reciben las entradas para la ejecución desde los oráculos inteligentes y las partes implicadas (compromiso de bienes a través de monedas).
La ejecución del contrato inteligente genera un nuevo conjunto de transacciones y un nuevo estado para el contrato inteligente. El conjunto de resultados y la información del nuevo estado se introducen en el libro contable distribuido y se verifican mediante el mecanismo de consenso.
Finalizar
Las transacciones resultantes y la información de estado actualizada se introducen en el libro contable distribuido y se confirman utilizando el proceso de consenso tras la ejecución del contrato inteligente. Los activos digitales previamente asignados se transfieren (los activos se descongelan), y el contrato se completa al confirmar todas las transacciones.
¿Cuáles son los pros y los contras del ciclo de vida del contrato inteligente?
Cada fase del ciclo de vida de un contrato inteligente promete reducir los costes, impulsar la transparencia y generar confianza, pero también conlleva nuevos obstáculos, costes e incompatibilidades legales.
Dado que la formación de los contratos inteligentes descentralizados se separa en dos fases, una fase de negociación de cláusulas tradicional y una fase de implementación del código, los honorarios que se ahorran al utilizar menos abogados deben evaluarse frente a los gastos de los programadores de contratos inteligentes.
La infraestructura de ejecución descentralizada y los actores participantes asumen el papel de ejecutores del contrato gracias al vínculo criptográficamente seguro entre la ejecución del contrato y la finalización del pago. Este proceso incorporado de resolución de conflictos mejora la apertura y la equidad para todas las partes implicadas.
Por otro lado, la naturaleza irreversible de los contratos inteligentes firmados plantea problemas adicionales en cuanto a la corrección, ya que el conjunto de transacciones resultante es inmutable e irrevocable por definición.
Aunque varios aspectos de la vida de un contrato inteligente requieren actualmente conocimientos técnicos especializados (como la programación de un contrato inteligente), la adopción generalizada que se espera de los contratos inteligentes descentralizados, alimentada por la promesa de ahorro de costes, reducirá sin duda las barreras de entrada existentes y conducirá al desarrollo de entornos de creación, prueba e intercambio de contratos inteligentes fáciles de usar.
¿Se puede destruir un contrato inteligente?
Sí, los contratos inteligentes pueden ser destruidos utilizando la función de autodestrucción.
Los contratos inteligentes de Ethereum ofrecen una función de autodestrucción que permite destruir un contrato en el sistema blockchain. Sin embargo, es un arma de doble filo para los desarrolladores. Por un lado, la función de autodestrucción permite a los desarrolladores eliminar los contratos inteligentes de Ethereum y transferir Ether en caso de emergencia, como un ataque. Por otro lado, esta función podría aumentar la complejidad del desarrollo y proporcionar un canal de ataque para los atacantes.
Cuando se descubren fallos de seguridad o hay que actualizar la funcionalidad de un contrato inteligente, los desarrolladores lo eliminan. Lanzarán una nueva versión del contrato tras resolver los errores o actualizar la versión actual.
Los atacantes descubrieron una vulnerabilidad llamada Reentrancy en un contrato inteligente de la Organización Autónoma Descentralizada (DAO) en 2016, y la organización DAO perdió 3,6 millones de Ether (270 dólares/Ether en febrero de 2020) como resultado de esta vulnerabilidad. Este infame ataque se conoce a veces como ataque a la DAO.
El hackeo de la DAO duró varios días, y la organización no era consciente de que su contrato había sido comprometido en ese momento. Debido a la propiedad de inmutabilidad de los contratos inteligentes, no pudieron detener el ataque ni mover el Ether. Si el contrato tiene una función de autodestrucción, la organización DAO puede transferir rápidamente todo el Ether y evitar el daño financiero.






