¿Qué es un contrato inteligente en blockchain?

En palabras sencillas
Un contrato inteligente es un programa que está escrito directamente en la blockchain y ejecuta por sí mismo unas reglas fijadas de antemano, sin intermediario. La regla es sencilla: si ocurre una cosa, el programa hace otra automáticamente. Cuando la condición se cumple, el resultado normalmente ya no se puede cambiar.
Lo más fácil es imaginar una máquina expendedora: metes una moneda, y te entrega una lata. La máquina no necesita un vendedor, cumple su regla sola, y la regla es igual para todos. Un contrato inteligente es la misma máquina, solo que para dinero y datos digitales, y sus reglas están a la vista de cualquiera.
La palabra contrato aquí despista. No se trata de un acuerdo jurídico con firmas, sino de código de programa — una regla que la red cumple por sí sola.
Más a fondo
En qué se diferencia de un programa normal
Un programa normal corre en el servidor de alguien, y su dueño puede cambiarlo o apagarlo sin que se note. Un contrato inteligente está publicado en la blockchain, sus reglas las cumple la red, y cambiarlas a escondidas a posteriori es mucho más difícil. Aquí hay un matiz importante: no todos los contratos son inmutables, y no todo el código es abierto. Algunos contratos están hechos para poder actualizarse, otros tienen claves de administración y una forma de poner el contrato en pausa, y el código fuente no siempre está a la vista. Así que ser inmutable y ser transparente son propiedades de un contrato concreto que conviene comprobar, no algo dado en todos.
Por la ejecución no paga el contrato en sí, sino quien lo llama, es decir, el emisor de la transacción. Paga una comisión de la red. En Ethereum esa comisión se llama gas, de la que trata el artículo qué es el gas. En algunos esquemas otra parte puede pagar el gas por ti.
La red Bitcoin sabe comprobar condiciones simples para las transferencias, pero la idea de contratos de propósito general, donde se puede programar casi cualquier lógica, la trajo de forma masiva Ethereum. Por eso la mayoría de los tokens, stablecoins como DAI, NFT y distintas aplicaciones dentro de una red funcionan precisamente en Ethereum y en redes parecidas.
Qué está construido sobre ellos y dónde te los encuentras
Mucho de lo que se topa quien empieza funciona sobre contratos inteligentes bajo el capó. Esto incluye una stablecoin, un intercambio de una moneda por otra sin una empresa detrás, y la emisión de un token o de un NFT. Puede que no veas ni una vez la palabra contrato y aun así los estés usando.
De ahí un punto práctico importante: un contrato inteligente cumple lo que tiene escrito, no lo que tú tenías en mente. Cuando le das a un contrato acceso a tus monedas, una acción a la que se le llama approve, confías en su código. Así que conviene entender qué es exactamente lo que estás permitiendo. El artículo seguridad al conectar la cartera entra en esto.
Con honestidad sobre «el código es la ley»
«El código es la ley» es una forma habitual de describir los contratos inteligentes: una vez que la regla está escrita en el código, se ejecuta sola, sin la decisión de nadie. Esta autoejecución tiene dos caras.
La cara buena es que, si la regla está escrita y el contrato no se puede cambiar, nadie puede echarse atrás y dejar de cumplir lo prometido, ni el creador ni la plataforma. La otra cara es que el código cumple exactamente lo que tiene escrito, incluido un error: si el contrato tiene un fallo, se ejecutará al pie de la letra, los fondos pueden ir a parar al lugar equivocado y, por lo general, no hay quien lo deshaga, porque una transferencia en la blockchain no se puede revertir.
«El código es la ley» tampoco es siempre cierto. Muchos contratos tienen claves de administración, es decir, el creador puede intervenir; algunos tienen un botón de pausa; y a veces un contrato depende de datos externos que aporta un llamado oráculo — un programa que suministra a la blockchain datos del mundo real, como una cotización. Todo esto puede cambiar o detener el funcionamiento del contrato.
Por eso los proyectos serios encargan una revisión independiente del código, a la que se le llama auditoría. La auditoría reduce el riesgo de errores, pero no da una garantía del cien por cien: a veces se encuentran agujeros incluso en código auditado.