¿Qué es Solidity?

Solidity es el lenguaje de programación que permitió a Ethereum expandir la tecnología blockchain más allá de las criptomonedas peer-to-peer al estilo Bitcoin para convertirse en lo que uno de sus creadores llama “una computadora para todo el planeta”.

Fue propuesto en 2014 por el Dr. Gavin Wood, quien trabajó con Vitalik Buterin para desarrollar Ethereum. Solidity es el lenguaje de los contratos inteligentes autoejecutables en el corazón de blockchain # 2. Al ver que las aplicaciones descentralizadas (DApps) son esencialmente contratos inteligentes muy complejos, Solidity es el lenguaje en el que se basa todo, desde las plataformas de finanzas descentralizadas (DeFi) hasta los juegos criptográficos y las herramientas de gestión de la cadena de suministro.

Básicamente, todo lo que se ejecuta en la máquina virtual de Ethereum, el motor de cómputo aislado de Ethereum en el que se crean y ejecutan todos los contratos inteligentes, puede construirse, y en gran medida se construye, utilizando Solidity.

Solidity tiene una serie de fortalezas que ayudaron a convertir a Ethereum en un gigante. Por un lado, fue diseñado para ser bastante simple de usar por cualquier persona con un conocimiento básico de lenguajes de programación como Javascript o C++.

Por otro lado, sus contratos inteligentes se basan en blockchains, por lo que no se pueden modificar ni eliminar. Eso significa que Ethereum es una forma muy segura de hacer aquello para lo que fue diseñado: transferir cualquier cosa de valor, utilizando los tokens Ether nativos o los tokens ERC-20 compatibles pero de marca blanca para pagar esas transacciones.

Limitaciones de Solidity

Sin embargo, este último es un arma de doble filo, ya que significa que cualquier contrato inteligente de Solidity debe redactarse sin problemas. Como les gusta decir a los expertos en criptodiseño: “El código es ley”.

Los errores no se pueden corregir, las transacciones no se pueden revertir y los exploits solo se pueden corregir actualizando el código de Ethereum, lo que requiere la participación de nodos individuales que no siempre es posible, al menos no rápidamente.

Ese fue un problema con el ataque DAO de 2016 que drenó $ 60 millones en 2016 utilizando una vulnerabilidad EVM llamada reentrada, una de varias vulnerabilidades conocidas, al igual que fue un problema con el ataque del 27 de agosto de 2021 que causó una bifurcación en la cadena de bloques de Ethereum. En ambos casos, el exploit era conocido y se había lanzado una solución cuando se explotó.

En julio, el mayor intercambio de criptomonedas de EE. UU., Coinbase, lanzó una herramienta llamada Solidify, que se utiliza para detectar y clasificar riesgos de contratos inteligentes, una auditoría automatizada. Como sugiere el nombre de la herramienta, su objetivo es mejorar los contratos inteligentes de Solidity al encontrar fallas potenciales, algo que Coinbase hace en su revisión rigurosa pero lenta de los protocolos cuyos tokens está considerando incluir.

¿Cuánto tiempo lleva aprender sobre Solidity?

Solidity es lo que se denomina un lenguaje de programación orientado a objetos (OOP) de alto nivel desarrollado y utilizado principalmente por la cadena de bloques de Ethereum. 

Los OOP permiten a los desarrolladores crear programas utilizando fragmentos de código preconstruidos.

Solidity fue diseñado para ser particularmente fácil de usar para cualquier persona con una familiaridad básica con otros lenguajes de codificación más convencionales, incluidos C ++, Java, JavaScript y Python. Esto significa que las personas con experiencia en los conceptos generales de programación y los lenguajes de codificación antes mencionados tardarían menos tiempo en aprender Solidity. Esto podría llevar de uno a seis meses.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s