¿Qué es Solidity en los smart contracts de Ethereum Blockchain?

Solidity, es el lenguaje de programación que comenzó a hacer posible las DApps de Ethereum, al permitir a los desarrolladores una forma fácil de realizar aplicaciones complejas distribuidas que sacarán el máximo provecho a la EVM de Ethereum.

El nombre de Solidity hace referencia a un lenguaje de alto nivel de tipado estático con el que se pueden programar contratos inteligentes para la red de Ethereum. Su sintaxis es muy similar a la de lenguajes muy conocidos como C++ o Javascript. Solidity fue creado con el propósito de permitir la escritura de contratos inteligentes de forma sencilla para la red Ethereum. Se trata de un lenguaje diseñado para sacar el máximo provecho a la Ethereum Virtual Machine, permitiendo la creación y desarrollo de contratos inteligentes que pueden ser ejecutados de forma óptima en la EVM.

Para ello el programador puede desarrollar sus aplicaciones en un lenguaje sencillo de utilizar, leer y mantener para que, al terminar, el motor de Solidity convierta ese código sencillo en el código máquina que la EVM entenderá, un código máquina prácticamente imposible de entender por una persona.

En esencia Solidity facilita el desarrollo de contratos inteligentes sobre Ethereum y, aunque no es el único lenguaje, sí fue el primero, el más y versátil sobre el que más contratos inteligentes hay desarrollados.

Solidez, un lenguaje Turing Complete

La característica principal de Solidity es que este lenguaje de programación es de tipo Turing Complete. Gracias a Solidity ya su relación con la EVM, los desarrolladores pueden realizar programas que sean Turing Complete. Esto debido a que EVM posee la capacidad de ejecutar cualquier código que sea definido por un desarrollador dentro del marco de sus capacidades.

Esto representa una gran ventaja para la red Ethereum. Gracias a EVM y Solidity los desarrolladores pueden programar acciones que luego serán ejecutadas por la EVM de forma descentralizada en la red Ethereum. Pero esto también implica que se debe disponer de un mecanismo de protección para evitar su mal uso. Este mecanismo es conocido como Gas y sirve para evitar que el sistema pueda ser colapsado por la creación de bucles infinitos u otras acciones maliciosas. Este Gas funciona como el gasto computacional que conlleva procesar una transacción o un contrato inteligente en la red.

El concepto se asemeja por ejemplo a lo ideado por Adam Back con su sistema para luchar contra el correo no deseado, el HashCash.

Importancia y desarrollo de Solidity

Ethereum nació como una alternativa a la red Bitcoin. Su creador, Vitalik Buterin, en su momento, debe incorporar un lenguaje tipo Turing Complete a la red Bitcoin. Ya que optimizó que el lenguaje con el que fue desarrollado Bitcoin era insuficiente para la evolución de la red. Pero al no recibir ninguna respuesta por parte de los desarrolladores, Buterin decidió crear y desarrollar su propio proyecto: Ethereum.

Hoy en día, Bitcoin y Ethereum son las redes más valiosas, conocidas y empleadas por la comunidad de las criptomonedas. Ocupando el primer y segundo lugar respectivamente. No obstante, Bitcoin y Ethereum poseen grandes diferencias. Por ejemplo bitcoin la moneda de la red Bitcoin, fue creada como medio de pago y de resguardo de valor. Mientras que Ethereum, fue desarrollado con la finalidad de ser mucho más flexible y programable permitiéndole evolucionar con nuevas en el tiempo.

Esto gracias a EVM y Solidity, las dos herramientas que permiten a los desarrolladores sacar el máximo provecho de Ethereum. Con Solidity, se facilita la tarea de desarrollar aplicaciones distribuidas (DApps) u otras funciones que hacen uso de los contratos inteligentes.

El desarrollo de Ethereum surgió como una idea en la mente de Gavin Wood en 2014. La idea fue materializada por Christian Reitwiessner junto a un equipo de trabajo. El resultado de este trabajo llevó a Solidity. Desde entonces, el desarrollo de Solidity ha mantenido su evolución y en la actualidad se encuentra en la versión 0.7.4 del lenguaje (noviembre 2020).

caracteristicas

  1. Solidity es un tipo de lenguaje orientado a objetos (OO) como C++ y C#.
  2. Fue diseñado específicamente para desarrollar aplicaciones para la red Ethereum. Por lo que sólo corre en la cadena de bloques Ethereum o derivados compatibles.
  3. Una ventaja que posee este lenguaje es que el código fuente de los programas que son realizados con el mismo puede ser accedido públicamente desde la cadena de bloques. Incluso estando en bytecode, es posible descompilarlo y obtener una muestra bastante clara del código fuente original.
  4. Solidity soporta la herencia y la herencia múltiple, dotándolo de una gran flexibilidad a la hora de programar elementos complejos.
  5. Este lenguaje también proporciona una serie de bibliotecas muy útiles que facilitan la programación de los contratos inteligentes, haciendo que el código sea reutilizable y más sencillo de mantener.

Entornos de desarrollo disponibles

Como casi todo lenguaje de programación, Solidity puede explotar las ventajas de un entorno integrado de desarrollo o IDE. En Ethereum, el IDE oficial es conocido como Remix. Este facilita a los desarrolladores la creación de contrato inteligente, a la vez que permite tener acceso al estado y propiedades de los contrato inteligente ya creado. Además cuenta con poderosas herramientas de corrección y análisis de código para ayudar a los desarrolladores a depurar sus programas.

Remix también puede ser ejecutado y usado de forma online a través de Firefox o Chrome o directamente en nuestro ordenador. Y aunque este es el IDE oficial de Ethereum, también existen otros entornos compatibles con el lenguaje Solidity. Por ejemplo, Ethereum Studio es un IDE especializado que proporciona acceso a un entorno completo de Ethereum a través de un intérprete de comando conocido como shell.

Así mismo, nos encontramos con un Plugin de Solidity para IntelliJ IDEA, otro IDE creado para el desarrollo de programas informáticos compatibles con Solidity. Atom es una herramienta editable que se puede utilizar para personalizar cualquier cosa. Podemos encontrar un paquete conocido como Etheratom que emplea la biblioteca web3.js para interactuar con un nodo de Ethereum.

Otro IDE que podemos encontrar es el Plugin Visual Studio, creado por Microsoft. Este permite la creación y desarrollo de contratos inteligentes a través de un compilador de Solidity. También permite la creación de aplicaciones para Microsoft y aplicaciones web modernas y servicios en la nube que usan su servicio Azure.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum