Saltar al contenido

GLOSARIO · BLOCKCHAIN & WEB3

Solidity

Lenguaje de programación principal para crear contratos inteligentes en EVM.

¿QUÉ ES? · PARA DUMMIES

Solidity es el idioma que los programadores usan para decirle a la blockchain qué hacer. Con él se escriben las reglas de los contratos inteligentes, que son como acuerdos que se cumplen automáticamente. Esas instrucciones son entendidas y ejecutadas por Ethereum y otras blockchains compatibles. Por ejemplo, se puede usar para crear una criptomoneda, vender un NFT o gestionar una votación online sin intermediarios.

¿QUÉ ES? · PRO

Solidity es un lenguaje de programación orientado a contratos, de tipado estático, con sintaxis inspirada en JavaScript, C++ y Python, diseñado para escribir smart contracts que se ejecutan sobre la Ethereum Virtual Machine (EVM). Fue propuesto por Gavin Wood y Christian Reitwiessner y se ha convertido en el lenguaje estándar para el desarrollo de contratos inteligentes en blockchains compatibles con EVM, como Ethereum, Polygon, Arbitrum, Optimism y BNB Chain.

Solidity permite declarar funciones, variables, eventos, estructuras, enumeraciones, modificadores, interfaces, herencia y visibilidad, facilitando el desarrollo de contratos complejos y modulares. Estos contratos gobiernan tokens (ERC-20, ERC-721, ERC-1155), protocolos DeFi, DAOs, marketplaces NFT, juegos Web3, sistemas de gobernanza y de identidad digital. El código Solidity es transpilado a bytecode y desplegado en blockchain, donde se ejecuta de forma determinista y permanente.

Además de la lógica empresarial, Solidity incluye herramientas específicas para blockchain como msg.sender, msg.value, require, revert, block.timestamp, y acceso a almacenamiento persistente (storage, memory, calldata). También soporta librerías externas como OpenZeppelin, mecanismos de actualización mediante proxies, contratos inmutables, control de roles y funciones avanzadas como delegatecall, selfdestruct o fallback.

El lenguaje es mantenido activamente por la Fundación Ethereum y evoluciona con mejoras de seguridad, eficiencia y funcionalidades (como enums, funciones inmutables, tipos personalizados o compilación Yul). El dominio de Solidity es fundamental para crear aplicaciones descentralizadas seguras, auditables y adaptadas a los requerimientos funcionales y legales del ecosistema Web3.

01 / Puntos clave

  • Lenguaje creado para escribir contratos inteligentes en Ethereum y redes EVM
  • Tiene una sintaxis parecida a JavaScript y C++
  • Es de tipado estático y orientado a contratos
  • Se utiliza para crear tokens, DAOs, NFTs, protocolos DeFi, etc.
  • Su código, una vez desplegado, se vuelve inmutable y público

02 / Ventajas

  • Estándar de la industria Web3 para el desarrollo sobre Ethereum
  • Amplio ecosistema y soporte: compatible con herramientas como Hardhat, Truffle, Foundry
  • Permite contratos complejos y modulares, con lógica avanzada
  • Facilidad para auditar y testear con librerías y herramientas especializadas
  • Interoperabilidad con librerías como OpenZeppelin y Chainlink

03 / Desventajas

  • Alta sensibilidad a errores: un fallo puede implicar pérdida de fondos
  • Curva de aprendizaje técnica si no se tiene experiencia previa en programación
  • El código es irreversible una vez desplegado, lo que exige pruebas rigurosas
  • Coste en gas elevado si no se optimiza correctamente
  • Vulnerable a malas prácticas comunes (reentrancy, overflows, falta de checks)