

Contratos inteligentes


Un contrato inteligente es un programa desplegado en una blockchain que ejecuta reglas según su código cuando se activa mediante los mecanismos de la red. No equivale necesariamente a un contrato jurídico ni garantiza ausencia de errores o intermediarios.
Introducción
Los contratos inteligentes se utilizan en redes como Ethereum. Su documentación introductoria explica el concepto, asociado a las propuestas de Nick Szabo en la década de 1990. Automatizar código no demuestra por sí solo que un acuerdo sea válido o seguro.
El código define reglas y funciones que operan sobre un estado. Una transacción u otra llamada debe activar la ejecución; el programa no se despierta por sí solo simplemente porque llegue una fecha.
Ethereum permite programar aplicaciones con contratos. La confianza se desplaza hacia código, red, datos y posibles administradores; ejecutar exactamente el código no equivale a ejecutar lo que sus usuarios creían o deseaban.
Desarrollo y seguridad
La calidad depende del diseño, la implementación y las dependencias. También importan los permisos de administración, las actualizaciones y los datos externos utilizados.
Lenguajes y herramientas
En Ethereum se utilizan lenguajes como Solidity y Vyper. Pact pertenece a otro ecosistema y no es simplemente una alternativa habitual de lenguaje para la EVM. Remix es un entorno que permite desarrollar y probar contratos compatibles.
Pruebas y auditorías
Las pruebas y auditorías de seguridad pueden detectar fallos, pero no garantizan ausencia de vulnerabilidades. La criptografía de la red no convierte automáticamente en confidenciales los datos de una blockchain pública.
Despliegue y ejecución
La máquina virtual de Ethereum (EVM) ejecuta instrucciones. El gas mide trabajo computacional; las transacciones que modifican la cadena pagan comisiones según las reglas de la red. Una consulta local de lectura puede realizarse sin enviar una transacción ni pagar una comisión de red.
Usos
Los contratos permiten automatizar partes de intercambios y otras aplicaciones. La automatización puede reducir algunas tareas, pero no elimina toda intervención humana ni las dependencias externas.
Finanzas descentralizadas
En las finanzas descentralizadas, pueden gestionar intercambios, garantías o préstamos. La ejecución programada no garantiza seguridad ni acceso universal: existen riesgos de código, liquidación, oráculos y permisos.
Juegos y NFT
Los contratos pueden crear y gestionar tokens no fungibles. Poseer un token no concede automáticamente derechos de autor ni garantiza que el recurso asociado siga disponible o tenga valor.
Seguros y condiciones externas
Un contrato puede automatizar ciertos pagos si dispone de datos y fondos adecuados. Los hechos externos suelen requerir un oráculo u otro proceso, con riesgos de error, disputa y cobertura que la programación no elimina.
Infraestructura blockchain
Una blockchain mantiene un registro compartido mediante reglas de consenso. Su seguridad y grado de descentralización dependen de la red y del diseño; «inmutable» no significa que todos los componentes de una aplicación carezcan de administradores.
Ethereum y la EVM
Las transacciones tienen un identificador o hash, no una dirección propia equivalente a una cuenta. Las transacciones válidas pueden modificar el estado global conforme a las reglas de Ethereum y a la ejecución de los contratos.
Datos externos y actualizaciones
Los oráculos aportan información que la blockchain no puede observar por sí sola. Los contratos desplegados pueden integrarse en sistemas actualizables mediante proxies u otros mecanismos; hay que conocer quién puede cambiar su comportamiento y con qué permisos.


