¿Qué es la Solidez?

IntermedioNov 23, 2023
Descubra la esencia de Solidity, el lenguaje de contrato inteligente de Ethereum, y su impacto en la innovación blockchain.
¿Qué es la Solidez?

Comprender uno de los principales lenguajes de programación que impulsan el mundo de las aplicaciones descentralizadas y los contratos inteligentes es un paso fundamental para cualquiera que se aventure en el ámbito de blockchain.

Solidity no es sólo otro lenguaje de codificación; es la fuerza impulsora detrás de la creación de contratos autoejecutables y aplicaciones descentralizadas en la cadena de bloques Ethereum y varias otras plataformas. Este artículo profundizará en cómo funciona Solidity, explorando su importancia, características y aplicaciones del mundo real.

¿Qué es la Solidez?

Solidity es un lenguaje de programación orientado a objetos de alto nivel para escribir y ejecutar contratos inteligentes en blockchain. Mejor conocido por su conexión con el hogar de DeFi, Ethereum, Solidity fue creado por los desarrolladores de Ethereum para crear contratos inteligentes que se ejecutan con la máquina virtual Ethereum en la red.

En el espacio de desarrolladores web3, Solidity es uno de los lenguajes de programación más utilizados, aunque presenta elementos de otros lenguajes populares como Javascript, C++ y Python. Solidity es un lenguaje tipificado estadísticamente que admite herencia, tipos complejos definidos por el usuario y bibliotecas, elementos esenciales para la funcionalidad de contratos inteligentes. Solidity es una opción popular entre los desarrolladores de contratos inteligentes porque es fácil de usar. La naturaleza del lenguaje de programación (de alto nivel) reemplaza la escritura de códigos de bits (unos y ceros) con una combinación de letras y números.

Antecedentes del lenguaje de programación Solidity

A pesar de su reputación actual como uno de los lenguajes de programación más utilizados, Solidity tiene comienzos humildes que se remontan a 2014. En 2014, Gavin Woods, Christian Reitwissner y otros desarrolladores de la Fundación Ethereum crearon Solidity para apoyar el desarrollo de la próxima red Ethereum. Los desarrolladores crearon Solidity como un lenguaje que los desarrolladores encontraron fácil de usar, expresivo y compatible con Ethereum Virtual Machine, un entorno de ejecución central para ejecutar contratos inteligentes.

Solidity está inspirado en lenguajes existentes como Python, C++ y JavaScript. Aún así, su originalidad proviene de conceptos y sintaxis únicos integrados específicamente para lidiar con contratos inteligentes, variables de estado, modificadores y eventos.

¿Como funciona?

La solidez se utiliza principalmente para redactar contratos inteligentes. Los contratos inteligentes son la columna vertebral de la red Ethereum y se refieren a programas que se ejecutan en la máquina virtual Ethereum (EVM) y cumplen múltiples funciones, principalmente relacionadas con la automatización de transacciones en la red. El EVM funciona como administrador de registros de la "computadora global" de Ethereum, lo que significa que mantiene el estado global de la red, incluidas direcciones, saldos de cuentas y tenencias de tokens.

Los contratos de solidez se compilan en código de bytes y el EVM los lee, lo que significa que, en teoría, los desarrolladores pueden escribir contratos inteligentes de Ethereum directamente con código de bytes. Sin embargo, la escritura directa con código de bytes apenas se utiliza porque es más técnica y propensa a errores. Como tal, el uso de lenguajes de alto nivel como Solidity permite a los desarrolladores centrarse en la lógica y la funcionalidad del código en lugar de lidiar con las complejidades de escribir en código de bytes. Como resultado, los desarrolladores pueden codificar de manera más eficiente y concentrarse más en crear contratos inteligentes que sean más fáciles de leer, escribir y mantener.

Solidity está sujeto a actualizaciones periódicas de la versión, que se publican en Github. Los contratos inteligentes son inmutables, lo que significa que una vez que se implementan en la cadena, no se pueden revertir. Debido a que Solidity está en constante evolución, la inmutabilidad de los contratos inteligentes lo afecta porque cualquier error o deficiencia en el código de un contrato no se puede solucionar fácilmente una vez que está activo. La razón es que cada versión tiene comportamientos y características distintos, lo que podría influir en la funcionalidad del contrato y en cómo interactúa con otros elementos dentro del ecosistema Ethereum.

En los últimos tiempos, los desarrolladores han preferido utilizar contratos de proxy y contratos actualizables. Los contratos proxy permiten la ejecución del código de otro contrato. Los proxy actúan como intermediarios, reenvían llamadas y transacciones al contrato previsto y al mismo tiempo permiten funciones adicionales, como control de acceso o registro. Los contratos actualizables implican esencialmente contratos inteligentes que se pueden actualizar sin perder su estado original.

Cabe señalar que la versión de Solidity utilizada en el momento de la creación del contrato inteligente también es esencial, porque determinará el comportamiento y las características del contrato inteligente. Cada línea de código fuente en cada contrato inteligente de Solidity, por simple que sea, debe comenzar con una declaración de qué versión del compilador de Solidity debe usarse para ese fragmento de código en particular. Esta declaración es lo que se conoce como la “versión pragma”.

Características principales del lenguaje Solidity

Solidity se considera la puerta de entrada al mundo de las aplicaciones descentralizadas y los contratos inteligentes basados en blockchain. Algunas características clave que hacen de Solidity un lenguaje de programación tan productivo incluyen las siguientes.

Funciones integradas y tipos de datos

Los desarrolladores no necesitan escribir sentencias condicionales o bucles para realizar acciones que dependen de determinadas condiciones. En cambio, pueden especificar las condiciones directamente en su código fuente, y el contrato inteligente ejecutará la acción específica solo cuando se cumplan esas condiciones. Esto hace que el proceso de codificación sea mucho más manejable.

Solidity también admite los tipos de datos más comunes, como números enteros, números de punto flotante, cadenas, matrices y mapas. Los desarrolladores también pueden definir sus propios tipos de datos y utilizarlos en sus contratos inteligentes.

Entorno de codificación

El compilador de Solidity comprueba constantemente el código en busca de errores a medida que lo escribe y le alerta sobre cualquier problema potencial. Esto es especialmente útil al desarrollar contratos inteligentes y dApps grandes y complejos.

Casos de uso del lenguaje de programación Solidity

La solidez normalmente se puede utilizar para crear contratos inteligentes que mejoren la transparencia y la trazabilidad en la gestión de la cadena de suministro. Los contratos inteligentes impulsados por la solidez también pueden ayudar a prevenir la falsificación y mejorar la confianza en el proceso de la cadena de suministro al registrar las transacciones y verificar la autenticidad de los productos.

La solidez se utiliza con frecuencia para desarrollar juegos basados en blockchain y mundos virtuales que presentan propiedad de activos, economías dentro del juego y escasez demostrable. Solidity abre nuevas posibilidades para activos digitales únicos e interacciones entre jugadores. Los desarrolladores también han utilizado Solidity para crear lógica de intercambio descentralizada, mecanismos de subasta, protocolos de préstamos, pagos condicionales, etc.

Además, Solidity se utiliza para implementar NFT. También ha permitido la creación de DAO, que son organizaciones autónomas que operan con contratos inteligentes, lo que a su vez permite una toma de decisiones y una gobernanza transparentes.

Proyectos que apoyan la solidez

avalancha

Avalanche es una plataforma blockchain de vanguardia que ha ganado cierta prominencia en el mundo de DeFi y los contratos inteligentes. En Avalanche, las transacciones se procesan en segundos, lo que la convierte en una plataforma eficiente para aplicaciones DeFi e intercambios de tokens. Su compatibilidad con EVM le permite trabajar sin problemas con contratos inteligentes escritos por Solidity, lo que también contribuye a la adopción de Avalanche por parte de los desarrolladores.

