Alquiler pisos, comprar venta viviendas, portal inmobiliario Alquiler pisos, comprar venta viviendas, portal inmobiliario
AlfaVila
2022-04-12

Solidity, Smart Contracts - para qué sirve..

Tiempo de lectura: 9 min.

Para entender lo que es Solidity, primero tienes que entender qué son los contratos inteligentes o smart contracts. Se trata de un concepto de contrato que se empezó a debatir en los 90, pero que no ha sido hasta la llegada de las criptomonedas y su tecnología de cadena de bloques o blockchain, que se ha tenido la tecnología adecuada para poder realizarlos.

Los contratos inteligentes son una especie de programa especial que se almacena en la blockchain, que es un territorio neutral fuera de cualquier servidor. Sin piezas de código que definen el acuerdos entre múltiples partes sin que haya ningún intermediario. Por ejemplo, se pueden usar para realizar pagos instantáneamente cuando se cumplan las condiciones para las que fueron firmados.

Estos contratos inteligentes pueden ser empleados en una gran variedad de escenarios. Sirven para realizar transacciones simples con una serie de requisitos que sean verificables por la red, ya sea dentro de la propia blockchain o fuera de ella utilizando APIs. Por lo general, estos contratos suelen basarse en la red Ethereum.

Esto se puede utilizar con todo tipo de productos financieros, desde fondos a opciones de compras o muchos otros. Por ejemplo, puedes pensar en una manera de gestionar aspectos como los derechos de autor de un banco de imágenes. Cada vez que se use una imagen en algún medio, se detectará y se pagará al autor (NFT).

También se pueden hacer cosas como microseguros que le paguen a los agricultores dependiendo de determinados aspectos como la los datos de lluvias recogidos en un periodo de tiempo.

Qué es Solidity

Solidity es un lenguaje de programación. Pero no está diseñado para crear programas normales, sino que es un lenguaje específicamente creado para programar contratos inteligentes. Su sintaxtis está basada en ECMAScript (JavaScript), pero con la diferencia de implementar un tipado fuerte a la hora de declarar el tipo de variables y argumentos. Esto es así para garantizar el rigor del contrato.

Este lenguaje es capaz de compilar los contratos que se crean en el código de la red de Ethereum y vincularlos a ella. Solidity fue creado en 2014 por diferentes colaboradores del Proyecto Ethereum. Concretamente, es un lenguaje creado para ejecutarse en las Ethereum Virtual Machines (EVM) que funcionan sobre la blockchain de Ethereum.

Otra cosa que debes tener en cuenta es que los contratos inteligentes se pueden programar localmente, directamente en tu ordenador, y luego puedes despegarlos por la red Ethereum para que se alojen de forma descentralizada. Vamos, que el contrato no está en un servidor, sino replicándose y manteniéndose en toda la red de ordenadores de la cadena de bloques, por lo que no nadie tiene un control directo sobre él.

Además, debido a la similitud entre la cadena de bloques de Ethereum y otras similares como Polygon, Solidity también se puede implementar en otras redes de forma que su funcionamiento siga siendo predecible. Su compilador analizará el código del contrato en tiempo de ejecución para verificar que intentamos realizar la operación adecuada con el tipo de valor adecuado.

Para empezar a programar con Solidity existen varios programas. Sin embargo, uno de los más recomendados es Remix IDE, Hedera. Se trata de un entorno de desarrollo basado en el navegador, desde el que podrás escribir, compilar a implementar los contratos inteligentes.

Una vez entremos en la web Remix IDE, el aspecto de será algo bastante parecido a la siguiente imagen:

Deberemos desplegar la carpeta 'contracts' dentro del explorador de archivos del espacio de trabajo por defecto, y abrir uno de los ficheros .sol. Como están numerados, abriremos el primero, 1_Storage.sol, que presentará este aspecto:

El código muestra dos elementos principales:

En primer lugar, el 'pragma', donde especificamos qué versiones de Solidity podrán usarse para compilar nuestro smart contract, un aspecto muy relevante a tenor de la rápida evolución del lenguaje.

En segundo lugar, el 'contract', equivalente al concepto de clase ('class') presente en la mayoría de los lenguajes de programación modernos. Dentro de la clase nos encontramos con dos funciones predefinidas.

Sabiendo eso, ahora podemos crear nuestro propio fichero desde cero, y proceder a compilarlo y ejecutarlo.


Hola, Mundo
Hacemos clic en el icono de 'New file' (Nuevo archivo), justo encima del árbol de directorios, y creamos un fichero 'HolaMundo.sol' en la carpeta 'contracts'.

Copiamos el siguiente código:

// Mi primer SmartContract
pragma solidity >= 0.5.0 < 0.7.0;
contract HelloWorld {
function get()public pure returns (string memory){
   return 'Saludos desde blockchain !';
}
}

Una vez hecho esto, hacemos clic en el tercer icono de la barra lateral, en el compilador de Solidity, tal como se muestra a continuación y, asegurándonos de seleccionar una versión compatible del compilador, compilamos sin tocar ningún otro aspecto de la configuración por defecto:

Una vez finalizado con éxito este paso, hacemos clic en el siguiente icono de la barra lateral. Pulsamos en el botón 'Deploy', y, una vez implementado el smart contract, aparecerá un botón con la leyenda 'Get', correspondiente a la única función de nuestro contrato inteligente. Haciendo clic, veremos cómo nos devuelve la cadena de texto especificada en el código:


Hola 👋 Suscríbete al boletín
Tu nombre
Tu email*