Smart Contracts
Un smart contract (contrato inteligente) es un programa que vive en la blockchain y se ejecuta automáticamente cuando se cumplen ciertas condiciones.
La analogía de la máquina expendedora
Piensa en una máquina expendedora:
- Insertas dinero
- Seleccionas un producto
- La máquina automáticamente te da el producto
No hay un empleado decidiendo si darte el producto o no. Las reglas están programadas y se ejecutan automáticamente.
Un smart contract funciona igual, pero en la blockchain:
┌─────────────────────────────────────────────────────────┐
│ SMART CONTRACT │
│ │
│ SI recibes 1 ETH de la dirección 0xABC │
│ ENTONCES envía 1000 USDC a la dirección 0xABC │
│ │
│ ─────────────────────────────────────────────────── │
│ Este código se ejecuta AUTOMÁTICAMENTE │
│ No puede ser modificado ni detenido │
└─────────────────────────────────────────────────────────┘¿Para qué sirven?
Los smart contracts son la base de casi todo lo interesante en crypto:
| Aplicación | Cómo usa smart contracts |
|---|---|
| Exchanges descentralizados | Intercambio automático de tokens |
| Préstamos (DeFi) | Colateral y liquidaciones automáticas |
| NFTs | Propiedad y transferencia de arte digital |
| DAOs | Votaciones y gobernanza automática |
| Stablecoins | Mantener la paridad con el dólar |
Ejemplo: Exchange descentralizado
Cuando intercambias ETH por USDC en Uniswap:
┌─────────────────────────────────────────────────────────┐
│ UNISWAP (DEX) │
│ │
│ Pool de liquidez: │
│ ┌───────────────────────────────────┐ │
│ │ 1000 ETH │ 2,000,000 USDC │ │
│ └───────────────────────────────────┘ │
│ │ │
│ Tú envías ──▶ │ ──▶ Tú recibes │
│ 1 ETH │ ~2000 USDC │
│ │ │
│ El smart contract calcula el precio │
│ y ejecuta el intercambio AUTOMÁTICAMENTE │
└─────────────────────────────────────────────────────────┘No hay nadie "aprobando" tu transacción. El código se ejecuta igual para todos.
Riesgos al interactuar con smart contracts
Los smart contracts tienen riesgos reales
Una vez que firmas una transacción, no hay vuelta atrás. Entender estos riesgos es crucial.
1. Bugs en el código
Los smart contracts son escritos por humanos y pueden tener errores. Estos bugs pueden ser explotados para robar fondos.
| Año | Proyecto | Pérdida | Causa |
|---|---|---|---|
| 2016 | The DAO | $60M | Bug en función de retiro |
| 2023 | Euler Finance | $197M | Vulnerabilidad en liquidaciones |
| 2023 | Curve Finance | $73M | Bug en lenguaje Vyper |
| 2024 | Orbit Bridge | $82M | Llaves comprometidas |
Esto sigue pasando. Incluso protocolos auditados pueden tener vulnerabilidades.
2. Aprobaciones infinitas
Cuando interactúas con un smart contract, a menudo debes "aprobar" que acceda a tus tokens. Muchas aplicaciones piden aprobación ilimitada por conveniencia.
┌─────────────────────────────────────────────────────────┐
│ ⚠️ PELIGRO: Aprobación Ilimitada │
│ │
│ "Este contrato quiere acceso a TODO tu USDC" │
│ │
│ Si el contrato es malicioso o es hackeado, │
│ puede vaciar todos tus USDC en cualquier momento │
└─────────────────────────────────────────────────────────┘Buena práctica
Revisa y revoca aprobaciones regularmente usando herramientas como revoke.cash
3. Contratos maliciosos
Existen contratos diseñados específicamente para robar:
- Honeypots: Tokens que puedes comprar pero no vender
- Drainers: Contratos que vacían tu wallet cuando interactúas
- Rug pulls: El creador puede retirar toda la liquidez
4. Phishing
Sitios falsos que imitan aplicaciones legítimas. Te hacen firmar transacciones que vacían tu wallet.
✅ app.uniswap.org (sitio oficial)
❌ app-uniswap.org (phishing)
❌ uniswap-app.com (phishing)
❌ app.unisvvap.org (phishing - nota las "vv")Cómo protegerte
Antes de firmar cualquier transacción:
- Verifica la URL del sitio (usa bookmarks para sitios importantes)
- Lee qué estás firmando - ¿Es una transferencia? ¿Una aprobación?
- Verifica el contrato - ¿Es el contrato oficial de la aplicación?
- Limita aprobaciones - Aprueba solo la cantidad necesaria, no ilimitada
Herramientas útiles
| Herramienta | Uso |
|---|---|
| revoke.cash | Ver y revocar aprobaciones |
| etherscan.io | Verificar contratos |
| Wallet con simulación | Algunas wallets simulan la transacción antes de firmar |
El código es ley (pero cuidado)
En crypto existe la frase "code is law" (el código es ley). Significa que lo que está programado en el smart contract es lo que sucederá, sin excepciones.
Esto tiene ventajas (nadie puede censurarte) pero también desventajas (si te roban, no hay "servicio al cliente" que te ayude).
Recuerda
- No hay botón de "deshacer" en blockchain
- No hay banco al que llamar para cancelar una transacción
- Tu seguridad es 100% tu responsabilidad
Sign vs Approve
Para entender la diferencia crítica entre firmar un mensaje y aprobar un contrato (donde ocurren el 90% de los hacks), lee la sección Sign vs Approve en DeFi en 5 Minutos.
Resumen
- Los smart contracts son programas automáticos en la blockchain
- Permiten aplicaciones como exchanges, préstamos y NFTs
- Tienen riesgos: bugs, aprobaciones excesivas, contratos maliciosos
- Siempre verifica qué estás firmando antes de aprobar una transacción
Siguiente: On-ramp y Off-ramp - Aprende cómo convertir dinero tradicional a crypto