monax

Monax es un proyecto líder de blockchain diseñado para revolucionar, simplificar y optimizar la forma en que las empresas manejan los acuerdos legales. La plataforma permite la creación de acuerdos legalmente vinculantes y automatiza varios aspectos de la ejecución y gestión de contratos. Es particularmente beneficioso para las empresas, ya que Monax les ofrece una forma segura y eficiente de gestionar todo el ciclo de vida del contrato.

Solidity ayuda al ayudar a la creación de contratos inteligentes autoejecutables, mientras que Monax extiende esta tecnología a acuerdos legales, permitiendo a las empresas definir sus reglas contractuales en un formato programable y autoejecutable.

Solidez versus óxido

Solidity y Rust comparten algunas similitudes básicas. Por un lado, ambos lenguajes de programación ofrecen compatibilidad con múltiples cadenas. Si bien Solidity se diseñó principalmente para Ethereum, admite cadenas de bloques de capa 2, cadenas laterales y, por supuesto, cadenas de bloques de capa 1 compatibles con EVM como Moonbeam y Avalanche-C. Rust también admite un glosario de cadenas de bloques como Near y Solana, sin dejar de ser el lenguaje de programación que inspiró los lenguajes Move y Sui.

Además, ambos idiomas son idiomas completos de Turing. Esto significa que ambos lenguajes pueden resolver cualquier problema computacional independientemente de su complejidad. Los lenguajes de programación heredaron esta característica de la máquina de Turing, desarrollada por Alan Turing.

Por el contrario, Solidity y Rust poseen marcadas diferencias. Por ejemplo, Solidity es un lenguaje de alto nivel que ofrece un alto nivel de abstracción de la arquitectura del sistema informático. Como resultado, Solidity es más fácil de aprender y usar, lo que lo convierte en un lenguaje más orientado al usuario. Por otro lado, Rust es un lenguaje de bajo nivel más cercano al hardware de la computadora y proporciona buena eficiencia y velocidad de memoria, lo que lo convierte en un lenguaje más orientado a la máquina.

Además, ambos lenguajes de programación utilizan diferentes paradigmas de programación. Un paradigma de programación es el enfoque utilizado para resolver un problema. Solidity, por un lado, es un lenguaje orientado a objetos ya que utiliza el paradigma orientado a objetos para resolver problemas. Por otro lado, Rust es un lenguaje multiparadigma, es decir que permite utilizar diferentes paradigmas o enfoques para resolver problemas. Algunos de los paradigmas que admite Rust son orientados a objetos, funcionales e imperativos, entre varios otros.

Solidez frente a JavaScript

Solidity y Javascript son dos de los lenguajes de programación más comunes, pero comparten muy pocas similitudes. Javascript fue una de las mayores inspiraciones para Solidity, pero ahora la única similitud significativa es que Solidity usa la palabra clave 'función' para definir funciones. La sintaxis de Solidity también tiene una apariencia similar a JavaScript, pero esto es un poco engañoso porque Solidity y JavaScript funcionan de manera bastante diferente.

Por el contrario, ambos idiomas difieren mucho. JavaScript se puede ejecutar directamente, mientras que Solidity requiere compilación porque JavaScript es un lenguaje interpretado, no un lenguaje compilado como Solidity. Además, Solidity tiene la capacidad de transferir dinero. Sin embargo, esta no es una capacidad incorporada, por lo que los desarrolladores deben utilizar una interfaz de programación de aplicaciones (API) externa.

Otra diferencia entre ambos lenguajes es que con Solidity, una vez que se implementa un contrato inteligente en Ethereum, es inmutable y el código ya no se puede editar. JavaScript tampoco permite la interacción directa con el código que se ejecuta en otros servidores, pero si el servidor ofrece una API que permite el acceso, entonces el desarrollador puede editar el código.

Los mejores recursos para aprender sobre solidez

