Ethereum y Solidity: fundamentos

Ethereum fundamentos

Bitcoin hacia años que estaba en funcionamiento, la blockchain estaba en marcha y no solo de forma teórica sino práctica pero quedaba aun una gran revolución por llegar, Ethereum. Un joven llamado Vitalik Buterin pensó que las transacciones y la cadena de bloques debía ser controlada de forma mas programática. En Diciembre de 2013, Vitalik Buterin, escribió un documento académico (Whitepaper en inglés) en el que introducia la idea de contratos inteligentes (Smart Contracts) que, al igual que puede recibir y enviar criptodivisas, como un usuario más. Estos contratos inteligentes son el corazón y el alma de lo que se llegaría a convertir en Ethereum.

¿Que es Ethereum?

Lo primero que hay que entender es que cuando hablamos de Ethereum nos referimos a una red de distribuida de ordenadores. La red de Ethereum sirve tanto para transferir dinero de una entidad a otra como para almacenar datos. Transferir dinero y almacenar información en la blockchain es lo que convierte a Ethereum en el caldo de cultivo perfecto para crear aplicaciones interesantisimas y, en ultima instancia, el objetivo final de Ethereum.

Las diferentes redes Ethereum

Aunque lo parezca, no solo hay una red de ethereum. La mas importante es la red principal, aquella en la cual los Ethereum tienen un valor monetario y en la que se despliegan las aplicaciones finales basadas en la blockchain. Hay varias redes mas, redes de ethereum en las que se prueban los contratos inteligentes antes de ser ejecutados definitivamente en la red principal, es mas, es posible crear una red ethereum propia en la que nada mas participen ordenadores controlados por ti mismo. El punto clave es que no solo hay una red Ethereum, sino que hay muchas, tantas como se quiera.

Vitalik consume eth

Los nodos de la red Ethereum

Cualquiera puede montar un nodo de la red Ethereum. Lo unico que debes hacer es tener un ordenador e instalarle un cliente software de la red Ethereum y listo. Esta es la magia de las criptomonedas, cualquiera que quiera puede participar, verificando transacciones y ayudar a la robustez de la red. Cada nodo debe tener una copia de toda la blockchain de forma local para colaborar en la verificacion de transacciones.

La blockchain de Ethereum

Para finalizar, la cadena de bloques de Ethereum es una base de datos distribuida en la que se almacenan las transacciones entre diferentes entidades así como datos. Para simplificar, se puede considerar la blockchain como una base de datos en la que se almacena información y nada más.

Transacciones en la red Ethereum

La forma de transferir tanto dinero como datos en la red y que queden grabados en la cadena de bloques es mediante el uso de transacciones. Las transacciones en la red Ethereum tienen la siguiente estructura:

Transaccion ethereum

Solidity: el lenguaje de programación de los Smart Contracts

El lenguaje de programación que se usa para programar los contratos inteligentes es Solidity. Solidity es muy similar a JavaScript aunque con una pequeña diferencia. Solidity al contrario que JavasCript es fuertemente tipado, esto quiere decir que si una variable se usa para almacenar un tipo de datos, dicha variable no podrá usarse para almacenar un tipo de datos diferente al primeramente almacenado.

Definición, compilación y distribución de un contrato inteligente

Cuando escribimos el codigo de un Smart Contract estamos escribiendo la definición de dicho Smart Contract. Solidity es el lenguaje de alto nivel que usamos para entender lo que hace nuestro código, pero dicho código no es ejecutado directamente en la red Ethereum. La definición del Contrato Inteligente se introduce en el compilador que produce dos ficheros distintos:

Solidity Compilador

  • El primer fichero es el bytecode, un código que si será el desplegado en la red ethereum.
  • El segundo fichero es la interfaz binaria de aplicación (ABI). Esta interfaz es clave para desarrollar aplicaciones que interactuen con nuestro Smart Contract.

Aplicacion interactuando con Smart Contract

Conclusión

A grandes rasgos estas son las características de Ethereum y del lenguaje de los contratos inteligentes. Esto solo es la punta del iceberg. Como en todo, la practica es mas divertida que la teoría, así que estate atento que lo siguiente será ponernos manos a la obra para crear el primer Smart Contract y desplegarlo en una de las redes de prueba de Ethereum.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *