¿Qué es Solidity? Un lenguaje de programación para contratos inteligentes.
Una línea de código Solidity mal escrita le entregó a un atacante 3,6 millones de ETH. El código hizo exactamente lo que se le ordenó. Ahí reside la parte inquietante. Solidity maneja dinero. Su código fuente suele estar a la vista de todos. Y una vez que un contrato está activo, no hay parches de seguridad: el error persiste, los fondos quedan expuestos y todo el mundo puede leerlos. Es el lenguaje de programación dominante para escribir contratos inteligentes en Ethereum y en todas las blockchains EVM. Si dejamos de lado la jerga técnica, la mayor parte de DeFi y NFT se basa en Solidity. Poderoso. Y también implacable. Aquí te explicamos qué es, cómo se ejecuta el código, cómo es un primer contrato y por qué la seguridad es una prioridad absoluta.
¿Qué es Solidity como lenguaje de programación?
Todas las guías dicen lo mismo: Solidity es un lenguaje de alto nivel para contratos inteligentes. De acuerdo. Eso no te ayuda mucho. ¿Pero qué tipo de lenguaje es? Tipado estático. Orientado a objetos. Llaves y punto y coma, sintaxis tomada de JavaScript, C++ y Python. Si has publicado código en alguno de esos lenguajes, un archivo `.sol` te resultará familiar en unos diez minutos.
Gavin Wood lo esbozó en 2014, con la ayuda de un pequeño equipo de Ethereum que incluía a Christian Reitwiessner. El objetivo era claro: permitir que la gente escribiera contratos inteligentes para una cadena de bloques pública. Su unidad central es el «contrato». Imagínelo como una «clase» que reside en una cadena: almacena estado, expone funciones y hereda de otras. La clave está en dónde se ejecuta. Al compilarlo a código de bytes, el mismo contrato se ejecuta de forma idéntica en cada nodo de una red descentralizada, donde todos se verifican entre sí. Este requisito fundamental explica por qué Solidity se siente tan limitado.
| Solidez a simple vista | |
|---|---|
| Lanzamiento inicial | 2014 |
| Diseñador principal | Gavin Wood (Ethereum) |
| Paradigma | Orientado a objetos, orientado a contratos |
| Mecanografía | Estático |
| Compilado en | Código de bytes de EVM |
| Compilador más reciente | v0.8.35 (abril de 2026) |
| Extensión de archivo | .Sol |
Cómo funciona Solidity: Del código a la EVM
Lo interesante de Solidity no es su sintaxis, sino su arquitectura de pipeline. El código legible se convierte en algo que miles de máquinas ejecutan de la misma manera. El determinismo es fundamental. Si dos nodos ejecutaran el mismo contrato y obtuvieran respuestas diferentes, la red no podría ponerse de acuerdo sobre el saldo de ninguno. Este requisito explica muchas de las peculiaridades del lenguaje: no se puede obtener un número aleatorio ni llamar a una API web externa durante la ejecución. Todo debe ser reproducible desde la propia cadena.
El compilador y el código de bytes
Se escribe un archivo `.sol`, legible para humanos y de alto nivel. El compilador de Solidity, `solc`, lo convierte en código de bytes EVM, una larga secuencia de operaciones de bajo nivel, además de una ABI que enumera las funciones del contrato. El código de bytes es lo que se ejecuta en la cadena de procesamiento. Nadie lo lee manualmente. Es el objetivo de la máquina, de la misma manera que C se convierte en lenguaje ensamblador.
El EVM y el gas
La máquina virtual de Ethereum ejecuta ese código de bytes. Cada nodo de Ethereum tiene una. Cada operación que realiza cuesta gas, una tarifa que se paga en ETH. El gas no es un detalle secundario. Es la forma en que la red valora la computación y se protege: un bucle descontrolado no congela la cadena, simplemente consume el gas del remitente y revierte la operación. Una buena implementación de Solidity mantiene el gas bajo.
El ABI
La ABI, o Interfaz Binaria de Aplicación, es el mapa JSON que define cómo comunicarse con un contrato implementado. Una billetera como MetaMask, o una dApp de interfaz, la utiliza para codificar una llamada a función en el formato que espera la EVM y, posteriormente, decodificar la respuesta. La ABI actúa como el puente entre la interfaz que ve el usuario y el contrato ubicado en una dirección de la cadena de bloques.

Escribiendo tu primer contrato inteligente Solidity
Basta de teoría. La forma más rápida de entender Solidity es leer un contrato pequeño y reconocer sus partes.
Anatomía de un contrato
```solidez
// Identificador de licencia SPDX: MIT
pragma solidity ^0.8.20;
Contador de contrato {
uint256 public count;
event Incremented(uint256 newCount);
function increment() public {
count += 1;
emit Incremented(count);
}
}
```
Unas pocas piezas conforman todo el sistema. La línea `pragma` fija la versión del compilador, impidiendo que una versión incompatible recompile el código sin previo aviso. `contract Counter` abre el contrato, como si se abriera una clase. `count` es una variable de estado, almacenada permanentemente en la cadena. `increment()` es una función pública que cualquiera puede llamar. `event Incremented` registra cada cambio para que las aplicaciones externas puedan reaccionar. Código orientado a objetos, con una cadena de bloques subyacente.
Las herramientas que realmente utilizas
Para empezar, no necesitas instalar nada. Remix es un IDE basado en navegador: escribe, compila e implementa Solidity en pocos clics, lo que lo convierte en la plataforma estándar para aprender Solidity. Los proyectos reales se desarrollan en frameworks locales. Hardhat y Foundry se encargan de la compilación, las pruebas y la implementación correctamente. Y casi todos recurren a OpenZeppelin, una biblioteca de contratos auditados y reutilizables para tokens y control de acceso, en lugar de reinventar código arriesgado desde cero.
Del código a una dirección en vivo
El despliegue consiste en enviar el código de bytes compilado en una transacción. Primero, prueba en una red de prueba gratuita. Sepolia es la opción habitual en 2026. Conecta una billetera como MetaMask. Envía a la red principal solo cuando el contrato funcione correctamente. El despliegue también tiene un coste de gas, que se paga en ETH real. Y aquí viene la frase que vale la pena grabarse en la muñeca: una vez desplegado, el código es inmutable. No se puede editar un contrato en producción. Este hecho, más que cualquier peculiaridad sintáctica, es la razón de ser de la siguiente sección.
¿Qué blockchains son compatibles con Solidity?
Solidity dejó de ser "el lenguaje de Ethereum" hace años. Tantas redes adoptaron la EVM para reutilizar las herramientas de Ethereum que Solidity se convirtió en el lenguaje común de toda una familia de cadenas. ChainList rastrea más de 385 blockchains compatibles con EVM en 2026. Los nombres más importantes cumplen con los requisitos: Polygon, BNB Chain, Arbitrum , Base y Avalanche, todas ejecutando el mismo código de bytes al que se compila tu archivo `.sol`.
Ethereum sigue siendo el centro de gravedad. Alberga aproximadamente 45 mil millones de dólares en valor total bloqueado, más de la mitad de todo el ecosistema DeFi, según DeFiLlama . Y la actividad va en aumento: cerca de 8,7 millones de nuevas implementaciones de contratos inteligentes solo en el cuarto trimestre de 2025, según Token Terminal. Para un desarrollador, ese alcance es la verdadera razón para elegir Solidity en lugar de un lenguaje limitado a una sola cadena.
¿Qué se construye con Solidity? Prácticamente todas las categorías de aplicaciones descentralizadas que conozcas. Protocolos de préstamos y comercio DeFi. Los contratos ERC-20 que respaldan la mayoría de los tokens, los contratos ERC-721 que respaldan los NFT. Las DAO codifican sus reglas de votación en Solidity. Las stablecoins gestionan su oferta con Solidity. Los juegos en la cadena de bloques mantienen su lógica allí. Cuando un proyecto dice que está "en Ethereum", es casi seguro que alguien escribió e implementó Solidity.
¿Por qué es difícil la seguridad de los contratos inteligentes de Solidity?
Las características que hacen que Solidity sea tan potente son las mismas que hacen que sus errores sean tan costosos. El código maneja dinero. El código fuente suele ser público. No se puede parchear. Un atacante puede leer tu contrato con tranquilidad, y los fondos están ahí mismo, en la dirección indicada. Este no es un lenguaje para avanzar rápido y cometer errores. Nunca he trabajado con software donde la diferencia entre "compila" y "es seguro" sea tan grande.
Reentrada y el hackeo de DAO
La vulnerabilidad clásica de Solidity es la reentrada. Un contrato envía ETH a una dirección externa antes de actualizar su propio saldo interno, y el contrato receptor vuelve a llamar para retirar fondos repetidamente antes de que finalice la primera llamada. En junio de 2016, este fallo provocó la pérdida de aproximadamente 3,6 millones de ETH, con un valor aproximado de 60 millones de dólares en ese momento, de The DAO . Las consecuencias dividieron Ethereum en ETH y Ethereum Classic, una cadena que aún opera en la actualidad. ¿Y la solución? Sorprendentemente sencilla. Actualizar primero el estado y enviar el dinero al final. Este patrón incluso tiene un nombre: interacciones de efectos de comprobación.
Desbordamiento de enteros y SafeMath
Antes de Solidity 0.8, las operaciones aritméticas podían provocar un desbordamiento silencioso. Si se sumaba 1 al valor máximo de un `uint256`, el resultado era cero, lo que los atacantes aprovechaban para generar saldos de tokens absurdos, como en el incidente de BeautyChain (BEC) en 2018. Durante años, los desarrolladores se protegieron contra esto con una biblioteca llamada SafeMath, que durante un tiempo fue uno de los archivos más importantes de Solidity. Posteriormente, la versión 0.8 incorporó comprobaciones de desbordamiento y subdesbordamiento al propio lenguaje. El error aritmético más común ahora se revierte automáticamente, sin necesidad de ninguna biblioteca adicional.
Auditorías y su coste
Dado que los errores son permanentes, los proyectos serios invierten en revisiones. Se basan en los componentes auditados de OpenZeppelin y luego contratan empresas para auditar todo el sistema. Una auditoría profesional de contratos inteligentes suele costar entre 25 000 y más de 100 000 dólares para un protocolo DeFi, según datos de mercado de Sherlock , y las auditorías de Solidity tienden a ser entre un 25 % y un 40 % más baratas que las auditorías equivalentes de Rust, simplemente porque hay más profesionales disponibles. Además, las buenas empresas tienen la agenda completa. Un protocolo de tamaño medio puede esperar semanas para conseguir un espacio y otras semanas más para recibir el informe. Nada de esto es rápido ni opcional.
| Vulnerabilidad | ¿Qué salió mal? | Caso famoso | Arreglar |
|---|---|---|---|
| Reentrada | La llamada externa se reinicia antes de que se actualice el estado. | La DAO, 2016 | Comprobaciones, efectos e interacciones |
| Desbordamiento de enteros | La aritmética se extiende más allá de su límite. | BeautyChain (BEC), 2018 | Comprobaciones integradas (Solidity 0.8+) |
| Control de acceso | Cualquiera puede llamar a una función privilegiada. | Varios | `onlyOwner` / guardias de rol |
| Llamadas externas no controladas | Llamada fallida ignorada, la lógica continúa | Varios | Validar los valores de retorno |
La buena noticia es que la magnitud de las pérdidas está disminuyendo. Según Immunefi , las pérdidas en criptomonedas derivadas de vulnerabilidades específicas de DeFi cayeron a unos 680 millones de dólares en 2025, lo que representa una reducción de aproximadamente el 74 % con respecto al pico de 2620 millones de dólares alcanzado en 2022. Esto se debe, en parte, a las mejores herramientas y a los controles de seguridad integrados en el compilador.

Solidity frente a otros lenguajes para contratos inteligentes
Solidity tiene rivales. Ni siquiera es el más seguro. Vyper es minimalista y similar a Python, diseñado a propósito para minimizar los riesgos; Curve se ejecuta sobre él. Rust impulsa los contratos en Solana y NEAR, más seguro en algunos aspectos, pero más difícil de aprender y más costoso de auditar. Entonces, ¿por qué Solidity sigue ganando? No es por el diseño del lenguaje. Son los efectos de red. Las herramientas más completas, las bibliotecas más auditadas, todo un ecosistema EVM de cadenas y monederos, todo ya se comunica mediante Solidity.
| Idioma | Cadenas | Base de sintaxis | Lo mejor para | Compensación |
|---|---|---|---|---|
| Solidez | Ethereum + todas las EVM | JavaScript/C++ | Máximo alcance, herramientas de última generación. | Es fácil escribir código inseguro. |
| Vyper | EVM | Pitón | Contratos sencillos y de importancia crítica para la seguridad | Menos funciones, comunidad más pequeña |
| Óxido | Solana, CERCA | Óxido | Alto rendimiento, gran seguridad | Curva pronunciada, auditorías más costosas |
Si quieres lanzar tu producto donde ya están los usuarios y el dinero, Solidity es la opción pragmática por defecto, incluso cuando una alternativa sea técnicamente más segura.
¿Deberías aprender programación Solidity en 2026?
El entusiasmo especulativo en torno a las criptomonedas disminuyó, pero la demanda de programadores que sepan escribir código Solidity correctamente se mantuvo. Ethereum sumó alrededor de 16 181 nuevos desarrolladores entre enero y septiembre de 2025, según Electric Capital , y aproximadamente el 74 % de todos los desarrolladores de múltiples cadenas trabajan en cadenas EVM. Ahí es donde se encuentran los trabajos remunerados y las bibliotecas reutilizables.
Una buena manera de aprender a programar en Solidity es empezar con Remix, leer la documentación oficial y luego trabajar con los contratos de OpenZeppelin para ver cómo los profesionales estructuran los tokens y el control de acceso. Implementa proyectos pequeños en una red de prueba hasta que los patrones de seguridad te resulten automáticos, en lugar de memorizados. La habilidad que se necesita no es escribir código Solidity que compile; hay mucha gente que sabe hacerlo. Lo que realmente le pagan a un desarrollador de Solidity es escribir código que resista el contacto con un adversario, alguien que haya leído tu contrato y tenga dinero en juego.
Por qué Solidity sigue siendo el lenguaje predeterminado
Solidity es la opción predeterminada por una razón concreta, no por moda pasajera. Está presente en todas las cadenas EVM. Ofrece las herramientas más completas. Es la base de la mayoría de las plataformas DeFi y NFT. Pero lo primero que hay que comprender no es la sintaxis, sino esto: en una blockchain, el código implementado es ley y los errores son permanentes. Aprende el lenguaje y los patrones de seguridad a la vez, porque aquí son inseparables. El siguiente paso, honesto y sencillo, es gratuito. Abre Remix, escribe un contrato de diez líneas e impleméntalo en una red de prueba esta semana.