Aprender Solidity es uno de los primeros pasos a seguir al convertirse en desarrollador web3, ya que es el lenguaje de programación fundamental para los desarrolladores que desean crear e implementar contratos inteligentes en la red Ethereum. Al elegir un curso para aprender sobre Solidity, es fundamental evaluar los temas, el formato y otros recursos complementarios proporcionados. Para obtener el mejor conocimiento sobre Solidity, podría considerar algunos recursos a utilizar, incluidos los siguientes.

Gate Learn

Gate Learn ofrece un curso titulado "Plataformas de desarrollo Blockchain y contratos inteligentes " donde brindan una descripción general de las plataformas de desarrollo blockchain populares, así como sus características clave. Si bien es un curso completo, ofrece información clave sobre el proceso de desarrollo de una aplicación blockchain básica utilizando Solidity.

Con este curso, aprenderá cómo configurar el entorno de desarrollo, escribir el contrato inteligente, definir las variables de estado del contrato, crear funciones para interactuar con el contrato, compilar e implementar el contrato.

Gate Learn también ofrece un curso titulado "Contratos inteligentes 101: una introducción básica " donde puede aprender sobre los fundamentos de los contratos inteligentes y sus casos de uso en todas las industrias y también interactuar con contratos externos e implementar sus propios contratos inteligentes usando MetaMask.

Academia WTF

WTF Academy es una plataforma de aprendizaje de blockchain de código abierto impulsada por la comunidad que ofrece cursos completos sobre desarrollo web y blockchain, como JavaScript, análisis en cadena, códigos de operación EVM y Solidity. Está patrocinado por la Fundación Ethereum, StarkWare y Optimism. También ha recibido donaciones de Gitcoin y Mirror.

WTF Academy ofrece cinco cursos de Solidity para principiantes (Solidity 101, 102, 103, Solidity 104 Security y Solidity 104 Tx Analysis). Estos cursos son gratuitos y proporcionan certificados al finalizar.

El curso completo de Solidity – Blockchain – De cero a experto [Udemy]

Este es un curso pago de Udemy que sirve como una solución integral para aprender Solidity. El curso te ayudará a comenzar desde cero con los temas más fundamentales y te llevará a un nivel avanzado, donde podrás crear contratos inteligentes y dApps complejos. Es un curso completo, por lo que no necesitarás ningún recurso complementario para obtener toda la información necesaria.

En este curso, aprenderá sobre el lenguaje de programación Solidity, cómo escribir contratos inteligentes y también comprenderá EVM, la cadena de bloques Ethereum y cómo funcionan otras plataformas de cadenas de bloques. También puedes aplicar tus conocimientos con más de 30 tareas y desafíos.

Aprenda Solidity: lenguaje de programación para contratos inteligentes de Ethereum [Blockchain Council]

Blockchain Council desarrolló recientemente el programa Learn Solidity para ayudar a los desarrolladores a comprender los conceptos básicos en unas pocas horas. Con este curso gratuito, deberías tener una idea clara sobre el desarrollo de dApps en la cadena de bloques Ethereum.

El curso le enseñará los conceptos básicos de Ethereum, contratos inteligentes y otras plataformas blockchain. También aprenderá a instalar y configurar el entorno de desarrollo de Solidity, crear aplicaciones en vivo e implementar contratos inteligentes en Solidity.

Bootcamp para desarrolladores de Ethereum Blockchain con solidez [Udemy]

Este curso no requiere conocimientos previos para completarlo. El curso le brindará una comprensión teórica y práctica de los contratos inteligentes y aprenderá a utilizar las principales herramientas de desarrollo centrales de Ethereum. También incluye tutoriales en vídeo paso a paso para facilitar una mejor comprensión.

Este curso es pago y se recomienda para aquellos que aspiran a ser desarrolladores de Ethereum. Completar este curso le permitirá dominar Solidity, Web3, Remix, Metamask, Truffle y otros conceptos de blockchain.

作者: Tamilore
译者: Cedar
文章审校: Matheus、KOWEI、Ashley He
* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。
* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
立即注册